什么是适用于Ruby on Rails的好的PDF转HTML转换器?

14

我正在尝试通过编程将PDF转换为HTML。到目前为止,我一直在使用pdftohtml,但是我们的用户对结果不满意。

以下是我需要的内容:

  • 我使用的是Ruby on Rails,但任何在Unix上工作的工具都可以,因为我可以从命令行调用它。当然,一个好的gem或插件会更完美。

  • 最好是开源的

  • 它需要能够处理图片

  • 如果需要,最好有丢弃图像的选项

  • 它需要稳定

  • 它需要返回与原始pdf接近的布局的html(我已经尝试过pdftohtml,在许多情况下结果不太好)


你需要HTML输出而不是其他格式,有特定的原因吗?正如其中一个答案所说,PDF和HTML是显著不同的文档模型。如果我们了解底层需求,可能会建议更好的替代方案... - Stobor
当前的逻辑是获取PDF并将其显示为HTML。 我公司已经开发了一些解决方案,但最终呈现效果不太好,因此他们希望改进它。 - marcgg
9个回答

12

以下提供几种替代 pdftohtml/xpdf 的方法:

  • Adobe 提供免费在线的 PDF 转 HTML 或文本文件 转换服务。可能需要一到两分钟才能获得转换后的文档,但我认为这个选项会给您最好的结果。
  • 有一个名为 pdf-reader 的 ruby gem 可以让您访问 PDF 文件的内部。这需要您进行一些开发/扩展,但如果您知道用户正在处理标准化表单等类型的文件,则可以使用此方法解析 PDF 文件并生成漂亮的 HTML。如果您预先知道用户要转换哪种类型的文件,这可能比看起来要容易。
  • 如果您首先使用 ghostscript(可在此处找到gem)将 PDF 转换为另一种格式,则可能会有更多的选择。该 gem 可以从 PDF 文件生成图像(png、jpg 等),但是由于似乎有无数的“PostScript-to-[insert format here]”转换器,因此将其转换为 PostScript 文件可能是最佳选择。

1
关于那些无法很好地转换为HTML的PDF文档,我建议尝试使用Adobe的在线转换服务进行测试。如果转换结果仍然不理想,我不会花太多时间研究其他替代方案,因为我想象Adobe自家的转换器应该是最好的选择。 - bta

7

1
在我的有限测试中,它产生了惊人的好结果。 - jshkol
这是一个很棒的工具,但如何与Rails集成? - BMW
@BMW 一个很好的起点是项目维基: https://github.com/coolwanglu/pdf2htmlEX/wiki/Quick-Start。我认为你可以轻松地使用“system”调用将其插入Rails应用程序中。 - amit_saxena

3
如果其他方法都失败了,你可以将每个页面转换为图像(使用ImageMagick或类似工具),并显示这些图像,就像http://books.google.comhttp://safari.oreilly.com那样。这会消耗大量带宽,但你可以保持与原始页面的完整性。

这是一个有趣的解决方案,我会研究一下。 - marcgg
当我需要将PDF文件转换为其他格式时,这就是我所使用的非常好的方法。 - wesgarrison
如果您需要从PDF文件中实际解析文本,则此解决方案并不是很好。 - lacostenycoder

2
我曾经做过一个研究项目,需要将PDF作为输入。你所要求的只是一个非常困难的任务,没有软件可以完美地完成。HTML有一些结构,比如<p>,但PDF纯粹是表现形式。HTML文档会说:“这是一个段落。这是一张图片。”并且呈现效果是从中解释出来的。而PDF文档基本上会说:“这个字符应该在位置X,Y渲染。下一个字符将在位置...”等等。因此,即使构建段落也可能很困难。
我当时使用Java开发,所以我认为我使用的特定程序对您没有太大帮助。另外,我还记得一些PDF生成器会将图像拼接成较小的图像,并将它们并排显示——那真是一件非常麻烦的事情。
您是否有可能使用不同的格式,或降低期望值?您可以按照Wayne的建议进行图像处理,但那就不是真正的HTML了(而且不可访问——您是否关心这个问题?)。这可能只是您必须接受的东西。

0

0

使用 pdftohtml 一段时间后,对 HTML 版本的显示结果不满意,正在考虑使用 Google 文档 API 或 Scribd API(目前我最喜欢的)

http://www.scribd.com/developers/api

最终,我可能会使用pdftohtml来提取pdf文件的文本内容,并使用Scribd API在用户页面上显示原始文件。

0

尝试使用poppler或xpdf。但需要一些魔法和绑定。


Poppler可以将PDF渲染为其他格式,其中一个目标可能适合您。 - vitaly.v.ch

0
你可以尝试 http://www.pdf-to-html-word.com/pdf-to-html,它的功能非常好。我在检查其功能后支付了费用。你可以免费测试它。或者使用Acrobat Pro并使用CSS另存为HTML。这也可以。但是如果有一堆文件的话,这很麻烦。

0

我刚刚发布了一个Ruby宝石,用于通过poyconverter或jodconverter无头转换Open Office文档。它还集成了其他几个库(pdftools和netpbm),以从PDF文件中提取文本和图像。

您可以在这里找到它 https://github.com/itkin/proselytism.git

欢迎添加您自己的转换器并向我报告一些问题


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