我目前正在使用combine pdf gem来开发Rails 5.2应用程序。我正在尝试合并两个PDF文件,但是以某种方式无法从public
目录加载文件。
在控制器中,我有以下方法:
def pdf_download
pdf = CombinePDF.new
pdf << CombinePDF.load("#{Rails.root}/public/pdfs/1.pdf")
pdf << CombinePDF.load("#{Rails.root}/public/pdfs/1.pdf")
pdf.save "combined.pdf"
send_data combined_file.to_pdf, filename: "combined.pdf", type: "application/pdf"
end
我已经在StackOverflow上尝试了许多帖子,但没有成功,例如使用Rails.root。但是我仍然遇到相同的错误:
Errno::ENOENT (No such file or directory @ rb_sysopen - app/public/pdfs/1.pdf):
要从public
加载文件,我还需要做其他配置吗?如果这些PDF不应该放在public
中,我应该将它们存储在哪里?
答案 0 :(得分:1)
这对我来说是固定的:
def pdf_download
pdf = CombinePDF.new
pdf << CombinePDF.load(Rails.root.join("public", "pdfs/1.pdf").to_s)
pdf << CombinePDF.load(Rails.root.join("public", "pdfs/2.pdf").to_s)
# pdf.save "combined.pdf"
send_data pdf.to_pdf, filename: "combined.pdf", type: "application/pdf"
end
答案 1 :(得分:0)
这对我来说是固定的:
pdf << CombinePDF.load("./public/pdfs/1.pdf")