使用 GhostscriptProcessor 打印 PDF 文件 - 页边距很乱
Using GhostscriptProcessor to print a PDF file - Margins are messy
我一直在尝试使用 C# 中的 GhostscriptProcessor 将 PDF 文件发送到我的打印机进行打印。一切顺利,正在打印文件,但正在应用轻微缩放(大约 1.1 倍 - 1.05 倍),我找不到指定顶部边距或更改呈现 PDF 的最终大小的方法。
打印机输出的页面尺寸似乎与我正在渲染的页面尺寸不同。有什么办法可以规避吗?
这是我的:
string printerName = "MIAUMIAUMIAU";
using (GhostscriptProcessor processor = new GhostscriptProcessor())
{
List<string> switches = new List<string>();
switches.Add("-empty");
switches.Add("-dPrinted");
switches.Add("-dBATCH");
switches.Add("-dNOPAUSE");
switches.Add("-dNOSAFER");
switches.Add("-dDuplex");
switches.Add("-dTumble=0");
switches.Add("-dNumCopies=1");
switches.Add("-sDEVICE=mswinpr2");
switches.Add("-sOutputFile=%printer%" + printerName);
switches.Add("-f");
switches.Add(inputFile);
processor.StartProcessing(switches.ToArray(), null);
}
听起来您的打印机的可打印区域和 PDF 文件的 MediaBox 略有不同。当呈现为位图时(这是 mswinpr2 的工作方式),Ghostscript 将缩放 PDF,直到其声明的 MediaBox 与打印机声明的媒体大小相匹配。
我一直在尝试使用 C# 中的 GhostscriptProcessor 将 PDF 文件发送到我的打印机进行打印。一切顺利,正在打印文件,但正在应用轻微缩放(大约 1.1 倍 - 1.05 倍),我找不到指定顶部边距或更改呈现 PDF 的最终大小的方法。
打印机输出的页面尺寸似乎与我正在渲染的页面尺寸不同。有什么办法可以规避吗?
这是我的:
string printerName = "MIAUMIAUMIAU";
using (GhostscriptProcessor processor = new GhostscriptProcessor())
{
List<string> switches = new List<string>();
switches.Add("-empty");
switches.Add("-dPrinted");
switches.Add("-dBATCH");
switches.Add("-dNOPAUSE");
switches.Add("-dNOSAFER");
switches.Add("-dDuplex");
switches.Add("-dTumble=0");
switches.Add("-dNumCopies=1");
switches.Add("-sDEVICE=mswinpr2");
switches.Add("-sOutputFile=%printer%" + printerName);
switches.Add("-f");
switches.Add(inputFile);
processor.StartProcessing(switches.ToArray(), null);
}
听起来您的打印机的可打印区域和 PDF 文件的 MediaBox 略有不同。当呈现为位图时(这是 mswinpr2 的工作方式),Ghostscript 将缩放 PDF,直到其声明的 MediaBox 与打印机声明的媒体大小相匹配。