首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将使用Active Storage上载的pdf转换为rails中的图像

如何将使用Active Storage上载的pdf转换为rails中的图像
EN

Stack Overflow用户
提问于 2020-08-12 05:14:51
回答 1查看 1.1K关注 0票数 3

我已经使用主动存储上传pdf文件,我需要将它转换成图像,并将其保存为活动存储的附件。当我使用这段代码时,我使用了这里建议的代码,How to convert PDF files to images using RMagick and Ruby

代码语言:javascript
复制
project_file.rb
class ProjectFile < ApplicationRecord
  has_many_attached: files
end

some_controller.rb
def show
  pdf = url_for(ProjectFile.last.files.first)
  PdfToImage.new(pdf).perform
end

pdf_to_image.rb
class PdfToImage
  require 'rmagick'

  attr_reader :pdf

  def initialize(pdf)
    @pdf = pdf
  end

  def perform
    Magick::ImageList.new(pdf)
  end
end

当我试图执行时,它给了我这个错误。

no data returned `http://localhost:3001/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--d3dc048a53b43337dc372b3845901a7912391f9e/MA42.pdf' @ error/url.c/ReadURLImage/247

可能我的代码有问题,所以有人建议我做错了什么,或者我的问题有什么更好的解决方案。

ruby '2.6.5‘

钢轨'6.0.1‘

宝石'rmagick‘

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-12 18:24:29

根据rmagick文档,imagelist不支持转换图像的urls。您需要使用open-uri、gem和URI.open方法来打开PDF并将其传递给映像列表。

代码语言:javascript
复制
pdf_to_image.rb
class PdfToImage
require 'rmagick'
require 'open-uri'

attr_reader :pdf

def initialize(pdf)
  @pdf = pdf
end

def perform
  Magick::ImageList.new(URI.open(@pdf).path)
end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63370212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档