Приветствую!
Удавалось ли кому-то отправить pdf файл на принтер в серверном режиме?
DAX 2012
Принтер установлен на AOS и 100% доступен.
Файл на сетевом диске, 100% доступен.
Стандартные команды AdobeReader здесь не работают (при выполнении onServer):
X++:
new InteropPermission(InteropKind::ClrInterop).assert();
process = new System.Diagnostics.Process();
processInfo = process.get_StartInfo();
processInfo.set_FileName(@"acrord32.exe");
processInfo.set_Arguments(strFmt('/s /h /t "%1" "%2" "%3" "%4"'
, fileName
, deviceName
, printerDriverName
, PrinterPortName));
processInfo.set_UseShellExecute(true);
processInfo.set_CreateNoWindow(true);
process.Start();
CodeAccessPermission::revertAssert();
AdobeReader установлен на сервере. При запуске такого джоба из клиента, запущенного на АОСе - адоб открывается, принтер печатает.
При запуске джоба в серверном режиме - адоб появляется в процессах АОСа, печатаемый файл занят этим процессом, печать не происходит.
Насколько я понимаю, причина в том, что Адоб не умеет так печатать, без видимого клиентского интерфейса.
Пробовали использовать Spire.Pdf, библиотека печатает в серверном режиме! Нет рычагов, чтобы добиться правильного расположения печати с помощью этой библиотеки.
Библиотека PdfSharp вызывает всё тот же Адоб через process.Start() внутри себя.
Кто подскажет вариант/библиотеку?