Ruby on rails 未使用wicked_PDF生成页脚超过200页的PDF文件
GemfileRuby on rails 未使用wicked_PDF生成页脚超过200页的PDF文件,ruby-on-rails,ruby,wicked-pdf,Ruby On Rails,Ruby,Wicked Pdf,Gemfile gem 'wicked_pdf' gem 'wkhtmltopdf-binary', '~> 0.12.5' 控制器: def pdf_list @lists = Domain.select(:domain_name, :ip_address, :priority) respond_to do |format| format.pdf do render pdf: "pdf", margin: {:
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary', '~> 0.12.5'
控制器:
def pdf_list
@lists = Domain.select(:domain_name, :ip_address, :priority)
respond_to do |format|
format.pdf do
render pdf: "pdf",
margin: {:top => 20, :bottom => 18},
page_size: 'A4',
template: 'domains/list.pdf.erb',
disposition: 'inline',
footer: {html: {template: 'domains/footer.pdf.erb'}}
end
end
end
> ulimit -H -n
1048576
我已经使用rails中的wicked_pdf生成了html文件到pdf文件
不渲染页脚,我可以生成超过300页的pdf
如果我将页脚包含在内容中,则使用wicked_pdf生成的pdf文件不会超过200页
错误:
DomainListsController#pdf_列表中的运行时错误无法执行:
[“/usr/local/bin/wkhtmltopf”、“--页面大小”、“A4”、“--页边空白顶部”,
“20”、“--页边距底部”、“18”、“--页脚html”,
"file:////var/folders/v6/_516wg4d5rsdrhlb5sn82fbc0000gp/T/wicked_footer_pdf20191206-1975-o5qou2.html",
"file:////var/folders/v6/_516wg4d5rsdrhlb5sn82fbc0000gp/T/wicked_pdf20191206-1975-16o6tkk.html",
“/var/folders/v6/_516wg4d5rsdrhlb5sn82fbc000gp/T/wicked_pdf_-generated_-file20191206-1975-1u66u16.pdf”]
错误:无法生成PDF!命令错误:加载页面(1/6)
[> ] 0% [======> ] 10% [==============================> ] 50%
[========================================>]50%
在日志文件中:
错误:无法加载
file:////var/folders/v6/_516wg4d5rsdrhlb5sn82fbc0000gp/T/wicked_footer_pdf20191206-1975-o5qou2.html?page=274§ion=FULL
资产报告&sitepage=274&title=FULL资产
报告&小节=&frompage=1;子小节=&isodate=2019-12-06;topage=275;doctitle=FULL
资产
报告和站点页面=275和网页=file:////var/folders/v6/_516wg4d5rsdrhlb5sn82fbc0000gp/T/wicked_pdf20191206-1975-16o6tkk.html&time=11:07
AM&date=06/12/19,网络状态代码为201,http状态代码为0
-打开//var/folders/v6/_516wg4d5rsdrhlb5sn82fbc000gp/T/wicked_footer\u pdf20191206-1975-o5qou2.html时出错:
打开的文件太多错误:加载页面失败
file:////var/folders/v6/_516wg4d5rsdrhlb5sn82fbc0000gp/T/wicked_footer_pdf20191206-1975-o5qou2.html?page=274§ion=FULL
资产报告&sitepage=274&title=FULL资产
报告&小节=&frompage=1;子小节=&isodate=2019-12-06;topage=275;doctitle=FULL
资产
报告和站点页面=275和网页=file:////var/folders/v6/_516wg4d5rsdrhlb5sn82fbc0000gp/T/wicked_pdf20191206-1975-16o6tkk.html&time=11:07
AM&date=06/12/19(有时忽略此错误即可
with--加载错误处理(忽略)
错误消息为我们提供了一个线索: 打开的文件太多 很可能是wicked_pdf从几个文件片段创建了完整的文档。在Linux系统上,可以同时打开多少文件有软限制和硬限制,而且似乎达到了这个限制。因此出现了错误 要查看系统设置的当前软限制,可以使用
ulimit-n
:
> ulimit -n
1024
要查看增加软限制的可用净空,您可以检查硬限制:
def pdf_list
@lists = Domain.select(:domain_name, :ip_address, :priority)
respond_to do |format|
format.pdf do
render pdf: "pdf",
margin: {:top => 20, :bottom => 18},
page_size: 'A4',
template: 'domains/list.pdf.erb',
disposition: 'inline',
footer: {html: {template: 'domains/footer.pdf.erb'}}
end
end
end
> ulimit -H -n
1048576
要增加当前外壳的软限制,可以执行以下操作:
> ulimit -n 5000
> ulimit -n
5000
现在从这个shell运行Rails服务器,然后重试
然而,我的建议是用wicked_pdf提出一个问题,因为这似乎是一个实现问题,可能会在gem的代码中解决
有关文件限制的更多信息,请参见此处:是否尝试将
footer.pdf.erb
的内容作为footer放置到list.pdf.erb
中。请检查一下这个方法,你会发现错误的。我已经试过了,但是页面的结尾只有页脚。我在循环13k记录。循环后,只有页脚出现。但是我需要所有带页脚的页面。添加此show_as_html:true
添加show_as_html:true正在工作。但是它没有显示为pdf格式。正如错误所说,是运行时错误,这意味着您当前的资源无法以pdf格式编译文档。如果您在本地机器上工作,请尝试从具有教育资源的远程系统进行检查。