【发布时间】:2016-01-22 00:49:12
【问题描述】:
我在 windows 上使用 Ghostscript 9.18,并尝试使用 -sDEVICE=txtwrite 从 pdf 文件中提取文本我的命令如下所示:
gswin32c -dBATCH -dNOPAUSE -sDEVICE=txtwrite -dFirstPage=1 -dLastPage=1 -sOutputFile=test.txt test.pdf -c quit
但我总是得到“找不到“ArialBlack”的 CID 我试图通过写入字体映射文件来提供 cid:
/Arial << /FileType /TrueType /Path (c:\windows\fonts\arial.ttf) /SubfontID 0 /CSI [(Identity) 0] >> ;
/ArialBlack << /FileType /TrueType /Path (c:\windows\fonts\arial.ttf) /SubfontID 0 /CSI [(Identity) 0] >> ;
但它似乎没有看到条目,仍然要求 cids。我知道几个版本之前,字体映射只是一个文件,但开发人员将它移到了库中。 当我使用 -sDEVICE=png16m 时,它可以正常读取 pdf,并打印具有良好字符的 bmp。
也许有人知道答案?
【问题讨论】:
-
这是有道理的,因为带有 TTF 数据的 OpenType,名为
.ttf,没有有 CID(只有过时的 Type1 和带有 CFF 数据的现代 OpenType 字体,可以使用 CID)所以这并不奇怪。您在问题中给出的错误消息的快速谷歌给了我experts-exchange.com/OS/Linux/Distributions/Q_26364031.html,它说您需要安装corefonts.sourceforge.net - 您是否先搜索了网络? make it unnecessary 的点击次数足以在这里提出这个问题。 -
这并不完全正确。类型 1 字体和 CFF(类型 2 字体)都不使用 CID,它们使用字符代码。 CID 仅与 CIDFonts 相关。 CIDFonts 可能有 type 1 或 CFF bsae 字体,但它们也可能有 type 42 基本字体,本质上是 TrueType 轮廓。所以带有 TTF 轮廓的 CIDFont 仍然可以使用 CID。
标签: pdf fonts ghostscript text-extraction