使用 GhostscriptProcessor 打印 PDF 文件 - 边距很乱

本文关键字:文件 GhostscriptProcessor 打印 PDF 使用 | 更新日期: 2023-09-27 17:56:40

我一直在尝试将PDF文件发送到我的打印机,以便在C#中使用GhostscriptProcessor进行打印。一切进展顺利,文件正在打印,但应用了轻微的缩放(大约 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);
}

使用 GhostscriptProcessor 打印 PDF 文件 - 边距很乱

听起来打印机

的可打印区域和PDF文件的MediaBox略有不同。当渲染到位图(这就是mswinpr2的工作方式)时,Ghostscript将缩放PDF,直到其声明的MediaBox与打印机声明的媒体大小匹配。