gpt4 book ai didi

ruby-on-rails - 生成带有页眉/页脚的大量页面的 pdf 时出现 wkhtmltopdf 错误

转载 作者:数据小太阳 更新时间:2023-10-29 06:56:33 30 4
gpt4 key购买 nike

我正在使用 pdfkit(在后台使用 wkhtmltopdf)在我的 Rails 应用程序中生成 PDF。按照指南 here我已经得到它主要用于 PDF 的基本案例。我现在在尝试生成包含许多页面的 PDF 时遇到了一个问题,该页面也有页眉/页脚。尝试生成 PDF 时,我在控制台的 wkhtmltopdf 中看到的错误是:

QEventDispatcherUNIXPrivate(): Unable to create thread pipe: Too many open files
QEventDispatcherUNIXPrivate(): Can not continue without a thread pipe

可用于重现错误的 html 的最小示例:

<!-- content of pdf_header_url is the character "h" -->
<meta content="<%= pdf_header_url %>" name="pdfkit-header-html"/>
<!-- content of pdf_footer_url is the character "f" -->
<meta content="<%= pdf_footer_url %>" name="pdfkit-footer_html"/>
<% [*1..3].each do |j|%>
<h1><%= j %></h1>
<ul>
<% [*1..1000].each do |i|%>
<li><%= i %></li>
<% end %>
</ul>
<% end %>

请注意,删除页眉/页脚标签可以使 pdf 呈现良好。

生成 PDF 的实际 ruby​​ 代码是:

def view_report
html = render_to_string(:template => 'pdf/pdf_body.html', :layout => false)
kit = PDFKit.new(html)
pdf = kit.to_pdf
send_data pdf, :type => 'application/pdf', :disposition => 'inline', :filename => 'foo.pdf'
end

访问此 Controller 路由将生成 PDF。最后,我还有一个用于页眉/页脚的 Controller ,因为这些“部分内容”需要通过 url 获取:

class PdfController < ApplicationController

def header
render :layout => false
end

def footer
render :layout => false
end

end

为了最小的可重现示例,pdf_header_url 和 pdf_footer_url 的值实际上只是“h”和“f”。

有没有熟悉 wkhtmltopdf 的人对进一步调试步骤有任何建议来解决这个问题?

最佳答案

我今天收到了同样的错误信息,我用一个非常简单的解决方案解决了这个问题。问题是我的页眉和页脚需要是带有 html、head 和 body 标签的完整 html 文档。另外,看看您是否可以获得页眉和页脚的生成的 html 输出并验证它们。

关于ruby-on-rails - 生成带有页眉/页脚的大量页面的 pdf 时出现 wkhtmltopdf 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25355697/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com