将PDF转换为矢量图像。

3
我正在尝试在我的网页中使用PDF内容(数学)。我基本上想将PDF转换为一些矢量图像。将PDF转换为SWF可以很好地完成工作,但由于并非每个平台都支持Flash,因此我正在寻找另一种解决方案。
我了解到SVG,但是由于这些PDF包含大量数学公式,我发现的转换器的结果非常丑陋和不正确。
我也考虑过重新输入LaTeX,并使用MathJax显示它,以某种方式这是最好的解决方案,但也非常耗时。
我想要的唯一一件事就是将其转换为漂亮的矢量图像,我不想改变内容或其他任何东西。除了转换为SWF或重新输入之外,是否还有其他解决方案?
编辑: 这是SVG输出 output 这是原始的PDF文件 pdf

没有了解 PDF 中方程式的存储方式,回答这个问题不是不可能吗?PDF 中的方程式是使用字体和字符表示的吗?还是实际上作为图像表示在 PDF 中呢? - Kevin Brown
3个回答

2

Inkscape是开源的,可以做同样的事情。它一次只能处理一页,因此可能需要一些脚本来实现流畅的工作流程。 - Bert

1
你的PDF存在一些困难,这可能不是很明显。问题的核心在于文档中的某些图形实际上是使用自定义字形绘制的。如果你从Acrobat中复制和粘贴文本,就可以看到这一点。里面有各种不寻常的字符,似乎没有任何有用的目的。这就是SVG底部带有EEs和FFs方块的原因。
然而,这些字符实际上是用于底部矩阵周围的大括号等自定义字形。所以它们既非常重要,也非常特定于此文档。
我尝试使用ABCpdf .NET将你的PDF转换为SVG。除了底部的自定义字形外,它工作得很好。输出约为90KB。它看起来与你的inkscape SVG输出非常相似,但只是稍微小一些(inkscape的大小为160KB)。
摆脱这些非Unicode字形的唯一方法是将文本矢量化。我使用ABCpdf进行了这个操作,并且在SVG中输出看起来很好。但是...矢量化文本很大,而SVG并不是特别高效的媒介。输出约为1MB!压缩后可以减少到一半,但仍远不及原始PDF高效。
我看到的问题无论你使用什么格式都是普遍存在的。这些自定义字符在输出到SVG、SWF、HTML canvas、VML或任何矢量格式时都会有问题。
那么我会建议什么呢?好吧,显而易见,在Web上广泛使用的矢量格式是... PDF!
我知道这不完全符合你的要求,但考虑到以上限制,我认为这是现实的解决方案。 :-)

该文件仅包含嵌入式Type1字体,这些字体没有相应的CMaps / ToUnicode流。我确信所有这些“自定义字形”在Unicode中都有表示(http://www.unicode.org/notes/tn28/UTN28-PlainTextMath-v3.pdf),因此如果iText库(该文件的生产者)创建了这样的条目,则可以使用复制粘贴来复制它们。这些不是“自定义”字符,如果以另一种方式嵌入字体,则将其导出为SVG可能会更简单。我同意您的观点,PDF是Web上最常用的矢量格式。 - Hugo Moreno
但PDF的问题在于,我不能真正将其用作矢量图像。我想我可以将PDF裁剪为所需的正确格式。但我不认为我可以像嵌入图像那样嵌入它。 - Kasper
你可以尝试另一个PDF生成器,然后再次导出为SVG,这可能会有所帮助。请问为什么您需要将此文件转换为矢量图,并且其原始PDF格式对您无效? - Hugo Moreno
这并不是一个真正的答案!这个发帖者只是在抱怨,并没有证明他实际上知道PDF和SVG是什么。只需要核实事实即可。 - scrat.squirrel

1
如果Flash在大多数情况下能够正常工作,那么在没有Flash支持的平台上使用Flash +光栅图像如何?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接