【问题标题】:Convert a .doc or .pdf to an image and display a thumbnail in Ruby?将 .doc 或 .pdf 转换为图像并在 Ruby 中显示缩略图?
【发布时间】:2010-09-09 01:53:03
【问题描述】:

将 .doc 或 .pdf 转换为图像并在 Ruby 中显示缩略图?
有谁知道如何在 Ruby(或 C、python...)中生成文档缩略图

【问题讨论】:

    标签: ruby pdf doc


    【解决方案1】:

    如果您不介意为 Imgix 付费,也可以使用 handles PDFs。使用它,您可以获得快速 CDN 的所有好处。

    【讨论】:

      【解决方案2】:

      回答上述@aisensiy 评论的示例代码:

      require 'rmagick'
      pdf_path = "/path/to/interesting/file.pdf"
      page_index_path = pdf_path + "[0]" # first page in PDF
      pdf_page = Magick::Image.read( page_index_path ).first # first item in Magick::ImageList
      pdf_page.write( "/tmp/indexed-page.png" ) # implicit conversion based on file extension
      

      根据回答另一个问题的路径线索:

      https://stackoverflow.com/a/6369524/765063

      【讨论】:

        【解决方案3】:

        将 PDF 转换为 PNG 的简单 RMagick 示例如下:

        require 'RMagick'
        pdf = Magick::ImageList.new("doc.pdf")
        thumb = pdf.scale(300, 300)
        thumb.write "doc.png"
        

        要转换 MS Word 文档,就没有那么容易了。您最好的选择可能是在生成缩略图之前先将其转换为 PDF。您生成 PDF 的选项很大程度上取决于您运行的操作系统。一种可能是使用 OpenOffice 和 Python Open Document Converter。您还可以尝试在线转换服务,包括http://Zamzar.com

        【讨论】:

        • 它有效。但这很耗时。我可以只阅读 pdf 的第一页并获取其图像版本吗?
        【解决方案4】:

        正如前两张海报所说,ImageMagick 可能是生成缩略图的最简单方法。

        您可以执行以下操作:

        ´convert -size 300x300 doc.pdf doc.png´
        

        (反引号告诉 Ruby 将其去掉)。

        如果您不想使用 exec 进行转换,您可以使用 RMagick gem 为您完成转换,但它可能需要更多代码。

        【讨论】:

          【解决方案5】:

          ImageMagick 中的 PDF 支持有点问题 - 但它是迄今为止 ruby​​ 的最佳操作系统方式。还有一个纯 Ruby PDF 支持的谷歌夏季代码项目。

          我已经阅读了有关在不使用 GUI 的情况下使用 OpenOffice 来转换 .doc 文件的资料 - 但它充其量会很复杂。

          【讨论】:

            【解决方案6】:

            不确定任何开源库中的 .doc 支持,但 ImageMagick(和 RMagick gem)可以使用 pdf 支持进行编译(我认为它默认启用)

            【讨论】:

              猜你喜欢
              • 2020-12-09
              • 1970-01-01
              • 2015-11-17
              • 2012-04-18
              • 2018-09-14
              • 1970-01-01
              • 2011-02-21
              • 2011-06-23
              相关资源
              最近更新 更多