GhostPCL 创建无效的 pdf

GhostPCL creates invalid pdf

我刚刚下载了 GhostPCL

我是这样调用的 GhostPCL:

> gpcl6win64.exe -sDEVICE=pdfwrite -o C:\temp\output.pdf C:\temp\input.spl

Input/Output: Get it from my DropBox

生成的pdf好像坏了

我无法按预期select发送文本

当我将 selected 内容复制到记事本时,它看起来像这样:

PDF-Content

我是不是遗漏了什么或者 GhostPCL 中有错误?

那是因为 PCL 非常 关于给定字符代码是什么的信息,就另一种编码而言。比如说,Unicode。

PCL 页面完全可以下载自定义子集字体,然后使用仅适用于 'correctly' 该字体的字符代码。

例如,假设我们以这样的方式嵌入字体,即为我们使用的第一个字符设置字符代码 1,为第二个字符设置字符代码 2,依此类推。然后我们发送文本 "Hello World"

然后将在 PCL 中表示为

0x01 0x02 0x03 0x03 0x04 0x05 0x06 0x04 0x07 0x03 0x08

显然,这不是任何一种有意义的编码,而且 PCL 没有任何携带 Unicode 映射的方法。

现在,您的 PCL 文件包含几种 TrueType 字体,并且 'possible' 字体的 CMAP 子表中有足够的信息可以从 'text',但 GhostPCL 没有那种复杂性。

所以不,你没有遗漏任何东西,不,没有错误。请注意,pdfwrite 的目标是生成的 PDF 文件应该与打印输出在视觉上相同,仅此而已。尽管人们一厢情愿,但 PDF 从未被设计为可编辑格式,绝大多数 PDF 文件无法编辑,也无法可靠地从中提取 'text'。有些会起作用,但很多不会。