Using GhostscriptProcessor to print a PDF file - Margins are messy

一曲冷凌霜 提交于 2019-12-12 02:58:18

问题


I'be been trying to send a PDF file to my printer to print using GhostscriptProcessor in C#. Everything is going well and the file is being printed but a slight zoom (around 1.1x - 1.05x) is being applied and I can't find a way to specify Top Margins or change the final size of the rendered PDF.

It seems like the page size from the printer are different from the ones I'm rendering. Is there any way to circumvent that?

This is what I have:

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);
}

回答1:


Sounds like the printable area of your printer and the MediaBox of the PDF file are slightly different. When rendering to a bitmap (which is how mswinpr2 works) Ghostscript will scale the PDF until its declared MediaBox matches the declared media size of the printer.



来源:https://stackoverflow.com/questions/30892309/using-ghostscriptprocessor-to-print-a-pdf-file-margins-are-messy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!