Ruby on Rails有什么好的PDF到HTML转换器?

时间:2009-12-14 11:40:11

标签: html ruby-on-rails ruby pdf pdf-to-html

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

这就是我需要的:

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

  • 我更喜欢它是开源的

  • 它需要能够处理图像

  • 如果有需要可以选择丢弃图像

  • ,那就太好了
  • 需要稳定

  • 它需要返回格式接近原始pdf的html(我已经尝试了pdftohtml,结果在很多情况下效果都不好)

9 个答案:

答案 0 :(得分:10)

以下是pdftohtml / xpdf的另外几种选择:

  • Adob​​e提供免费的在线PDF格式的HTML或文字conversion service。可能需要一两分钟才能收回文件,但我怀疑这个选项会给你带来最好的结果。
  • 有一个pdf-reader ruby​​ gem可以让您访问PDF文件的内部。这将涉及您的一些开发/扩展,但您可以使用它来解析PDF文件并生成漂亮的HTML。如果您知道用户提前转换的文件类型(例如,如果他们使用的是标准化表单),这可能比听起来更容易。
  • 如果您使用ghostscript(此处为gem)将PDF转换为其他格式,则可能有更多选项。 gem可以从PDF文件生成图像(png,jpg等),但是你可能最好将它转换成PostScript文件,因为似乎有很多“PostScript-to- [insert format here]”转换器。 / LI>

答案 1 :(得分:5)

对于PDF到HTML的转换,pdf2htmlEX似乎是一个非常好的工具(查看所有示例/示例):

https://github.com/coolwanglu/pdf2htmlEX

答案 2 :(得分:3)

如果所有其他方法都失败了,您可以将每个页面转换为图像(使用图像magick或类似图像)并显示图像,la http://books.google.comhttp://safari.oreilly.com。这将是一个带宽生长,但你会得到原始的保真度。

答案 3 :(得分:2)

我花了一些时间研究一个以PDF为输入的研究项目。您要求的只是一项非常困难的任务,没有任何软件可以完美地完成任务。虽然HTML有一些结构,如<p>,但PDF纯属表现形式。一个HTML文档会说,“这是一个段落。这是一个图像。”并从中解释了演示文稿。 PDF文档基本上会说:“这个字符应该在X,Y位置呈现。下一个字符将在位置呈现......”等等。所以即使构建段落也很难。

我在Java工作,所以我不认为我使用的具体程序会对你有用。另外,我记得有些PDF生成器将图像拼接成较小的图像并将它们彼此相邻显示 - 这是一个巨大的痛苦。

您是否有可能使用其他格式或降低预期?你可以做Wayne建议的图像,但是它不是真的 HTML(并且它不可访问 - 这对你来说是一个问题吗?)。这可能只是你生活的东西。

答案 4 :(得分:0)

尝试使用poppler或xpdf。但它需要一些魔法和约束力。

答案 5 :(得分:0)

你可以尝试http://www.pdf-to-html-word.com/pdf-to-html 哪个效果很好。我检查了它的功能后付了钱。你可以搭便车去测试它。 或者使用Acrobat Pro并使用CSS另存为HTML。这也有效。但是对于一堆文件而言,这是一种痛苦。

答案 6 :(得分:0)

可以试试这个。我已经开始围绕pdftohtml实用程序包装Ruby了。宝石可在此处获取:http://gemcutter.org/gems/pdftohtmlr

答案 7 :(得分:0)

使用pdftohtml一段时间后对html版本的显示效果不满意,我正在考虑使用谷歌应用文档API或scribd API(我现在最喜欢的)

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

最后,我可能会使用pdftohtml来简单地提取pdf文件的文本内容 和scribd api在用户页面上显示原始文件

答案 8 :(得分:0)

我刚刚发布了一个红宝石宝石来转换开放办公室无头文件(通过poyconverter或jodconverter)。它还集成了其他几个库(pdftools和netpbm)来从pdf文件中提取文本dans图像。

您可以在https://github.com/itkin/proselytism.git

找到它

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