Имя: Пароль:
1C
1С v8
Распечатать готовый файл изображения без открытия окна печати
0 Dirk Diggler
 
25.04.20
12:07
Как сделать? К документам прикреплены всякие файлы - jpg, pdf, xls.
Надо отсылать их на принтер без открытия диалогов и окон, т.к. документов много - десятки, сотни. Поэтому известная фишка


Shell = Новый COMОбъект("Shell.Application");
Shell.ShellExecute(ПолноеИмяФайла, "", "", "print", 0);


не подходит, т.к. открывает окно пользователю.
Для упрощения рассматриваю пока только один тип - pdf.
Какие еще есть варианты?
1 Dirk Diggler
 
25.04.20
12:08
Пока нашел темы на инфостарте, но решения не нашел. Курю.
https://forum.infostart.ru/forum9/topic139643/
2 Dirk Diggler
 
25.04.20
12:39
Разобрался. Придется разбирать файлы по расширению и печатать в зависимости от типа.

pdf - Foxit и Adobe Acrobat умеет печатать с командной строки.
изображения - irfanview и xnview

doc, xls - с пом. COM-объектов

&НаКлиенте
Процедура ПечатьDOCФайлов(ПутьКФайлу, ИмяПринтера = «»)
WordAppl = Новый COMОбъект(«Word.Application»);
WordAppl.Documents.Open(ПутьКФайлу);
WordAppl.Documents(ПутьКФайлу).Activate();
WordAppl.ActivePrinter = ИмяПринтера;
WordAppl.ActiveDocument.PrintOut();
WordAppl.ActiveDocument.close();
КонецПроцедуры

&НаКлиенте
Процедура ПечатьExcelФайлов(ПутьКФайлу, ИмяПринтера = «»)
ExcelAppl = Новый COMОбъект(«Excel.Application»);
ExcelAppl.Workbooks.Open(ПутьКФайлу);
ExcelAppl.ActiveSheet.PrintOut(,,,,ИмяПринтера);
ExcelAppl.WorkBooks.Close();
ExcelAppl.Quit();
КонецПроцедуры
3 acht
 
25.04.20
12:50
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.