我希望创建(作为概念验证)一个将 PCL 代码转换为 PDF 格式的 OCaml(最好)程序。我不知道从哪里开始。是否有这样做的标准化算法?是否有任何其他建议可用于完成此任务?
谢谢!
我希望创建(作为概念验证)一个将 PCL 代码转换为 PDF 格式的 OCaml(最好)程序。我不知道从哪里开始。是否有这样做的标准化算法?是否有任何其他建议可用于完成此任务?
谢谢!
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 在评论中的提示进行了
PCL 到 PDF 的转换可能非常复杂(假设您需要它是通用的,而不仅仅是简单的 PCL)。我们已经对此进行了多次投资,最终总是恢复使用其他工具。我们一直在调查,因为我们是一家开发商店,我们非常详细地使用和理解 PCL 的所有元素。如果您对 PCL 不是很熟悉,那将是一项艰巨的任务。主要问题之一是加班,打印机在很大程度上已经成为格式错误的 PCL 的容忍者,因此,创建符合法律条文的规则并不总是足够的。如果; 但是,您可以控制 PCL,您可能会取得一定程度的成功。
我并不是要让你关闭它,我意识到你来这里是为了寻找编程答案,但我不得不说,这远非简单的任务,并且没有“标准化算法”可以解决这个问题(即我知道)。
如果这被设计为与您正在构建的其他东西一起工作的工具,我强烈建议您看看这些人:
这是迄今为止处理此问题的最完整的工具集 (Windows)。还有一些其他的,但根据我们多年来对 PCL 和转换工具的广泛使用,这是唯一一直有效的。
编辑:最近我们一直在使用 LincPDF ( http://www.lincolnco.com/ )。这也是一款优秀的产品,有一个很大的好处,部署简单。其他一些工具具有复杂的软件安装。这个解决方案对我们来说很容易部署为应用程序中的一个功能。它也比我们迄今为止测试过的任何工具都更快(至少使用我们从应用程序生成的 PCL,因为它们包含专门的字体和宏,所以相当复杂)。
有一系列来自惠普的参考书;您可以重新实现 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 )窃取代码或想法