Комментарии 7
Если я правильно понимаю, то Ghostscript надо покупать, если собираетесь потом продавать свое .NET приложение.
+1
а я недавно тоже делать печать в .Net, переделывал существующий растровый вариант в векторный. воспользовался возможность печатать Visual в XpsDocument, а потом уже печать его куда угодно — в принтер, в pdf-принтер и т.п.
хочу спросить, почему вы выбрали именно такой вариант с GhostScript, вместо такого способа? наткнулись на какие-то грабли?
хочу спросить, почему вы выбрали именно такой вариант с GhostScript, вместо такого способа? наткнулись на какие-то грабли?
0
Xps рассматривал как вариант, но так и не понял как там указать лоток принтера для каждой страницы документа. Потом вариант с PCL показался не сложным, кроме того его можно так же просто реализовать не только на .Net потому и остановился на PCL + GhostScript.
Интересно как узнать про ваше решение, т.е. как получали xps фалы, приходилось ли их модифицировать для многолотковой печати и как?
Интересно как узнать про ваше решение, т.е. как получали xps фалы, приходилось ли их модифицировать для многолотковой печати и как?
0
Добрый день.
Эксперементировали с печатью аналогичным способом и столкнулись со следующей проблемой:
Метод печати через посылку RAW данных в принтер — в нашем случае работает с принтером HP LaserJet 400 (ему можно посылать pdf, pcl, ps) — он всё печатает быстро и сразу.
А вот посылка аналогичных данных на HP LaserJect 3000 Series ни к чему не приводит (не печатается ни pdf, ни pcl, ни ps).
Если послать на Microsoft Print to PDF — тоже не работает — создается пустой файл.
Самое интересно, что если изменить драйвер принтера (HP 3000) на HP Universal Driver — то принтер начинает печать.
Есть подозрение что данные отправленные «напрямую» в принтер понимают только относительно новые принтеры. Старые же игнорируют…
У вас большой зоопарк принтеров используется с таким способом печати?
Эксперементировали с печатью аналогичным способом и столкнулись со следующей проблемой:
Метод печати через посылку RAW данных в принтер — в нашем случае работает с принтером HP LaserJet 400 (ему можно посылать pdf, pcl, ps) — он всё печатает быстро и сразу.
А вот посылка аналогичных данных на HP LaserJect 3000 Series ни к чему не приводит (не печатается ни pdf, ни pcl, ни ps).
Если послать на Microsoft Print to PDF — тоже не работает — создается пустой файл.
Самое интересно, что если изменить драйвер принтера (HP 3000) на HP Universal Driver — то принтер начинает печать.
Есть подозрение что данные отправленные «напрямую» в принтер понимают только относительно новые принтеры. Старые же игнорируют…
У вас большой зоопарк принтеров используется с таким способом печати?
0
Дополню. Экспериментально полученный работающий механизм печати PDF средствами GhostScript (ориентация страниц печатается корректно). Работает с любыми принтерами, но по производительности явно уступает простой передаче данных напрямую в принтер.
using (GhostscriptProcessor processor = new GhostscriptProcessor(new GhostscriptVersionInfo("gsdll32.dll")))
{
List<string> switches = new List<string>();
switches.Add("-dPrinted");
switches.Add("-dBATCH");
switches.Add("-dNOPAUSE");
switches.Add("-dNumCopies=1");
switches.Add("-dPDFFitPage");
switches.Add("-dFIXEDMEDIA");
switches.Add("-dNoCancel");
switches.Add("-sDEVICE=mswinpr2");
switches.Add($"-sOutputFile=%printer%{dq.Name}");
switches.Add(FullPath);
processor.StartProcessing(switches.ToArray(), GSCallBack);
}
0
Добрый день!
Интересное наблюдение, спасибо что поделились.
Отлаживался я на принтере HP_M9050, на бою используются 603 и 606, так же проверял на Lexmark MS810.
Интересное наблюдение, спасибо что поделились.
Отлаживался я на принтере HP_M9050, на бою используются 603 и 606, так же проверял на Lexmark MS810.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
[PF] Печать PDF под .NET, векторный подход, практика