Преобразование PCL в PDF - PullRequest
6 голосов
/ 20 марта 2009

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

Спасибо!

Ответы [ 3 ]

2 голосов
/ 24 марта 2009

Преобразование PCL в PDF может быть невероятно сложным (если вам нужно, чтобы он был универсальным, а не только для простого PCL). Мы много раз этим занимались и в конце концов всегда возвращаемся к использованию других инструментов. Мы продолжаем расследование, поскольку мы являемся магазином разработки, который использует и понимает все элементы PCL с большой детализацией. Если вы не знакомы с PCL, это будет непростой задачей. Одна из основных проблем заключается в том, что со временем принтеры стали, по большей части, толерантным к неправильно сформированным PCL и, как таковые, создание чего-то, соответствующего правилам буквы закона, не всегда является достаточным. Если; однако у вас есть контроль над PCL, и вы, возможно, сможете выполнить его с некоторым успехом.

Я не хочу вас отключать, и я понимаю, что вы пришли сюда в поисках программного ответа, но я должен сказать, что это далеко не простая задача, и не существует «стандартизированных алгоритмов» для это (что я знаю).

Если это задумано как инструмент для работы с чем-то еще, что вы создаете, я настоятельно рекомендую взглянуть на этих ребят:

PageTech

Это, безусловно, самый полный набор инструментов (Windows) для обработки этого. Есть несколько других, но, основываясь на нашем широком использовании PCL и инструментов для конверсии в течение многих лет, это единственный, который работает все время.

РЕДАКТИРОВАТЬ: Совсем недавно мы работали с LincPDF (http://www.lincolnco.com/).) Это также превосходный продукт, имеющий одно большое преимущество, простота развертывания. Некоторые другие инструменты имеют сложный Установка программного обеспечения. Это решение очень легко для нас развернуть как функцию в приложении. Оно также быстрее, чем любые инструменты, которые мы тестировали до настоящего времени (по крайней мере, с помощью PCL, который мы генерируем из наших приложений, что довольно сложно, поскольку они включают в себя специализированные шрифты и макросы).

2 голосов
/ 12 февраля 2011

Разработчики Ghostscript недавно интегрировали свои дочерние продукты GhostXPS, GhostPCL и GhostSVG в свое дерево исходного кода Ghostscript . (Теперь он называется GhostPDL .) Таким образом, все эти дополнительные функции (загрузка, рендеринг и преобразование XPS, PCL и SVG) теперь доступны оттуда.

Это означает, что вы можете создать их язык переключения двоичный файл из их источников. Теоретически это может потреблять PCL, PDF и PostScript и преобразовывать их во множество других форматов. Хотя он работал для меня всякий раз, когда мне это было нужно, разработчики Ghostscript рекомендуют прекратить использование двоичного кода для переключения языков (поскольку он «почти не поддерживается» - см. Комментарий KenS к этому ответу) и вместо этого переключиться на использование явных двоичных файлов pcl6.exe (Вход PCL), gsvg.exe (вход SVG, также «почти не поддерживается») и gxps.exe (статус поддержки неясен для меня).

Таким образом, чтобы 'преобразовать код PCL в формат PDF' в качестве областей запроса, вы можете использовать утилиту командной строки pcl6 , родственный продукт для Ghostscript gs/gswin32c.exe.

Пример командной строки:

 pcl6.exe  \
  -o output.pdf  \
  -sDEVICE=pdfwrite  \
   [...more parameters as required (optional)...]  \
  -f input.pcl

Обновлено в соответствии с подсказками KenS в комментарии ....

1 голос
/ 20 марта 2009

Существует серия справочников от HP; Вы можете повторно реализовать синтаксический анализатор PCL и вывести соответствующий PDF.

Вы можете начать с «Технического справочного руководства по языку принтера PCL 5» (http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13210/bpl13210.pdf). Поиск HP для получения дополнительной информации (http://search.hp.com/query.html?qt=PCL+reference).

Или вы можете украсть код или идеи из GhostPCL (http://www.ghostscript.com/GhostPCL.html)

...