Общее описание
Отлично подходит для печати прикрепленных файлов в формате PDF, а также печатных форм, есть возможность загрузки PDF из двоичных данных, позволяет показывать диалог печати с установкой диапазона страниц и количества копий или же задавать принтер и диапазон страниц непосредственно в вызове.
Для подключения компоненты используются стандартные методы УстановитьВнешнююКомпоненту() на Клиенте в синхронном режиме, ПодключитьВнешнююКомпоненту() на Сервере или на Клиенте в синхронном режиме, и НачатьУстановкуВнешнейКомпоненты() и НачатьПодключениеВнешнейКомпоненты() на Клиенте в асинхронном режиме вызовов.
Перед началом работы на стороне клиента в асинхронном режиме необходимо вызвать установку компоненты:
НачатьУстановкуВнешнейКомпоненты(ОбработчикРезультата, АдресКомпоненты);
Далее необходимо ее подключить и можно вызывать ее методы:
НачатьПодключениеВнешнейКомпоненты(ОбработчикРезультата, АдресКомпоненты, "PrintPDF");
Примерный код использования компоненты на стороне Клиента в асинхронном режиме может выглядеть так:
Перем мКомпонента;
&НаКлиенте
Процедура Печать(Команда)
Если мКомпонента = Неопределено Тогда
УстановитьКомпоненту(
Новый ОписаниеОповещения("ПечатьПродолжение", ЭтотОбъект));
Возврат;
КонецЕсли;
ПечатьПродолжение(Истина, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ПечатьПродолжение(КомпонентаПодключена, ДополнительныеПараметры) Экспорт
Если НЕ КомпонентаПодключена Тогда
Возврат;
КонецЕсли;
Если мКомпонента = Неопределено Тогда
мКомпонента = Новый("AddIn.PrintPDF.PrintPDFAddInExtension");
КонецЕсли;
мКомпонента.НачатьВызовПечать(Новый ОписаниеОповещения("ПечатьЗавершение", ЭтотОбъект),
ИмяФайла, Описание, ПоказыватьДиалогПечати, Принтер, Пароль, Страницы);
КонецПроцедуры
&НаКлиенте
Процедура ПечатьЗавершение(РезультатВызова, ПараметрыВызова, ДополнительныеПараметры) Экспорт
КонецПроцедуры
&НаКлиенте
Процедура УстановитьКомпоненту(ОбработчикРезультата) Экспорт
Обработчик = Новый ОписаниеОповещения("УстановитьКомпонентуЗавершение", ЭтотОбъект, ОбработчикРезультата);
НачатьУстановкуВнешнейКомпоненты(Обработчик, АдресКомпоненты);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьКомпонентуЗавершение(ОбработчикРезультата) Экспорт
НачатьПодключениеВнешнейКомпоненты(ОбработчикРезультата, АдресКомпоненты, "PrintPDF");
КонецПроцедуры
Есть возможность вызова компоненты из внешней обработки, чтобы не снимать типовую конфигурацию с поддержки, рабочий код использования компоненты представлен в обработке TestPrintPDF.epf (в обработке отсутствует компонента, поэтому ее нужно загрузить в макет после покупки).
Компонента работает как на x86, так и x86_64 платформах, в режиме Сервера, Тонкого клиента и Веб-клиента (для браузеров Firefox и Chrome), распространяется в виде пакетного файла, который содержит в себе все версии компоненты.
Протестировано на всех версиях платформы, начиная от 8.2.19.130.
Методы:
Печать / Print - основной метод, отправляет файл на печать, возвращает Истину при успешном выполнении и Ложь, если при вызове произошла ошибка
Может вызываться как с передачей имени файла, так и двоичных данных
Параметры при передаче имени файла:
ПутьКФайлу - обязательный, тип "Строка", полный путь к файлу PDF
Описание - обязательный, тип "Строка", описание задания печати
ПоказыватьДиалогПечати - необязательный, тип "Булево", определяет показывать диалог печати или нет, значение по умолчанию - Ложь
ИмяПринтера - необязательный, тип "Строка", имя принтера, на который будет отправлен документ, если не определен, то печать осуществляется на принтер, установленный по умолчанию в система
Пароль - необязательный, тип "Строка", пароль для чтения защищенного PDF-файла
Страницы - необязательный, тип "Строка", диапазоны страниц для печати, разделенные запятыми (например "1,5,6", или "1-3,7-9", или "1,3-5")
Автоповорот - необязательный, тип "Булево"
Копий - необязательный, тип "Число", количество копий
ДвусторонняяПечать - необязательный, тип "Число", режим двусторонней печати:
0 - использовать настройки принтера (по умолчанию);
1 - односторонняя печать;
2 - двусторонняя печать (поворот вверх);
3 - двусторонняя печать (поворот влево);
Автоцентрирование - необязательный, тип "Булево"
Масштабировать - необязательный, тип "Число", режим масштабирования печати:
0 - не масштабировать;
1 - масштабировать по размеру полей принтера (по умолчанию);
2 - уменьшить до полей принтера;
3 - заданный масштаб (задается следующим параметром);
Масштаб - необязательный, тип "Число", заданный в процентах масштаб
Параметры при передаче двоичных данных:
Данные - обязательный, тип "ДвоичныеДанные", двоичные данные файла PDF
Описание - обязательный, тип "Строка", описание задания печати
ПоказыватьДиалогПечати - необязательный, тип "Булево", определяет показывать диалог печати или нет, значение по умолчанию - Ложь
ИмяПринтера - необязательный, тип "Строка", имя принтера, на который будет отправлен документ, если не определен, то печать осуществляется на принтер, установленный по умолчанию в система
Пароль - необязательный, тип "Строка", пароль для чтения защищенного PDF-файла
Страницы - необязательный, тип "Строка", диапазоны страниц для печати, разделенные запятыми (например "1,5,6", или "1-3,7-9", или "1,3-5"
Автоповорот - необязательный, тип "Булево"
Копий - необязательный, тип "Число", количество копий
ДвусторонняяПечать - необязательный, тип "Число", режим двусторонней печати:
0 - использовать настройки принтера (по умолчанию);
1 - односторонняя печать;
2 - двусторонняя печать (поворот вверх);
3 - двусторонняя печать (поворот влево);
Автоцентрирование - необязательный, тип "Булево"
Масштабировать - необязательный, тип "Число", режим масштабирования печати:
0 - не масштабировать;
1 - масштабировать по размеру полей принтера (по умолчанию);
2 - уменьшить до полей принтера;
3 - заданный масштаб (задается следующим параметром);
Масштаб - необязательный, тип "Число", заданный в процентах масштаб
ВключитьЛог / EnableLog - включает логирование, возвращает Истину при успешном выполнении и Ложь, если при вызове произошла ошибка
Параметры:
ПутьКФайлуЛога - обязательный, тип "Строка", полный путь к файлу лога, доступный для записи в контексте выполнения методов компоненты
Уровень - необязательный, тип "Число", уровень логирования:
0 - только ошибки (по умолчанию);
1 - ошибки и предупреждения;
2 - ошибки, предупреждения и информационные сообщения;
3 - ошибки, предупреждения, информационные сообщения, отладочная информация;
На данный момент используется только уровень 0 и 2.
Важно
В асинхронном режиме вызовы методов должны выполняться через НачатьВызов, например:
Компонента.НачатьВызовПечать(Новый ОписаниеОповещения("ПечатьЗавершение", ЭтотОбъект),
ИмяФайла, Описание, ПоказыватьДиалогПечати, Принтер, Пароль, Страницы);