Имя: Пароль:
1C
1С v8
Печать внешнего pdf файла
0 Хранитель Совести
 
07.10.15
11:16
Приветствую вас, мудрое сообщество, и прошу совет.

Каким образом можно из 1С распечатать pdf файл, который расположен на диске?
Условия задачи:
- Вывод должен осуществляться на указанный принтер.
- Желательно с использованием Windows компонент (чтобы не устанавливать стороннее ПО).

Перебрал множество разнообразных вариантов, но в полной мере добиться желаемого результата не удалось.

Заранее спасибо!
1 13_Mult
 
07.10.15
11:21
2 Хранитель Совести
 
07.10.15
11:25
(1) Смотрел. Через AcroRd32 не подходит, т.к. его нужно устанавливать.
3 zak555
 
07.10.15
11:26
ставим pdf-принтер и не морочим мозг
4 Хранитель Совести
 
07.10.15
11:26
Вот эта конструкция подходит, но она позволяет отправить на принтер по-умолчанию, а надо на заданный.

Shell = Новый COMОбъект("Shell.Application"); Shell.ShellExecute(ИмяФайлаPDF, "", "", "print", 0);
5 Господин ПЖ
 
07.10.15
11:27
>Каким образом можно из 1С распечатать pdf файл, который расположен на диске?

а в Doom из 1с играть не надо? и чтобы Doom не устанавливать?
6 Хранитель Совести
 
07.10.15
11:29
(3) Какую проблему решает pdf-принтер?
Надо чтобы по нажатию на кнопку выполнялась печать, а не сохранение файла в формате pdf. PDF-файл и без этого уже есть.
7 Хранитель Совести
 
07.10.15
11:35
(5) В посте (4) я указал компоненту с помощью которой можно реализовать возможность печати pdf без установки AcroRd32. Я не спрашиваю о чем-то нереальном.
Если Вам нечего добавить по существу, прошу не отяжелять обсуждение бредовыми выпадами.
8 Сияющий в темноте
 
07.10.15
11:35
Чтобы напечатать pdf нужна программа просмотра pdf в windows 8 она есть,а в 7 и ранее ещё нужно ставить
так что без установки не взлетит
9 jurassic
 
07.10.15
11:36
(5) документов много получится: на каждый шаг, на каждый выстрел...
10 Анютик
 
07.10.15
11:42
(0) а всю задачу можно? зачем из 1с печатать пдф? практическое применение мне не понятно, фантазии не хватает:)
11 jurassic
 
07.10.15
11:43
(10) ну надо же откуда-то печатать пдф
12 Хранитель Совести
 
07.10.15
11:48
(10) Регистрируем через API посылку на сервере курьерской службы. После этого, так же через API-запрос, получаем изображение маркировки посылки в формате pdf. Полученный файл нужно вывести на печать, чтобы наклеить на посылку.

Проблема в том что на принтер по умолчанию pdf выводится. Надо вывести на указанный.
13 Анютик
 
07.10.15
11:55
а в (4) нет параметра у процедур? что-то не верю я, что нельзя указать. Это как-то совсем нелогично. Если руками можно выбрать принтер, значит, 100%, куда-то параметр принтера можно и программно запихать
14 Хранитель Совести
 
07.10.15
12:01
(13) Вот у меня имеется такой же вопрос :)
Не могу найти ничего подходящего...
15 jurassic
 
07.10.15
12:05
(13) Prints the file specified by lpFile. берёт и печатает
16 Хранитель Совести
 
07.10.15
13:07
Задачка упрощается до использования Foxit Reader.
Есть ли параметры позволяющие вывести pdf на печать с использованием авто-масштабирования?
17 Хранитель Совести
 
07.10.15
13:39
WshShell = Новый COMОбъект("WScript.Shell");

WshShell.Run("""C:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe"" /t """ + ИмяФайлаPDF+ """ """ + ИмяПринтера + """", 1);

В настройках печати программы Foxit Reader ставим галочку "choose paper source by pdf page size".

Готово.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший