imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 29.05.2006, 11:25     # 1
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Question Бесплатный PDF принтер?

Добрый день.

Задача все та же - программно конвертировать HTML документы в PDF. Это можно делать, распечатывая на виртуальном PDF принтере HTML документы, загруженый е TWebBrowser:
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);

Нужно, чтобы эта печать происходила в фоновом режиме - без участия пользователя. Проблема в том, что PDF принтера при обращении к ним показывают диалоги: "Сохранить как", "Очередь печати" или просто рекламу .

Нужен бесплатный PDF принтер, который может безо всяких диалогов просто сохранить PDF документ в файл в известном месте (дальше разберемся). Есть такие?

Спасибо.
PLP вне форума  
Старый 29.05.2006, 11:52     # 2
GOre01
Junior Member
 
Аватар для GOre01
 
Регистрация: 10.08.2004
Адрес: Завис в конторе
Пол: Male
Сообщения: 180

GOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царстве
Почему бы не попробовать преобразование HTML (XHTML) в pdf используя XSLT шаблон преобразования? На мой взгляд, перевести чистый HTML в XHTML или XML довольно просто, а далее, используя шаблон, получить pdf. XSLT парсеры есть в достатке, тотже MSXML поддерживает XSLT преобразование. Самих шаблонов для перевода XML в PDF в сети полно.

Я думаю, стоит попробовать.
__________________
Не нервируйте меня. Мне скоро негде будет прятать трупы!
GOre01 вне форума  
Старый 29.05.2006, 15:59     # 3
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
CutePdf

что-то вроде
-sOutputFile="%1" -c save pop -f
crawler вне форума  
Старый 02.06.2006, 18:14     # 4
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Цитата:
Сообщение от crawler
CutePdf

что-то вроде
-sOutputFile="%1" -c save pop -f
По всякому пробовал использовать эти параметры - нет реакции. Как правильно использовать?

Я посылаю документ на печать ShellExecute... всегда открывается диалог выбора принтера. Что сдетать, чтобы шла печать на принтер по умолчанию без запроса?
PLP вне форума  
Старый 05.06.2006, 13:08     # 5
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
Покажи свою команду ShellExecute
crawler вне форума  
Старый 05.06.2006, 14:27     # 6
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
ShellExecute(0, 'print', PChar(HTMLFilename), '-sOutputFile="%1" -c save pop -f', '', SW_HIDE);

Например так. При этом сначала выбирается "CutePDF Writer" принтер по умолчанию. На параметры ShellExecute не обращает внимания.

А вообще у меня такое ощущение, что эти параметры (-sOutputFile="%1" -c save pop -f) предназначаются GhostScript'y. Ведь когда Shell запускет печать HTML документа - деле выполняется команда ""C:\Program Files\Microsoft Office\Office10\msohtmed.exe" /p %1" и чтобы не возникал диалог выбора принтера (и шла печать на умолчательный принтер) нужно подавать какой-то параметр для msohtmed.exe - какой, я так и не нашел.

Вот почему я думаю на Ghost: здесь http://www.cutepdf.com/Support/faq.asp#Writer
в низу странички написано:
How to use other Ghostscript or PS2PDF converter with CutePDF Writer?
CutePDF Writer detects the installation of Ghostscript automatically. If you want to use other converter application, simply create a Setup.ini file in "%Program Files%\Acro Software\CutePDF Writer" folder and put following parameters in it.

[Parameters]
Command=put exe filename here (e.g. C:\gs\bin\gswin32c.exe)
Arguments=put arguments here (e.g. -sOutputFile="%1" -c save pop -f -)

Я пробовал писать туда вместо ="%1" - путь и имя файла PDF - фиг там, все равно возникает диалог для выбора имени и пути для сохранения PDF файла.
PLP вне форума  
Старый 05.06.2006, 14:57     # 7
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
Ту версию что позволяет обходить диалоги они продают. http://www.cutepdf.com/Solutions/pdfwriter2.asp

Посмотри http://www.tufat.com/s_html2ps_html2pdf.htm, вроде ГНУ.
crawler вне форума  
Старый 05.06.2006, 15:11     # 8
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Продают custom причем к нему еще нужен расширенный пакет... не самый удачный вариант.

Я теперь рассматриваю вариант с Active PDF forms - т.е. ищу программный путь создания PDF с полями для ввода текста. При этом HTML не нужен (он был нужен как промежуточный формат). Т.е. цель - создать PDF полями для ввода, пользователь вносит данные в поля формы PDF, и потом он превращается в "простой" PDF - без полей. Как это сделать пока не знаю... смотрю разные SDK... Может есть какие соображения?

Цитата:
Сообщение от crawler
Посмотри http://www.tufat.com/s_html2ps_html2pdf.htm, вроде ГНУ.
Находил варианты скриптов на PHP b PERL, но я не знаю как их использовать - у меня клиентская часть на Delphi.
PLP вне форума  
Старый 06.06.2006, 14:26     # 9
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
Попробуй напоследок http://www.wizards.de/~frank/pstill.html

Если честно то я тебя не понял. Если ты запускаешь свою прогу на дельфях - какие заморочки с формами ?
crawler вне форума  
Старый 06.06.2006, 21:16     # 10
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Цитата:
crawler:
Если ты запускаешь свою прогу на дельфях - какие заморочки с формами ?
Счас скажу. Задача такая: есть сервер и клиенты, сервер формирует отчеты и отсылает клиентам (клиенты хотят иметь PDF отчеты). Проблема в том, что при формировании сервер не знает всех необходимых для отчета данных. Но! эти недостающие данные знает сам клиент (т.е. он может доввести недостающие данные на месте). Поэтому рассматривались 2 варианта выхода:

1. Формировать HTML отчеты (т.к. это просто текст - с ним легко работать), затем отсылать клиентам и у них при помощи дельфийского интерфейса добавлять недостающие данные в HTML, а затем печатать этот HTML PDF принтером. В итоге PDF.

2. На сервере формировать активные PDF c полями для ввода текста. На клиенте пользователь открывает их в бесплатном AReader'e, заполняет получает готовые PDF.

Получается, что второй путь проще (хотя и там есть свои сложности, но наверное выбор будет в его пользу).
PLP вне форума  
Старый 07.06.2006, 17:20     # 11
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
Я бы сделал так : сервер делает ХТМЛ форму, клиент заполняет ее и посылает на сервер. Сервер формирует PDF и посылает клиенту. Скрипты для создания PDF на сервере ты уже видел.
Другой вариант - твоя прога получает форму, заполняет ее и сама создает PDF. Есть готовые компоненты для Дельфи. Например http://delphi.icm.edu.pl/authors/a0001086.htm , http://www.delphi32.com/vcl/3346/.

А вот еще пару виртуальных PDF драйверов:
http://www.pdfdesk.com/winpdf.html ( http://www.pdfdesk.com/source/devinter.htm )- вроде и бесплатный и управляемый
http://www.bullzip.com/products/pdf/...o.php#Settings Точно бесплатный и управляемый
crawler вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:18.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.