Как избавиться от надписи TRIAL MODE при печати в PDF через Bullzip на терминальном сервере в 1С 7.7?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

При использовании виртуального принтера Bullzip PDF Printer в среде 1С:Предприятие 7.7 на сервере терминалов (RDP) разработчики и администраторы часто сталкиваются с неприятной особенностью: в нижней части созданных PDF-документов появляется надпись TRIAL MODE - Click here for more information. При этом у пользователя, под которым устанавливалась утилита, файлы формируются корректно, а у остальных сессионных пользователей RDP добавляется штамп.

Рассмотрим подробнее причину возникновения этой проблемы, разберем программный код работы с COM-объектом Bullzip из 1С 7.7 и изучим проверенные способы устранения надписи.

Выясним причину появления водяного знака

Появление строки TRIAL MODE связано с лицензионными ограничениями бесплатных версий Bullzip PDF Printer в многопользовательских терминальных средах:

  1. Определение RDP-сессии: Бесплатная редакция виртуального принтера рассчитана на локальное использование. При запуске в среде терминального сервера программа определяет наличие RDP-окружения и переходит в демонстрационный режим, требующий приобретения серверной лицензии.
  2. Изоляция настроек профилей в реестре: В процессе установки программы ключевые параметры записи и конфигурации сохраняются в ветке реестра текущего пользователя HKEY_CURRENT_USER\Software\Bullzip\PDF Printer. У других терминальных пользователей создаются собственные изолированные ветки `HKCU`, в которых отсутствуют требуемые данные, из-за чего запуск расценивается как незарегистрированный.

Проанализируем пример кода для фоновой печати из 1С 7.7

Программа 1С 7.7 управляет настройками виртуального принтера через COM-объект Bullzip.PDFPrinterSettings. Разберем по шагам стандартный алгоритм формирования печатных форм без вывода диалоговых окон:


Попытка
    ПринтерPDF = СоздатьОбъект("Bullzip.PDFPrinterSettings");
Исключение
    Предупреждение("Не установлен PDF принтер!");
    Возврат;
КонецПопытки;

// Настройка фонового сохранения без запросов пользователю
ПринтерPDF.SetValue("output", ИмяФайла);
ПринтерPDF.SetValue("ShowSaveAS", "never");
ПринтерPDF.SetValue("ShowProgress", "no");
ПринтерPDF.SetValue("ShowProgressFinished", "no");
ПринтерPDF.SetValue("ShowSettings", "never");
ПринтерPDF.SetValue("ShowPDF", "no");
ПринтерPDF.SetValue("ConfirmOverwrite", "no");
ПринтерPDF.WriteSettings();

// Задание параметров страницы в 1С
НастройкиПечатиОриентация = 1; // 1 - портретная, 2 - ландшафтная
НастройкиПечатиМасштаб = 100;
НастройкиПечатиРазложитьПоКопиям = 1;
НастройкиПечатиПолеЛев = 10;
НастройкиПечатиПолеПрав = 10;
НастройкиПечатиПолеВерх = 10;
НастройкиПечатиПолеНиз = 10;
НастройкиПечатиКолонтитулВерх = 0;
НастройкиПечатиКолонтитулНиз = 0;
НастройкиПечатиАвтомасштабПоШирине = 1;
НастройкиПечатиЧерноБелаяПечать = 0;
НастройкиПечатиИмяПринтера = "Bullzip PDF Printer";

Таб.ПараметрыСтраницы(НастройкиПечатиОриентация, НастройкиПечатиМасштаб, НастройкиПечатиРазложитьПоКопиям,
НастройкиПечатиПолеЛев, НастройкиПечатиПолеПрав, НастройкиПечатиПолеВерх, НастройкиПечатиПолеНиз,
НастройкиПечатиКолонтитулВерх, НастройкиПечатиКолонтитулНиз, НастройкиПечатиАвтомасштабПоШирине,
НастройкиПечатиЧерноБелаяПечать, НастройкиПечатиИмяПринтера);

Таб.Напечатать(0);

В приведенном коде метод SetValue позволяет принудительно отключить все интерактивные диалоги и передать имя создаваемого файла в параметр output, а метод WriteSettings записывает параметры во временный файл конфигурации. Однако если программа работает в режиме RDP с ограничениями редакции, это не предотвратит вывод водяного знака.

Способы решения проблемы

1. Установка старой версии Bullzip PDF Printer

Наиболее простой и проверенный на практике способ — использование старых версий утилиты, в которых алгоритм жесткой проверки RDP-сессий отсутствовал или работал иначе. Практика показывает, что дистрибутивы серии 10.x (например, Setup_BullzipPDFPrinter_10_0_0_1840_S.exe или Setup_BullzipPDFPrinter_10_12_0_2363) корректно формируют PDF-файлы на Windows Server без добавления водяного знака TRIAL MODE для всех терминальных пользователей.

2. Перенос настроек в общесистемную ветку реестра (HKLM)

Для того чтобы параметры принтера были одинаково видны всем пользователям сервера, можно продублировать конфигурацию из ветки реестра администратора в глобальный раздел HKEY_LOCAL_MACHINE\SOFTWARE\Bullzip\PDF Printer или настроить общесистемный файл конфигурации global.ini в каталоге ProgramData.

Также важно убедиться, что у учетных записей RDP-пользователей есть права на запись в их персональный каталог временных файлов %TEMP%, куда COM-объект записывает конфигурационные файлы перед печатью.

3. Проброс виртуального принтера с локального компьютера (RDP Printer Redirection)

Если серверная установка блокируется политикой лицензирования, можно установить Bullzip PDF Printer непосредственно на физические рабочие станции пользователей. В настройках RDP-клиента включает проброс принтеров (Printer Redirection). В этом случае 1С 7.7 отправляет задание на перенаправленный принтер, а сама генерация файла происходит в локальной ОС пользователя, где виртуальный принтер работает в беспрепятственном локальном режиме.

4. Использование бесплатных альтернативных виртуальных принтеров

Если возможности сменить версию Bullzip нет, целесообразно рассмотреть альтернативные решения, полностью бесплатные для применения на серверах:

← На главную