Ghostscript pdf到txt的提取



我在windows上使用Ghostscript 9.18,并尝试使用-sDEVICE=txtwrite从pdf文件中提取文本。我的命令看起来像这样:

gswin32c -dBATCH -dNOPAUSE -sDEVICE=txtwrite -dFirstPage=1 -dLastPage=1 -sOutputFile=test.txt test.pdf -c quit

但是我总是得到"Can't find CID for "ArialBlack"我试图通过写入字体映射文件来提供cid:

/Arial << /FileType /TrueType /Path (c:windowsfontsarial.ttf) /SubfontID 0 /CSI [(Identity) 0] >> ;
/ArialBlack << /FileType /TrueType /Path (c:windowsfontsarial.ttf) /SubfontID 0 /CSI [(Identity) 0] >> ;

但它似乎没有看到条目,仍然要求cid。我知道几个版本之前,字体地图只是一个文件,但开发人员将其移到了库中。当我使用-sDEVICE=png16m时,它可以正常读取pdf,并打印具有良好字符的bmp。

也许有人知道答案?

Windows版本的Ghostscript默认在ROM文件系统中包含支持文件,即作为二进制可执行文件的一部分。

你可以从我们的Git仓库中获得支持文件,如果你需要将它们添加到外部磁盘上(即你想修改它们)。

可以使用-I (include path)开关包含fontmap和CIDFmap文件。

请注意CID与CIDFont不一样。CIDFOnt 使用一个CID,它不是一个'CID',术语在这里很重要。在我看来,Ghostscript可能会告诉你它无法定位CIDFont,而不是CID。

听起来你的PDF文件使用CIDFont,但没有嵌入它,这是一个非常糟糕的做法,可能会导致渲染问题。在textwrite的情况下,它很可能使它无法有效地提取文本。

最新更新