有些宝石可以生成pdf。但是我不想使用宝石。我尝试了以下方法:
def show
respond_to do |format|
format.html
format.pdf
end
end
对于链接:
link_to show_path(@show, format: :pdf)
我可以得到pdf输出,但它表示pdf文档可能无法正确显示。
答案 0 :(得分:5)
Rails不会立即生成pdf。 PDF是具有二进制部分的7位文本格式,因此从技术上讲,您可以使用ERB模板show.pdf.erb
手动生成它:
%PDF-1.1
%¥±ë
1 0 obj << /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj << /Type /Pages /Kids [3 0 R] /Count 1 /MediaBox [0 0 300 300] >>
endobj
3 0 obj << /Type /Page /Parent 2 0 R
/Resources
<< /Font
<< /F1
<< /Type /Font /Subtype /Type1 /BaseFont /Times-Roman >>
>>
>>
/Contents 4 0 R
>>
endobj
4 0 obj << /Length 90 >>
stream
BT
/F1 18 Tf
90 150 Td
(Hello World!) Tj
ET
endstream
endobj
trailer << /Root 1 0 R /Size 4 >>
%%EOF
某些应用程序可以查看这个最小的PDF,但是其中有错误,因为没有xref
部分,并且对象字节数将是错误的。同样,一旦您需要比单页带有几个文本标签更复杂的内容,它将变得难以维护。
更好的生成方式实际上是使用虾或wicked_pdf之类的宝石