Преобразование PDF в PCL - PullRequest
       54

Преобразование PDF в PCL

4 голосов
/ 07 августа 2009

В моем Java-приложении у меня есть PDF-файлы, которые в конечном итоге мне нужно преобразовать в PCL и отправить на сервер RightFax. Мне также нужно будет встроить коды в файлы PCL, которые RightFax будет читать, чтобы знать, куда отправить факс.

Какой лучший подход к этому?

При поиске в Интернете кажется, что я могу использовать StreamPrintService Java для печати файлов PDF на PCL. Это правильно? Означает ли это также, что в моей ОС должен быть установлен принтер, который может интерпретировать PCL?

Как только файл PCL сгенерирован, мне нужно добавить встроенные коды в файл. Добавлять ли коды в конец файла (открыв его на Java и записав в него)?

Ответы [ 4 ]

5 голосов
/ 10 августа 2009

Самое простое решение, IMHO, это поместить PDF-файл в папку на сервере RightFax. Затем создайте небольшой текстовый файл со всеми инструкциями для отправления документа и т. Д. С помощью встроенных кодов или FCL (язык команд факса). Мы делаем это все время, и это прекрасно работает. Примечание. Язык команд факса доступен только при наличии модуля интеграции. Оба встроенных кода и FCL имеют команду для прикрепления файла (ов). Как только RightFax получит этот текстовый файл, он обработает команды и приложит PDF, факс и / или отправит документ по электронной почте. Вот два примера (один встроенный и один FCL).

Файл встроенного кода:

<TOFAXNUM:999999999>
<TONAME:Douglas Anderson>
<BILLINFO1:12345>
<NOCOVER>
<WHO:DOUG>
<ADDDOC2: C:\pdfFiles\12345.pcl>

Файл кода FCL:

{{begin}}
{{fax 999999999}}
{{contact Douglas Anderson}}
{{billinfo1 12346}}
{{nocover}}
{{attach C:\pdfFiles\12345.pcl delete}}
{{imagetype pdf}}
{{end}}

Отправка этого простого текстового файла в RightFax предложит ему обработать и вставить указанный вами документ. Существуют различные команды ADDDOC и переключатели для ATTACH, которые сообщают RightFax об удалении файла после его отправки и т. Д.

Встроенный кодовый файл может быть отправлен через очередь HPFAX, а FCL - через производственную папку «Входящие» (c: \ program files \ rightfax \ production \ inbox).

Это дает большой контроль и упрощает поиск и устранение неисправностей, так как у вас все еще есть просматриваемый PDF-файл (из-за того, что вы не приклеили текст в начале), и вы можете легко вывести встроенный код или файлы FCL в альтернативную папку для просмотра и даже изменения с помощью простых инструментов, таких как Блокнот.


Редактировать: OpenSource верен, что вы можете объединять файлы вместе, я давно не делал этого со встроенными кодами (см. Пример в конце), но делал что-то подобное с FCL (если у вас есть модуль Ingetration, вы можете сделай это).

FCL с PDF или Postscript, встроенным в данные (RightFax обрабатывает PS и PDF): {{начать}} {{факс 999999999}} {{свяжитесь с Дугласом Андерсоном}} {{billinfo1 12346}} {{без обложки}} {{}} Beginpostscript % PDF-1,3 ... ... ваш PDF ... {{}} Endpostscript {{Конец}}

Вариант PCL выглядит следующим образом:

{{begin}}
{{fax 999999999}}
{{contact Douglas Anderson}}
{{billinfo1 12346}}
{{nocover}}
{{beginpcl}}
...your pcl data...
{{endpcl}}
{{end}}

Ложная первая страница со встроенными кодами (согласно моим заметкам о том, что мы делали давным-давно):

<TOFAXNUM:999999999>
<TONAME:Douglas Anderson>
<BILLINFO1:12345>
<NOCOVER>
<WHO:DOUG>
<DELETEFIRSTPAGE>
*PCL formfeed character*
...your pcl data...

Все, что вы отправите, появится на «первой странице», но оно будет удалено. Другой вариант - отправить эти данные после подачи формы в конец документа и использовать опцию <DELETELASTPAGE>. Эти данные также могут отображаться в строке с самим файлом PCL, и, таким образом, вы сможете отправить его в начале работы без команды <DELETEFIRSTPAGE> и разделителя формы.

2 голосов
/ 07 августа 2009

У нас очень похожий процесс. То, что мы делаем, это то, что у нас есть pcl-файл и контрольный файл (текстовый файл с инструкциями правильного факса). Мы объединяем эти два файла с помощью java NIO и отправляем их в очередь печати RightFax. Мы в основном создаем новый файл и записываем два вышеупомянутых в новый файл, используя метод TransferFrom () в канале, который получен stream.getChannel (). Мы разместили инструкции по управлению сверху, а не снизу, как вы упомянули? может быть, вы ошиблись - я думаю, что Rightfax нуждается в этом наверху. Я должен признать, что я не пытался отправить его внизу. Может быть, это будет работать, просто не знаю.

0 голосов
/ 07 августа 2009

print-to-file кажется правильным подходом.

0 голосов
/ 07 августа 2009

JPS позволяет печатать в файл, поэтому вам просто нужно распечатать в файл на принтере PCL.

...