2015-06-17 4 views
0

Я пытаюсь отправить файл PDF на свой принтер для печати с использованием GhostscriptProcessor в C#. Все идет хорошо, и файл печатается, но применяется небольшое увеличение (около 1,1x - 1,05x), и я не могу найти способ указать верхние поля или изменить окончательный размер рендеринга PDF.Использование GhostscriptProcessor для печати 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); 
} 

ответ

1

Звучит как область печати вашего принтера и MediaBox файла PDF немного отличаются. При рендеринге в растровое изображение (как работает mswinpr2) Ghostscript масштабирует PDF до тех пор, пока его объявленный MediaBox не будет соответствовать объявленному размеру носителя принтера.

+0

Разве нет способа обойти это? –

+0

Нет ............. – KenS