2013-01-10 18 views
1

从pdf文件中,我成功为pdf中的每个页面生成1个png图像。Ghostscript PDF to PNG:单词的字符间距在结果图像中变得混乱

问题是无论我使用什么设置,对于某些页面GhostScript会弄乱字体间距,使得在某些png中,一个单词看起来像是2或3个单词。

这是一个问题,因为我在evernote中使用这些文件,这会扰乱预期的搜索结果。因此,搜索“Providers”不会返回任何内容,因为在png文件中,它显示为“Pro vid e rs”(或“Users”显示为“Use rs”)。

Dropbox的链接显示在左侧的源PDF格式的原文截图,右边PNG产生 - >http://dl.dropbox.com/u/13267240/ScreenClip.png

我是新来的Ghostscript和很茫然,为什么发生这种情况。

这里是我使用(在Python)命令行:

CMD = “gswin%SC” %(SYS_PROCESSOR_ARCH)+“-q -dNOPAUSE -dBATCH -dPDFFitPage =真-sDEVICE = png16m -r %s“%(PNG_RES)+”-sOutputFile =“+'”%s \%s-pg - %% d。%s“%s”'%(outputdir,outputFileNamePrefix,suffix,pdfSourceFile)

或在运行时进行评估:

gswin64c -q -dNOPAUSE -dBATCH -dPDFFitPage = true -sDEVICE = png16m -r300X300 -sOutputFile =“C:\ EPTK-TMP \ 02-01-Introduction-pg-%d.png” “C:\ EPTK-TMP \ 02-01-Introduction.pdf”

+0

你如何搜索Evernote中的PNG文本?是否有某种光学字符识别发生?目标仅仅是在Evernote中使用PDF文本吗? –

+0

是的,永远在图像上做出伟大的OCR。实际上是为了产生相同的搜索结果到原始(pdf文档)。它与众不同的地方在于,与只搜索pdf文本的pdf搜索不同,我能够可靠地搜索出现在原始pdf文档中嵌入的任何图像上的字符(在png img中)。 – user1956808

回答

3

您的PDF样本中的字体是无衬线字体(没有装饰线条等的小点...),您PNG样本中的字体是衬线字体(带有小装饰...)。

因此,GhostScript由于某种原因在执行PDF到PNG转换时没有使用正确的字体。这可能有几个原因:

1)字体可能没有嵌入到PDF文件中,所以GhostScript必须找出其他的东西。

2)字体也可能在您的系统上不可用,所以GhostScript只是用一些默认值替换它们。这改变了字母的外观,也可能改变了字母的宽度,从而导致了间距问题。

所以问题在于你是否首先生成PDF。如果是这样,您可能需要做得更好,以便GhostScript可以使用嵌入字体。如果您不生成PDF,您可以尝试弄清楚这些PDF文件中使用了哪些字体,并确保它们可用于系统上的GhostScript。

我对GhostScript并不熟悉,但也许字体已经在您的系统上,这只是GhostScript找不到它们的问题。在这种情况下,查看是否有命令行参数将其指向系统上正确的字体文件夹。

+0

+1;作为一个侧面说明,因为原始海报似乎对词中间的空白感到惊讶:您看到的字形在PDF页面内容描述中被捆绑在一组中;但是,这些组不一定是在单词边界上划分的,但如果为了更好的视觉外观而纠正单词中两个字形之间的默认距离,也可以在单词的中间划分。 – mkl

+0

好点 - 关于这个http://en.wikipedia.org/wiki/Kerning的更多解释关于字距调整的一篇不错的文章(我从来没有听说过榫接字实际上) –

+0

谢谢David van Driessche。是的,我确实怀疑字体替换正在发生。当为Ghostscript(GhostView)运行一个前端GUI工具时,我确实在其输出日志中看到它通常在pdf上进行字体替换(不可否认,我再也不是任何伸展或字体专家了) )。从生成的图像中可以明显看出,字体与原始字体非常不同 - 但为什么它会选择这种不同的字体?原始源代码pdf(不是由我生成的)被另一个工具分成几章,然后由Ghostscript处理。 – user1956808