IE2017

Печать в PDF используя PDFCreator, Ghostscript, RedMon

Администрирование - Сервисные утилиты

Печать в PDF, используя PDFCreator, функция

// Печать в PDF используя PDFCreator

Используем не требующий лицензирования PDFCreator для формирования PDF (через виртуальный принтер), управление через wScript.shell параметрами в реестре
(выводим на PDFCreator, ждем формирования PDF, делаем с файлом что угодно)

Во вложении функция для подготовки файла, необходимо установить PDFCreator (на компе пользователя, через общий доступ не пробовали, хотя вроде шарится)

 http://www.pdfforge.org/files/images/PDFCreator2.png

Принтер для печати графики использующий Ghostscript

Можно обойтись без PDFCreator (который использует GhostScript)

Методика по ссылке http://club.shelek.ru/viewart.php?id=209

Инсталятор GS+Redmon+Script во вложении, может использоваться как сетевой, принтер создает файл в папке с именем пользователя, ну а дальше мы делаем с ним что необходимо. В этом случае wScript.shell не нужен

Можно формировать PNG, JPEG, BMP,...  Рассмотренное ПО не требует лицензирования. Удачи

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

Наименование Файл Версия Размер
-
.1230199312 2,58Kb
31.12.14
328
.1230199312 2,58Kb 328 Скачать
Пример принтера Ghostscript и RedMon
.1238523253 11,84Mb
31.12.14
69
.1238523253 11,84Mb 69 Скачать
PDFCreator.txt 8.1 (minimax)
.1238526285 3,00Kb
31.12.14
82
.1238526285 3,00Kb 82 Скачать

См. также

Комментарии
1. Александр Куденцов (AklexK) 21 25.12.08 13:11 Сейчас в теме
PDFCreator должен быть установлен на компе пользователя
2. Сhe Burashka (CheBurator) 25.12.08 13:17 Сейчас в теме
Не очень... вроде же пдфкреатор поддерживает сетевую установку...
??
3. Александр Куденцов (AklexK) 21 25.12.08 13:19 Сейчас в теме
через общий доступ не пробовали
4. Александр Куденцов (AklexK) 21 26.12.08 11:40 Сейчас в теме
Для общего доступа к принтеру необходимо установить PDFCreator в режиме сервера и получать файлы из папки сервера \\serv\PDFs\<REDMON_MACHINE>\<REDMON_USER>\
5. Александр Куденцов (kudenzov) 71 26.12.08 12:18 Сейчас в теме
хорошая альтернатива платному Adobe
6. Сhe Burashka (CheBurator) 27.12.08 01:29 Сейчас в теме
<REDMON_MACHINE> - ???
\<REDMON_USER>\ - ???
7. Александр Куденцов (kudenzov) 71 30.12.08 11:40 Сейчас в теме
<REDMON_MACHINE> - netbios Имя машины
<REDMON_USER> - имяпользователя
PDFCreator по умолчанию при серверной установке помещает файлы в данные папки, на диске сервера:
C:\PDFs\<REDMON_MACHINE>\<REDMON_USER>\

сделав данную папку Shared - можете забтрать файлы после печати
8. Z1C (ZLENKO) 16.01.09 10:15 Сейчас в теме
Приятная особенность PDFCreator в том что можно файл сразу вкладывать как вложение в письмо типа mailto. Я так автоотсылку счетов клиентам делал одновременно с печатью счета на бумаге. Вот только закрыть доступ на редактирование PDF файла не удалось - похоже глюк.
9. Sergey Doronin (dsa046) 09.03.09 17:04 Сейчас в теме
Z1C, а не осталось примерчика? Сейчас примено над такой же задачей бьюсь - печать оригиналов и одновременная рассылка по почте электронных вариантов.
10. Игорь Костюк (foxey) 2 13.03.09 13:37 Сейчас в теме
А как из 8-ки напечатать в PDFCreator?
11. Александр Куденцов (AklexK) 21 14.03.09 09:42 Сейчас в теме
1. вывод на принтер PDFCreator
2. Когда-то делал рассылку факсов и e-mail http://alkud.boom.ru/1c_faks.htm
(работет и сейчас) - можно переделать под PDFCreator

12. Sergey Doronin (dsa046) 15.03.09 21:02 Сейчас в теме
AklexK , прикольная штука получилась, судя по описанию... Только для 8-ки бы исходник.

Люди делал кто-нить рассылку через PDF на e-mail из 8-ки? Поделитесь примерчиком плиз!!!
13. Василий Демидов (Душелов) 3801 15.03.09 21:04 Сейчас в теме
(12) А поиском воспользоваться религия не позволяет?

http://infostart.ru/blogs/605/
http://infostart.ru/projects/3138/
14. minimax (minimaxpo) 31.03.09 16:04 Сейчас в теме
Спасибо за отличную реализацию конвартации печатных форм 1с в PDF.
Переписал для 8.1:
Функция глРежимФайлаОтчета()
Перем Режим;
Режим = "xls"; // по умолчанию
// если установден PDFCreator
Попытка
WshShell = Новый COMОбъект("wScript.shell");
PDFCreater = WshShell.RegRead("HKCU\Software\PDFCreator\Program\Language");
Если ЗначениеЗаполнено(PDFCreater) Тогда
Режим = "pdf";
Возврат Режим;
конецесли;
исключение
конецпопытки;

Возврат Режим;
КонецФункции
// подготовим выходной файл
//

Функция глПечатьВоВнешнийФайл(Таб, парИмяФайла="invoice") Экспорт
Перем ВыхФайл,ПутьПТП;

ВыхФайл = "";

РежимФайла = глРежимФайлаОтчета();
// Excel
Если РежимФайла = "xls" Тогда
ЕмФайл = КаталогВременныхФайлов() + парИмяФайла;
Попытка
Таб.Записать(ЕмФайл+".xls", "XLS");
ВыхФайл = ЕмФайл+".xls";
Исключение
КонецПопытки;


// PDFCreator
ИначеЕсли РежимФайла = "pdf" Тогда

ПутьПТП = КаталогВременныхФайлов();

//Печать на PDF
WshShell = Новый COMОбъект("wScript.shell");
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Program\AutosaveFilename" ,парИмяФайла); // имя файла
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Program\AutosaveDirectory",ПутьПТП); // путь автосохранеия
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Program\UseAutosave","1"); // автосохранение
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Program\UseAutosaveDirectory","1"); // сохранять в
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Program\AutosaveFormat","0"); // формат - PDF
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Program\AutosaveStartStandardPr­ogram","0"); // Не открываем файл
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Printing\Formats\PDF\Colors\PDF­ColorsColorModel","2"); // цвет - серый
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Printing\Formats\PDF\Security\P­DFUseSecurity","1"); // защита PDF
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Printing\Formats\PDF\Security\P­DFDisallowCopy","1"); // защита PDF
WshShell.RegWrite ("HKCU\"+"Software\PDFCreator\Printing\Formats\PDF\Security\P­DFDisallowModifyContents","1"); // защита PDF


ЛогФайл = Новый Файл(ПутьПТП+парИмяФайла+".pdf");
Если ЛогФайл.Существует() Тогда
УдалитьФайлы(ПутьПТП+парИмяФайла+".pdf",);
КонецЕсли;
//ФС.УдалитьФайл(ЛогФайл);
Таб.ИмяПринтера = "PDFCreator";
УниверсальныеМеханизмы.НапечататьДокумент(Таб, 1, Истина);
//Таб.ПараметрыСтраницы(1,,,,,,,,,1,,"PDFCreator");
//Таб.Напечатать(0); // печатем
// ждем
повторов = 0;
Неудалось = 0;
ЛогФайл = Новый Файл(ПутьПТП+парИмяФайла+".pdf");
Пока НЕ ЛогФайл.Существует() цикл
Для i=1 По 10000 Цикл
ОбработкаПрерыванияПользователя();
КонецЦикла;
Состояние("подготовка графического файла");
повторов = повторов + 1;
Если повторов = 1000 тогда
Неудалось = 1;
Прервать;
КонецЕсли;
Конеццикла;
Если Неудалось = 0 тогда // есть файл
ВыхФайл = ПутьПТП+парИмяФайла+".pdf";
КонецЕсли;
КонецЕсли;

Возврат ВыхФайл;
КонецФункции
15. Александр Куденцов (AklexK) 21 31.03.09 22:05 Сейчас в теме
Можно вообще обойтись без PDFCreator, используя только Ghostscript,RedMon и script для RedMon
Методика здесь
http://club.shelek.ru/viewart.php?id=209


16. Александр Куденцов (AklexK) 21 31.03.09 22:45 Сейчас в теме
Если ОбработкаПрерыванияПользователя() вставлять, то флажок
Неудалось = 1 надо бы поставить
17. Боровиков Дмитрий (d_borovikov) 07.07.10 11:41 Сейчас в теме
Работа PDFCreator для терминальных пользователей Windows server 2003 +1C 7.7 возможна. PDFCreator установлен только на Windows server 2003 (в обычном/клиентском режиме)
Необходимо сделать следующее:
1. Для каждого из терминальных пользователей разрешаем права на запись/чтение в реестре по ветке HKEY_CURRENT_USER\ () (используем редактор реестра REGEDIT
2. Заходим под каждым терминальным пользователем и с помощью редактора реестра REGEDIT дописываем ветку HKEY_CURRENT_USER\Software\PDFCreator\Program\
далее создаем New -> String Value = Language Value data=russian
3. Перегружаем Windows server 2003
.... пользуемся

.... можно сделать заплатку для реестра и при каждом запуске терминального пользователя - добавлять эту ветку реестра. (заниматься нет времени, но задача решена)
18. Anna Fomina (Fomania) 03.05.11 11:52 Сейчас в теме
minimax пишет:
Переписал для 8.1

Спасибо, то что нужно как раз! Только в макет документа я вставила рисунки - печать и подписи. Почему-то при печати в PDF из программы они оказываются на черном фоне вместо прозрачного. Если сначала сохранить документ в Excel, а оттуда отправить в PDFCreator (вручную, не программно), то все нормально. Почти. Печать только немного приплюснута сверху. Подскажите, как это исправить можно?
nata_fad; +1 Ответить
19. Виктор Мазитов (VicGuru) 03.10.11 18:13 Сейчас в теме
20. Amorfus (Amorfus) 04.10.11 10:29 Сейчас в теме
Использовал для массовой рассылки pdf-ин по почте. Все работает отлично.
21. Александр Лыткин (TrinitronOTV) 04.10.11 11:34 Сейчас в теме
ух ты, вот я наткнулся удачно, спасибо большое
22. Александр Куденцов (kudenzov) 71 04.10.11 21:21 Сейчас в теме
Вот дополнение к конфигурации оформленное на базе данного решения
http://infostart.ru/public/19326/
или
http://genrep.net/1c_faks.htm
23. hanio (hanio) 46 07.10.11 12:12 Сейчас в теме
А подскажите если задача стоит таким образом - есть файлы качественных сертификатов в PDF их надо печатать из документа реализация, это я все реализовал путем ЗапуститьПриложение() где происходит тихий запуск, печать и закрытие Adobe Reader , но тут момент что открываются они все и разом отследить момент закрытия Adobe я не знаю как. Итог - все сертификаты, а некоторые весят под 25 мегабайт толкаются в Adobe Reader, собственно съедают всю оперативку и понятное дело на принтер проталкиваются оооочень медленно. Подскажите решение какое мне тут подходит больше всего? Понятно что я сделал не через COM соединение, а будет ли выигрыш в нем? и будет ли выигрыш при использовании виртуального принтера?
24. Андрей (bober1) 11.10.11 00:30 Сейчас в теме
25. ediks (ediks) 324 18.10.11 11:03 Сейчас в теме
(23) Мне кажется, что в Вашем случае проще использовать ActiveX Acrobat reader. Кинуть на форму печати компоненту Акробата. Что типа

ИсходныйФайл = Новый Файл(ИмяФайла);
Если Не ИсходныйФайл.Существует() Тогда Возврат; КонецЕсли;
ЭлементыФормы.Акробат.LoadFile(ИмяФайла);
ЭлементыФормы.Акробат.Print();
26. Надежда Н (Izolda) 2 22.11.11 06:41 Сейчас в теме
Спасибо обработка очень помогла
27. Надежда Н (Izolda) 2 22.01.12 21:59 Сейчас в теме
Спасибо очень помогло используем PDFCreatorт.к. он бесплатный и поддерживает цифровую подпись
Оставьте свое сообщение