Q1:ruby-on-rails - 将 footer-html 参数添加到 PDFKit (wkhtmltopdf) 时出现管道错误

template = File.read "#{Rails.root}/app/views/layouts/portfolio.haml"
@ci = self
pdf_html = Haml::Engine.new(template).render self

template_footer = File.read "#{Rails.root}/app/views/layouts/portfolio_footer.haml"
@ci = self
pdf_footer_html = Haml::Engine.new(template_footer).render self

pdfkit_instance = PDFKit.new(pdf_html, :orientation => 'Landscape', 'footer-html' => pdf_footer_html)

send_data(pdf.to_pdf, :filename => "generated.pdf", :type => 'application/pdf')

不幸的是,这会导致“Broken Pipe”错误:

pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:65:in `write'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:65:in `puts'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:65:in `block in to_pdf'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:64:in `popen'
pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:64:in `to_pdf'
app/controllers/admin/collection_items_controller.rb:9:in `test_generate_pdf'

当我生成没有页脚的 PDF 时,它是成功的。如果我使用页脚 html 作为主要 html 源,它也会成功。使用像“footer-right”这样的纯文本选项之一也可以,但显然我想使用 html 选项。此行为在本地和部署到 Heroku 时都是一致的。

最佳答案

pdfkit_instance = PDFKit.new(pdf_html, :orientation => 'Landscape', :footer_html => pdf_footer_html)

关于ruby-on-rails - 将 footer-html 参数添加到 PDFKit (wkhtmltopdf) 时出现管道错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327961/

Q2:Rails 3 and PDFKit, how can I convert an HTML file into a landscape orientation PDF?

In case this helps, I am using PDFKit and can render the pdf in landscape using:

respond_to do |format|
  format.html
  format.pdf {
    html = render_to_string(:layout => false , :action => "my_page.html.haml")
    kit = PDFKit.new(html, :orientation => 'Landscape')
    kit.stylesheets << "#{Rails.root}/public/stylesheets/views/pdf.css"
    send_data(kit.to_pdf, :filename => "some_name.pdf", :type => 'application/pdf')
    return # to avoid double render call
  }
end

I got the orientation part from here: https://github.com/pdfkit/pdfkit/issues/12

 

posted @ 2024-03-08 16:41 鞋带松了 阅读(17) 评论(0) 推荐(0) 编辑
摘要: ApplicationRecord 在Rails4中所有的模型都继承自ActiveRecord::Base,不过在Rails5中新引进了一个叫ApplicationRecord的类,存放在:app/models/application_record.rb中,所有Rails5应用都会有这个类, 它的内 阅读全文
posted @ 2024-03-08 16:29 鞋带松了 阅读(7) 评论(0) 推荐(0) 编辑
摘要: windows搭建rails环境中,mysql2 gem 安装error问题 可以尝试使用下面几种方法: 1. Uninstalling and reinstalling the gem will often solve this issue with no need to download and 阅读全文
posted @ 2024-03-08 15:52 鞋带松了 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 1.安装gem gem'prawn' gem'prawn-table' 2.由于 prawn包中不支持打印中文,所以需要将windows电脑路径下的字体复制到gem的安装路径下 windows 字体路径:C:\Windows\Fonts gem中安装路径:/Users/zhoukong/.rvm/g 阅读全文
posted @ 2024-03-08 15:20 鞋带松了 阅读(10) 评论(0) 推荐(0) 编辑
摘要: includes和joins的不同 当includes和joins的时候最重要的概念就是他们有他们的典型用例。 includes使用贪婪加载(eager loading)而joins使用懒加载(lazy loading),两者都非常有用,但是也都很容易被滥用导致程序性能降低或过度使用。 如果我们看一 阅读全文
posted @ 2024-03-08 15:12 鞋带松了 阅读(85) 评论(0) 推荐(0) 编辑
摘要: web开发原理 Web 开发的原理是服务端接收到客户端传来的 request,进行业务处理,然后将结果通过 Response 响应给客户端的过程。 客户端和服务端通过 HTTP 协议进行数据交互,底层机制是客户端将用户输入的信息组装成 HTTP 协议报文,然后通过网络将报文传输到服务端。 服务端通过 阅读全文
posted @ 2024-03-08 15:00 鞋带松了 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ttf是常用格式,可以到Google font下载字体。例如,将字体放在项目的某个目录中,例如 /assets/fonts/ 然后您可以像这样定义一个新的字体系列: Prawn::Document.generate("output.pdf") do font_families.update("Ari 阅读全文
posted @ 2023-12-20 09:21 鞋带松了 阅读(15) 评论(0) 推荐(0) 编辑
摘要: RailsでFileをActionDispatch::Http::UploadedFileに変換する方法 require 'mime/types' File.open(path) do |file| filename = File.basename(file.path), ActionDispatc 阅读全文
posted @ 2023-12-20 09:05 鞋带松了 阅读(33) 评论(0) 推荐(0) 编辑
摘要: jquery中的json操作 json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj) $(function() { var str = '{"name":"John"}'; var obj =e 阅读全文
posted @ 2023-12-19 16:49 鞋带松了 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 简单总结: 1、JS是一门前端语言。 2、Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新。 3、jQuery是一个框架,它对JS进行了封装,使其更方便使用。jQuery使得JS与Ajax的使用更方便 关系比喻: 若把js比作木头,那么jq 阅读全文
posted @ 2023-12-19 16:35 鞋带松了 阅读(142) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示