我有一個Rails應用程序3使用這些寶石:Rails 3的妖獸PDF - 包括回形針S3 PDF文件
gem 'paperclip'
gem 'wicked_pdf'
gem 'combine_pdf'
我使用wicked_pdf
打開了costproject
的PDF文件。 costproject
有一個名爲viewproject.pdf.erb
的HTML頁面。
我試圖將邪惡的pdf與costproject附件合併成一個pdf。
這是我的控制器代碼:
def viewproject
@costproject = Costproject.find(params[:costproject_id])
respond_to do |format|
format.html
format.pdf do
pdf = CombinePDF.new
pdf2 = render_to_string pdf: "Costproject.pdf", template: "costprojects/viewproject", encoding: "UTF-8"
pdf << CombinePDF.new(pdf2)
@costproject.attachments.each do |attachment|
pdf << CombinePDF.new(attachment.attach.path)
end
send_data pdf.to_pdf, :disposition => 'inline', :type => "application/pdf"
end
end
end
線pdf << CombinePDF.new(pdf2)
是給我:
string contains null byte
如果我看pdf2,它開始像這樣 - 所以它看起來像一個pdf:
>> pdf2
=> "%PDF-1.4\n1 0 obj\n<<\n/Title (\xFE\xFF)\n/Producer (wkhtmltopdf)\n/CreationDate (D:20150405202628)\n>>\nendobj\n4 0 obj\n<<\n/Type /ExtGState\n/SA true\n/SM 0.02\n/ca 1.0\n/CA 1.0\n/AIS false\n/SMask /None>>\nendobj\n5 0 obj\n[/Pattern /DeviceRGB]\nendobj\n8 0 obj\n<<\n/Type /XObject\n/Subtype /Image\n/Width 71\n/Height 75\n/BitsPerComponent 8\n/ColorSpace /DeviceRGB\n/Length 9 0 R\n/Filter
我也試過pdf << CombinePDF.new(pdf2.to_pdf)
感謝您的幫助!
UPDATE1
作爲一個測試,看看是否pdf2工作,我這樣做是成功的:
def viewproject
@costproject = Costproject.find(params[:costproject_id])
respond_to do |format|
format.html
format.pdf do
pdf2 = render_to_string pdf: "Costproject.pdf", template: "costprojects/viewproject", encoding: "UTF-8"
send_data pdf2, :disposition => 'inline', :type => "application/pdf"
end
end
end
UPDATE2
神祕島是有關使用parse
正確的。謝謝!
我現在用的這條線在控制器代碼:
pdf << CombinePDF.new(attachment.attach.url)
我得到這個錯誤:
No such file or directory - http://s3.amazonaws.com/ ...
但是,如果我複製HTTP地址,粘貼到瀏覽器的PDF顯示向上。
你對使用'parse'是正確的。但是,現在我有一個問題,它在本地工作 - 因爲我將附件PDF保存在Rails中,但在Heroku上,我使用S3。我正在嘗試'pdf << CombinePDF.new(attachment.attach.path)' – Reddirt 2015-04-05 21:05:41
'pdf << CombinePDF.new(attachment.attach.url)''不起作用的不同代碼 – Reddirt 2015-04-05 21:13:25
您通常會如何訪問raw來自S3層的文件內容?它在本地安裝嗎?你使用特定的API嗎? – Myst 2015-04-05 22:46:11