Печать на стороне сервера при помощи Ghostscript

17.10.22

Разработка - Инструментарий разработчика

Пример выполнения печати на принтер на сервере 1С используя библиотеку Ghostscript

Скачать файлы

Наименование Файл Версия Размер
Печать на стороне сервера при помощи Ghostscript:
.epf 39,59Kb
14
.epf 1.0.0.1 39,59Kb 14 Скачать

Иногда бывает необходимо выполнять печать документов в регламентных заданиях, или при работе с web сервисами 1С. Штатными методами нельзя выполнить печать на стороне сервера 1С. Предлагаю вариант решения данной задачи при помощи библиотеки

Ghostscript необходимо предварительно установить на сервер 1С. Данный пример реализован в виде внешней обработки, позволяет выбрать принтер и размер бумаги, в том числе произвольный (Custom).

 

 

 

&НаСервере
Процедура ПечатьНаСервере(Знач пПутьКГХостСкрипт,Знач пПринтер)
	ФайлДляПроверки = Новый Файл(пПутьКГХостСкрипт);
	Если не ФайлДляПроверки.Существует() Тогда
		Сообщить("Не найден файл ghostscript!");
		Возврат;
	КонецЕсли;
	пПутьКГХостСкрипт = """" + пПутьКГХостСкрипт  + """";
	пПринтер =  """%printer%" +  пПринтер + """";
	
    //ПечатнаяФорма	- Табличный документ
	ПечатнаяФорма.ПолеСверху = 0;
	ПечатнаяФорма.ПолеСлева = 0;
	ПечатнаяФорма.ПолеСнизу = 0;
	ПечатнаяФорма.ПолеСправа = 0;
	
	ПечатнаяФорма.РазмерКолонтитулаСверху = 0;
	ПечатнаяФорма.РазмерКолонтитулаСнизу = 0;
	ПечатнаяФорма.РазмерСтраницы = Размер;
	
	РазмерБумаги = "";
	Если Размер = "Custom" Тогда
		ПечатнаяФорма.ВысотаСтраницы = ВысотаСтраницы;
		ПечатнаяФорма.ШиринаСтраницы = ШиринаСтраницы;
		ПечатнаяФорма.АвтоМасштаб = Истина;
		//1/72 дюйма
		ммВДюйме = 25.4;  
		РазмерБумаги = " -dDEVICEWIDTHPOINTS=" + Формат(ШиринаСтраницы/ммВДюйме*72,"ЧДЦ=0; ЧГ=0") + " -dDEVICEHEIGHTPOINTS="+Формат(ВысотаСтраницы/ммВДюйме*72,"ЧДЦ=0; ЧГ=0");
	Иначе
		РазмерБумаги = " -sPAPERSIZE=" + Размер;	
	КонецЕсли;
	
	ФайлДляПечати = ПолучитьИмяВременногоФайла("pdf");
	ПечатнаяФорма.Записать(ФайлДляПечати, ТипФайлаТабличногоДокумента.PDF);
	
	ФайлНаДиске = Новый Файл(ФайлДляПечати);
	Если не ФайлНаДиске.Существует() Тогда
		Сообщить("Не найден файл для печати!");
		Возврат;
	КонецЕсли;	
	
	ФайлДляПечати = """" + ФайлДляПечати + """";
	
	КомандаПечати = пПутьКГХостСкрипт + " -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=mswinpr2 -sOutputFile=" + пПринтер + " -dPDFFitPage " 
	+ РазмерБумаги + " "+ ФайлДляПечати;
	ЗапуститьПриложение(КомандаПечати,,Ложь,);
		
КонецПроцедуры

Платформа предприятия 8.3.20

Пример для ОС Windows, но есть версия библиотеки для Linux

Исходный код открыт

Печать на сервере Ghostscript

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 руб.

02.09.2020    102090    565    385    

611

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

Инструментарий разработчика DevOps и автоматизация разработки DevOps для 1С Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11582    26    2    

142

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 руб.

14.01.2013    173138    1042    0    

817

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    3611    3    0    

17

Управление данными и формами (УДиФ)

Инструменты администратора БД Инструментарий разработчика Администрирование Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    1411    3    1    

20

Пакетная выгрузка стандартных бухгалтерских отчетов

Пакетная печать Регламентированный учет и отчетность Файловый обмен (TXT, XML, DBF), FTP Загрузка и выгрузка в Excel Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Быстрое формирование сразу нескольких видов стандартных бухгалтерских отчетов - .Анализ счета, Карточка счета, Оборотно-сальдовая ведомость по счету, Отчет по проводкам. В периоды проведения проверок со стороны ФНС в деятельности предприятий часто возникает необходимость предоставления сведений из бухгалтерского учета. Обработка сократит время на формирование отчетов бухгалтеру.

6000 руб.

30.03.2023    5956    4    0    

5

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    97613    237    97    

287

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    22401    14    15    

27
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. idiked 18.02.23 15:37 Сейчас в теме
Спасибо, отличная замена нестабильному PDFtoPrinter.
Оставьте свое сообщение