使用 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 与打印机声明的媒体大小相匹配。