【发布时间】:2016-05-30 00:01:55
【问题描述】:
我一直在绞尽脑汁和上网寻找答案,但我能想到的最好理由是“字体子集”:
我们有一台用于制作身份证的卡片打印机。这些卡片有一个磁条,因此用户可以刷卡和复印等。我们目前的软件非常缺乏功能,所以我在 node.js 中编写自己的。因为磁条本质上是一种字体(也就是说,我可以进入 Microsoft Word,选择“Track 2”作为字体,然后打印一张带有编码磁条的卡片),我认为这很容易做到。
我使用 EJS 在 HTML 中创建卡片(使用 CSS 网络字体加载 TTF)和 PhantomJS 将其保存为 PDF。生成的卡片看起来很棒,当我查看卡片的属性时(通过 Adobe Acrobat Pro 中的文件 > 属性),我可以看到字体已成功嵌入:
当我编辑卡片上的文本对象时,我可以看到字体在那里:
但是当我打印时,磁条没有被编码。该字体安装在我的 PC 上(因为它是进行打印的同一台 PC),所以我不知道为什么。正如我在开头段落中所说,我怀疑它与嵌入的字体子集有关,但据我所知,这应该不是问题。
然后我进入 Microsoft Word,创建了一个文档,然后将其保存为 PDF。我现在在尝试编辑文本对象时收到此消息:
后跟这个字体:
但是打印此文档不会写入磁条(但直接从 Word 打印会)
所以我有两个问题:
1) 为什么不打印?
2) 如果无论如何都无法打印,如何生成可以正确打印的 PDF(或其他文档)? 必须输出到可打印的文件,因为在年初我有大约 1000 张卡片要打印(因为上面有当前年份)
编辑:我刚刚进入一个根本没有字体的文档,编辑了文本对象,然后在可用字体列表中查找了 Track 2 字体。我只能看到 Track 1 和 Track NTT(不同系统的不同轨道——我们需要 Track 2)。字体肯定已安装,因为尝试再次安装它会告诉我它已经安装,而且我可以从 Word 打印就好了。
编辑 2:这是a gist containing my code、final card 和 Word document with that font, converted straight to PDF,带有最终卡片和测试 Word -> PDF 文档。
最后一张卡片是上下颠倒的,因为打印机打印是上下颠倒的。我还尝试旋转整个 PDF 等,看看它是否是一个方向的东西,并将字体复制到我的项目文件夹中并使用 src() 加载它,但它似乎不起作用
【问题讨论】:
-
我可能看多了,但您使用的是哪个版本的 Acrobat Pro?
-
@MaxWyss Acrobat X(具体为 v10.1.13)
-
在 Acrobat DC 之前,我个人在 Acrobat 中没有很好的字体和编辑 PDF 经验;因此,您可以尝试 Acrobat DC 并查看是否可以访问该字体。
-
您是否有示例 PDF 文件,以便我们查看字体是如何嵌入到您创建的 PDF 文件中的?
-
对于大多数证卡打印机,磁条字体是占位符。当证卡打印机驱动程序看到使用此字体的文本时,它会将文本发送到磁条编码器,而不是渲染文本。当 Acrobat 将数据从 PDF 发送到证卡打印机驱动程序时,它可能没有正确地将 TrueType 字体映射到证卡打印机设备字体。如果您能告诉我们更多关于证卡打印机型号的信息,我们可以调查磁条设备字体的名称并将其与 TrueType 字体名称进行比较。