【问题标题】:Counting PDF pages in ROR with Docsplit使用 Docsplit 计算 ROR 中的 PDF 页面
【发布时间】:2019-07-09 21:46:36
【问题描述】:

我需要使用 Docsplit 获取存储在 Ruby on Rails 5.2.3 ActiveStorage 中的 PDF 文件的页数。

我正在使用 Ruby on Rails ActiveStorage 上传 PDF 文档。我了解这些文档存储为 blob。我希望我可以将 PDF 文件的引用传递给 Docsplit,例如:

pages = Docsplit.extract_length(@car_record.crecord)

但上述导致错误:

no implicit conversion of ActiveStorage::Attached::One into String

【问题讨论】:

    标签: ruby-on-rails pdf docsplit


    【解决方案1】:

    Docsplit.extract_length 需要一个字符串(可能是本地文件的路径),@car_record.crecord 返回一个 ActiveRecord 对象。

    你应该能够做类似的事情,

    file = @car_record.crecord.download_blob_to_tempfile
    Docsplit.extract_length(file.path)
    

    编辑:ActiveStorage::Downloading 在 6.1 中被删除。尝试以下方法:

    tempfile = Tempfile.new 
    tempfile.binmode
    
    begin
      @car_record.crecord.download { |chunk| tempfile.write(chunk) } 
      tempfile.flush
      tempfile.rewid
    ensure 
      tempfile.close!
    end
    
    Docsplit.extract_length(tempfile.path)
    

    【讨论】:

    • 要做到这一点,我想我需要在某处包含 ActiveStorage::Downloading,但我不确定在哪里?
    • 看起来它在 6.1 中被删除了。我已经更新了我的答案。
    猜你喜欢
    • 2022-12-06
    • 2013-05-14
    • 1970-01-01
    • 2014-07-17
    • 2015-08-19
    • 1970-01-01
    • 2011-11-19
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多