所以我有一些Rails 3.2.x代码,它采用HTML视图页面并使用docraptor打印服务将其输出为PDF。唯一的问题是它不会缩小内容以适应PDF页面,因此存在溢出。
我最初尝试进行媒体查询以注入一些用于打印的CSS,但这似乎没有做任何事情。
尝试使这项工作有什么选择?
1)我考虑制作一个单独的打印样式表(而不是媒体查询),但是当我通过POST请求将docraptor发送给docraptor时,我不确定docraptor是否正在以“打印模式”处理HTML文档。
2)我还可以制作一个单独的Rails视图,以较窄的宽度(比如500像素)打印出来,以确保输出时所有内容都适合PDF页面。这是更多的工作,所以我试图让#1工作,但我没有运气。
class PdfMaker
include HTTParty
def make_pdf
options = {
:document_url => url,
:document_type => "pdf",
:name => "mydocument.pdf",
:test => false,
:async => false,
:prince_options => {:baseurl => 'http://www.example.com'}
}
response = post("/docs", :body => {:doc => options}, :basic_auth =>{:username => "secure_stringXXXX"})
end
end
答案 0 :(得分:2)
1)应该工作正常。 DocRaptor支持媒体查询,默认情况下使用打印样式表。唯一的障碍是它(目前)不支持条件表达式,如:
@media print and (min-width:700px) { ... }
所有条件表达式都将返回false,因此您只想使用:
@media print { ... }
2)这也可以,但应该完全没必要。
如果您尝试控制页面大小,则需要使用@page规则。 DocRaptor的一大优势是所有这些都可以通过纯CSS设计,而不会弄乱代码配置。有关页面大小的详细信息,请访问:http://www.princexml.com/doc/page-size/
最后,DocRaptor支持服务可以帮助调试HTML到PDF的转换。只需转到文档日志,然后单击特定文档上的“请求帮助”。