|
Как объединить и вывести на печать PDF | ☑ | ||
---|---|---|---|---|
0
BenDiget
29.12.22
✎
20:50
|
Привет!
Получил Временные файлы PDF с сайта. Теперь требуется их объединить и вывести на печать, кто подскажет как?) ПараметрыПолучения = ПолучениеФайловИзИнтернетаКлиентСервер.ПараметрыПолученияФайла(); ПараметрыПолучения.Таймаут = 120; Результат = ПолучениеФайловИзИнтернета.СкачатьФайлВоВременноеХранилище(СсылкаНаСертификат, ПараметрыПолучения); Если Результат.Статус Тогда Данные = ПолучитьИзВременногоХранилища(Результат.Путь); УдалитьИзВременногоХранилища(Результат.Путь); ВремФайл = ПолучитьИмяВременногоФайла("pdf"); Данные.Записать(ВремФайл); КонецЕсли; |
|||
1
bmitkin
29.12.22
✎
21:02
|
Можно использовать ghostscript (https://ghostscript.readthedocs.io/en/latest/Use.html) и ЗапуститьПриложение(), чтобы получить из нескольких pdf файлов один.
Потом открыть этот файл в программе для просмотра PDF, которая установлена на компьютере пользователя. А он оттуда уже распечатает. |
|||
2
BenDiget
29.12.22
✎
21:08
|
(1) Спасибо! Попробую
|
|||
3
bmitkin
29.12.22
✎
21:14
|
Смотри параметры: -dBATCH -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -sOutputFile
|
|||
4
BenDiget
29.12.22
✎
21:25
|
(3) Сайт не открывается, и кроме того эту прогу надо ж будет ставить всем... Это не подходит.
Я не верю, что нет штатных способов) |
|||
5
Мимохожий Однако
29.12.22
✎
21:30
|
(4) Наверняка есть и другие сайты с подобным функционалом
|
|||
6
bmitkin
29.12.22
✎
21:33
|
https://www.ghostscript.com/
Формировать можно на сервере и отдавать пользователю готовый файл |
|||
7
NorthWind
29.12.22
✎
22:27
|
(4) ну, возможно, есть онлайн собиралки PDFов, которые предоставляют апи. Но для них нужен будет инет, они могут хотеть денег и могут многда валяться. Как по мне - блаже поставить софт на требуемые компы, чем переживать кучу звонков, когда сервис ни с того ни с сего отвалится.
|
|||
8
BenDiget
30.12.22
✎
15:43
|
(6) Поставил, а как пользооваться?
|
|||
9
NorthWind
30.12.22
✎
15:45
|
(8) -> (3)
|
|||
10
bmitkin
30.12.22
✎
17:14
|
(8) В общих чертах так:
Собираешь строку для запуска exeшника: Путь к нему + все необходимые параметры + пути в файлам которые надо объединить. Выполняешь с помощью ЗапуститьПриложение(<строка для запуска>). Если всё прошло нормально, получаешь итоговый PDF в файле, путь к которому передал в параметре -sOutputFile. Лучше, конечно, сначала потренироваться в командной строке. |
|||
11
bmitkin
30.12.22
✎
17:22
|
Функция СклеитьФайлыПДФ(МассивФайлов) Экспорт
СписокФайлов = ""; Для каждого ИмяФайла Из МассивФайлов Цикл СписокФайлов = СписокФайлов + " """ + ИмяФайла + """"; КонецЦикла; ИмяКонечногоФайла = ПолучитьИмяВременногоФайла("pdf"); СтрокаЗапуска = ПутьGhostscript + " -dBATCH -sPAPERSIZE=a4 -dPDFFitPage -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -sOutputFile=""" + ИмяКонечногоФайла + """ " + СписокФайлов; КодВозврата = 0; ИмяКомандногоФайла = ПолучитьИмяВременногоФайла("cmd"); ТекДок = Новый ТекстовыйДокумент; ТекДок.УстановитьТекст(СтрокаЗапуска); ТекДок.Записать(ИмяКомандногоФайла, КодировкаТекста.ANSI); ЗапуститьПриложение(ИмяКомандногоФайла, КаталогВременныхФайлов(), Истина, КодВозврата); ФайлПДФ = Новый Файл(ИмяКонечногоФайла); Если ФайлПДФ.Существует() Тогда Возврат ИмяКонечногоФайла; Иначе Сообщить("Не удалось создать файл PDF. Обратитесь к администратору."); Возврат Неопределено; КонецЕсли; КонецФункции |
|||
12
тук-тук
30.12.22
✎
22:33
|
(0) печать по отдельности чем не устраивает ?
|
|||
13
BenDiget
05.01.23
✎
20:13
|
(11) Спасибо! Большое буду пробовать!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |