Библиотека печати на PDF принтер Bullzip для 1С 7.7

11.12.18

Интеграция - Периферийные устройства

В данной статье приведено несколько методов, которые позволят подключить PDF принтер Bullzip к своему проекту на платформе 1С Предприятие 7.7. Используя PDF принтер, вы сможете сохранять ваши табличные документы в формате PDF. Вы программно можете задавать имя PDF файла и его расположение на диске.

Зависимости проекта:

PDF принтер Bullzip: ссылка на сайт
GPL Ghostscript: ссылка на скачивание

Установка PDF принтера:

Скачайте с сайта разработчика bullzip.com PDF принтер и дополнительную компоненту GPL Ghostscript. Установите эти продукты по умолчанию на рабочем месте, где будет выполняться печать на PDF принтер. После установки, в системе Windows должен появиться PDF принтер Bullzip PDF Printer.

Настройте PDF принтер, для этого запустите программу управления принтером: Пуск - Программы - Bullzip - PDF Printer - Bullzip PDF Printer Настройки

На закладке Диалоги установите опции:

  • Диалог “Сохранить как” в значение Никогда
  • Диалог “Установки” в значение Никогда

и нажмите кнопки Применить и ОК.

Подключение библиотеки

1. Это для платформы 1С Предприятие 7.7

2. Скопируйте библиотеку в модуль формы, откуда будет производиться печать на PDF принтер.

3. В методе формы ПриОткрытии инициализируйте принтер с помощью метода ПринтерPDFПодключить(), например так:

бРезультатПодключения = ПринтерPDFПодключить();
Если бРезультатПодключения <> 1 Тогда
    Сообщить("На компьютере не установлен PDF принтер Bullzip",
    // Принтер не найден, наименование сбрасываем. Контролируется при печати
    м_ПринтерPDF = "";    
КонецЕсли;

4. Сформируйте табличный документ и отправьте его на печать с помощью метода ОтправитьДокументPDF(оТаблица, сКаталогПечати, сИмяФайла), например так:

bResult = ОтправитьДокументPDF(оТаблица, сКаталогПечати, сИмяФайла);
Если bResult = 0 Тогда
    Сообщить("Не удалось отправить на печать документ" + сИмяФайла);
КонецЕсли;

Параметры метода:

  • оТаблица - ТабличныйДокумент- документ который нужно напечатать на принтере
  • сКаталогПечати - Строка - Путь к каталогу, куда будет сохранен результирующий PDF файл документа. Каталог должен существовать. У пользователя должны быть права на запись в каталог.
  • сИмяФайла - Строка - Имя файла PDF документа. Можно с расширением ".pdf" или без расширения

Дополнительная информация

  1. Одновременно с принтером устанавливается и регистрируется COM объект, через который происходит установка параметров принтера.
  2. Документация по параметрам принтера и COM объекту находится на сайте biopdf.com

Полный код библиотеки:

 

или на GitHub

печать 77 PDF Bullzip

См. также

Периферийные устройства Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Cистема управления светофором на автовесовой через USB-реле MP 709. Позволяет оператору автовесовой нажатием кнопки в 1С управлять светофором, разрешающим машине выехать с весов после фиксации в программе результата взвешивания.

1 стартмани

01.05.2015    17390    13    VShevelev    8    

11

Периферийные устройства Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Клиент из торговой фирмы изъявил желание сэкономить на количестве заправок картриджа. Решение его проблемы? Смотрим код:

19.09.2010    3282    ig_infostart    8    

7

Периферийные устройства Системный администратор Программист Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Абонемент ($m)

Пишем в порт, читаем из порта. Зная протокол обмена, сможем внешним устройством управлять. Например, ридером меток RFID.

1 стартмани

10.04.2009    17526    324    Арчибальд    8    

21

Периферийные устройства Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Печатать на datamax ч/з драйвер системы - долго. Есть внешние компоненты, но можно обойтись и средствами 1С. Обработка писалась для печати на удаленные принтеры при плохом канале связи (впн ч/з интернет).

08.04.2009    10625    25    rk    6    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malev 92 12.12.18 14:23 Сейчас в теме
Не вижу преимуществ перед обычным виртуальном pdf принтером, например CutePDF.
2. CheBurator 2712 12.12.18 22:20 Сейчас в теме
(1) ну так это и есть тот же самый пдф-принтер. единственное - автор сделал готовые предустановки параметров для этого пдф-принтера в виде "методов"/процедур/функций 1С - что, несомненно, удобно
3. CheBurator 2712 12.12.18 23:24 Сейчас в теме
внутри метода хорошо бы реализовать авторазбор "оТаблица" - чтобы в параметро можно было передавать или табличный документ (моксель) или имя файла к мокселю
4. CheBurator 2712 12.12.18 23:41 Сейчас в теме
В функции ПроверитьКаталог()
поправить ТипЗнч на ТипЗначения
AKnyazkov; +1 Ответить
5. CheBurator 2712 12.12.18 23:43 Сейчас в теме
как прототип - сграбил себе в ГМ, мпасибо
6. alexeyburtsev 44 11.02.20 22:42 Сейчас в теме
7. Infector 201 17.04.20 12:20 Сейчас в теме
Господа, подскажите кто знает, как управлять форматом файла (т.е. указать вместо PDF JPG / PNG и т.д.)?
8. infosoft-v 927 17.04.20 13:03 Сейчас в теме
9. Infector 201 17.04.20 19:10 Сейчас в теме
(8)есть такое дело. Для ленивых:
Параметр Device
Значения:
"bmpmono", "bmpgray", "bmpsep1", "bmpsep8", "bmp16", "bmp256", "bmp16m", "bmp32b", "epswrite", "pswrite", "psraw", "jpeg", "jpeggray", "pcxmono", "pcxgray", "pcx16", "pcx256", "pcx24b", "pcxcmyk", "pngmono", "pnggray", "png16", "png256", "png16m", "pngalpha", "tiffgray", "tiff12nc", "tiff24nc", "tiff32nc", "tiffsep", "tiffcrle", "tiffg3", "tiffg32d", "tiffg4", "tifflzw", "tiffpack", "pdfwrite", "docwrite"

Параметры управления разрешением:

Res
ResX
ResY
SuperimposeResolution
10. user977372 05.11.20 23:36 Сейчас в теме
Приветствую!

Формирую таблицу.
Запускаю все вышеописанные процедуры.
1-й раз всё ОК.

2-й раз и далее таблица формируется без рисунка (он у меня есть в данной конкретной печатной форме - типа счёт с печатью);
при этом блок рисунка формально есть в печатной форме, но сам рисунок не отображается.

Посмотрел более точно: проблема возникает после первого запуска WriteSettings(1).
11. user977372 05.11.20 23:37 Сейчас в теме
12. AndKovalchuk 195 22.12.21 09:09 Сейчас в теме
Подскажите, а для каких целей служит дополнительная компонента GPL Ghostscript?
13. infosoft-v 927 22.12.21 10:21 Сейчас в теме
(12) для работы с PDF документами
14. bakirov.i 04.11.22 15:56 Сейчас в теме
Добрый день.
При попытке создать объект СоздатьОбъект("Bullzip.PdfSettings") выдает ошибку "Класс не зарегистрирован".
Знаю, что надо зарегистрировать его через regsvr32, но хоть убей не пойму где эта dll, которую надо регистрировать.

В пакете с bullzip есть еще и pdfcmd - типа утилита на запуска из командной строки, она работает, даже отправляет что-то на печать. И мне бы даже этого хватило, но незадача в том, что принтер выдает пустые листы.

Можете помочь с вопросом?
15. infosoft-v 927 07.11.22 10:00 Сейчас в теме
(14) Добрый день. Прошу прощения, но многие детали этой задачи ушли из памяти.
На сколько я помню, отдельно ничего регистрировать не приходилось. Достаточно корректно установить программы из абзаца "Зависимости проекта"
16. GregyshkaPSI 16.06.23 19:06 Сейчас в теме
Добрый
Не сталкивались с проблемой что открывает диалог для выбора места сохранения
Причем у одного пользователя
17. infosoft-v 927 17.06.23 08:45 Сейчас в теме
(16) добрый день, думаю на этой машине не выполнена настройка:

Настройте PDF принтер, для этого запустите программу управления принтером: Пуск - Программы - Bullzip - PDF Printer - Bullzip PDF Printer Настройки

На закладке Диалоги установите опции:

Диалог “Сохранить как” в значение Никогда
Диалог “Установки” в значение Никогда


Может потребоваться полный сброс настроек или переустановка принтера.
GregyshkaPSI; +1 Ответить
18. CheBurator 2712 20.11.24 15:57 Сейчас в теме
на строке
оPDFSetting.WriteSettings(1);
падает с ошибкой
"Ссылка на объект не указывает на экземпляр объекта".

как исправить?
19. CheBurator 2712 20.11.24 17:01 Сейчас в теме
проблема в том, что вот здесь
м_ПринтерPDF = м_оPDFUtil.DefaultPrinterName;
возвращается "Bullzip PDF Printer" // ПОЧЕМУ??? непонятно!
в то время как в системе этот принтер установлен у меня под именем "PDFPrinter"
.
если имя PDFPrinter подсунуть вот сюда
PDFSetting.PrinterName = "PDFPrinter"; //м_ПринтерPDF;
то все проходит норм.
.
непонятно только как получить имя принтера может есть какой другой атрибут установок, не DefaultPrinterName ?
20. infosoft-v 927 21.11.24 07:55 Сейчас в теме
(19) Добрый день.
К сожалению не смогу оказать вам помощь. Я больше не использую платформу 7.7. Извините.
21. CheBurator 2712 25.11.24 14:43 Сейчас в теме
(20) Норм.
Тут вопрос не в 77, а скорее к атрибутам BullZip...
но пока не и особо и надо...
Оставьте свое сообщение