在我的task
表中,我可以访问存储在s3存储桶上的pdf文件@task&.assignable&.pdf_file
。
我可以使用@task&.assignable&.pdf_file.file.url
我想在同一个pdf文件中添加新页面,因此我使用的是combine_pdf gem。我使用file1
生成了wicked_pdf
的路径但是在线
pdf << CombinePDF.load(@task&.assignable&.pdf_file.file.url)
显示错误:
没有这样的文件或目录@ rb_sysopen - https://patientiq1.s3-us-east-2.amazonaws.com/uploads/&lt; hashed_path&gt; .pdf? &LT; access_key&gt;
file1_path = Rails.root.join('tmp', filename)
pdf = WickedPdf.new.pdf_from_string(
render_to_string('patient_engagements/signed_page', layout: 'pdf', locals: { :@signed_pdf => @signed_pdf })
)
File.open(file1_path, 'wb') do |file|
file << pdf
end
pdf = CombinePDF.new
pdf << CombinePDF.load(file1_path) # one way to combine, very fast.
pdf << CombinePDF.load(@task&.assignable&.pdf_file.file.url)
pdf.save "combined.pdf"
答案 0 :(得分:3)
您无法对远程文件使用加载,请改用<{3}}
require 'combine_pdf'
require 'net/http'
url = "https://example.com/my.pdf"
pdf = CombinePDF.parse Net::HTTP.get_response(URI.parse(url)).body
从CombinePDF文档中的parse中提取。