- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我正在尝试实现下载 PDF 收据。我不确定如何将 Prawn 与 Rails 4 应用程序集成,我找不到任何有关如何执行此操作的教程。请参阅下文了解我所做的事情。有人可以向我推荐一些文章或一些提示。
1 添加了 Prawn gem 并进行了捆绑安装
2 添加 Controller 代码以呈现 PDF
respond_to do |format|
format.html
format.pdf do
pdf = OrderPdf.new(@order, view_context)
send_data pdf.render, filename: "order_#{@order.order_number}.pdf",
type: "application/pdf",
disposition: "inline"
end
end
<%= link_to "Download PDF", order_path(@order, format: pdf) %>
最佳答案
我不确定您需要帮助哪一部分,但我是这样做的。在下面的代码中,我正在创建收据的 pdf 并将其存储在数据库中。输出看起来像这样 - Sample Receipt
也许它可能会有所帮助。
class Omni::ReceiptWorksheet < Omni::Receipt
def print(receipt)
pdf = header receipt
data = []
data[0] = ["PO Nbr","Carton Nbr","Sku Nbr","Sku Description","S/U Open","S/U per Pack","Packs Open", "Packs Received"]
receipt.receipt_details.each_with_index do |detail,i|
selling_units = detail.purchase_detail.selling_units_approved - detail.purchase_detail.selling_units_received - detail.purchase_detail.selling_units_cancelled
data[i+1] = [detail.purchase.purchase_nbr,' ', detail.sku.sku_nbr, detail.sku.display, selling_units, detail.receipt_pack_size, selling_units / detail.receipt_pack_size, ' ']
end
pdf.move_down 110
pdf.table(data) do |t|
t.style(t.row(0), :background_color => '0075C9')
t.header = true
end
pdf.number_pages "page <page> of <total>", { :at => [pdf.bounds.right - 150, 0], width: 150, align: :right, page_filter: (1..50), start_count_at: 1, color: "002B82" }
attach StringIO.new(pdf.render), "receiving_worksheet#{Date.today}.pdf", receipt
end
def header(receipt)
pdf = Prawn::Document.new
pdf.font_size = 12
pdf.draw_text "Printed on: #{Date.today}", at: [0, 670]
pdf.draw_text "Receiving Worksheet", at: [220, 670]
pdf.draw_text "Page 1", at: [480, 670]
pdf.draw_text "Receipt #: #{receipt.receipt_nbr}", at: [0, 650]
pdf.draw_text "Receipt Date: #{Date.today}", at: [400, 650]
pdf.draw_text "Receiving Location: #{receipt.location_display}", at: [0, 640]
pdf.draw_text "Carrier Name: #{receipt.carrier_supplier.display}", at: [0, 620]
pdf.draw_text "Bill of Lading: #{receipt.bill_of_lading_number}", at: [450, 620]
pdf
end
def attach(file, file_name, receipt)
attachment = Buildit::Attachment.create(
attachable_type: "Omni::Receipt",
attachable_id: receipt.receipt_id,
file_name: file_name,
mime_type: 'application/pdf',
byte_size: file.size,
locale: 'en',
is_enabled: true
)
Buildit::Content.create(
contentable_type: "Buildit::Attachment",
contentable_id: attachment.attachment_id,
data: file.read
)
end
end
class ContentController < ActionController::Base
def download
content = Buildit::Content.find_by_content_id(params[:file_id])
contentable = content.contentable
file_name = (contentable ? contentable.file_name : 'file')
send_data content.data, :disposition => 'attachment', :filename => file_name
end # def download
def upload
begin
content = Buildit::Content.create(
data: params[:file].read
)
result = {
success: true,
content_id: content.content_id,
file_name: params[:file].original_filename,
mime_type: params[:file].content_type,
byte_size: params[:file].size
}
rescue
result = {success: false}
end
render text: result.to_json, status: 200
end # def upload
end # class ContentController
关于ruby-on-rails - 如何安装 Prawn for Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19717074/
我一直在 Prawn 中为 Ruby 随机尝试字体。 例如: Times New Roman - 是的 Palatino Linotype - 没有 是否有可用字体和不可用字体的列表? 最佳答案 代码
我正在尝试为单行设置 prawn 中笔划线的宽度。我想做的是...... pdf.stroke_horizontal_line(0, bounds.width, :at => row*spacin
我正在使用Rails 4 + prawn_rails +最新版本的prawn(v 1.1.0),并在以下更改日志中注意到:https://github.com/prawnpdf/prawn/wiki/
对不起我的英语不好。 我正在尝试在我的应用程序上使用 prawn 和 prawnto。我有一个 pdf 文件用作模板,该 pdf 文件只有一个页面,而该页面只有一个页眉和一个页脚,然后,我的 Cont
我在 rails 3.0 应用程序中使用 Prawn Gem 0.12.0。 我的文档显示正常: class TemplatePdf filename) text_box "2005
我采用了 Railscast episode 153 revised 的方法。 我的 Controller 是 class AdminsController "https://github.com/
我正在关注这个 railscasts #153,我正在尝试将表数据添加到 prawn。我不断收到此错误: Prawn::Errors::UnrecognizedTableContent 最佳答案 注意
我正在使用 ruby、prawn 和 prawnto 动态生成包含其他语言文本的 pdf。我似乎无法显示任何带有非英语字符的语言的文本。它不会抛出任何错误...只是显示一堆破折号而不是字符。 Pr
我正在尝试使用 Prawn 生成 pdf @buyer = Buyer.last Prawn::Document.generate("samle.pdf") do text "hello #{@b
我正在尝试在 prawn 类中使用 rails 3.2 助手,但 rails 抛出: undefined method `number_with_precision' for # Prawn 类 cl
我使用 Prawn 创建 pdf 文件,我想将 Logo 放入文件中。我看过这个网站 Creating pdf引用如何添加图像。 这是我在 ExamResultPdf.rb 中的代码生成pdf的文件:
我有一个 4 页的 PDF 模板,我想用 prawn 生成.我需要在我的 pdf 中多次重复这个模板,每次用不同的内容填充它。 如果我使用: Prawn::Document.generate('o
我正在尝试使用 Prawn 从包含大量图像的目录生成 PDF。到目前为止,我的代码运行良好,只有一个小问题,它会在 PDF 的开头插入一个空白页。 因为我不一定知道图像的大小(除了它们大致相同,任一维
我最近开始在我的应用程序中使用 Prawn 来生成 PDF,我还使用 Nori 来解析 XML 和发送 SMS。 我意识到我的应用无法再发送短信,我收到了这条错误消息: nori: undefine
目标是:创建具有标题横幅和重复标题表的 PDF 问题是:如果表格开始新页面,pdf.move_down 不起作用 CODE: # repeat drawing in every page pdf.re
我似乎无法将元数据设置为基于模板生成的 pdf。这是不允许的还是我做错了什么。 这是代码 pdf = Prawn::Document.new(:template => "sample.pdf",
我正在尝试这个简单的脚本: require 'prawn' template_file_name = File.join(File.dirname(__FILE__), 'template.pdf')
我的客户说生成的 PDF 必须是 CMYK 格式。 Prawn 能做到吗? 我在文档中找不到答案。 最佳答案 是的,Prawn 可以做到这一点。这个主题似乎被文档省略了,所以你可以看看源代码。 Thi
我有一张图片image.jpg,我想将它放在每页左下角的页脚中。我目前正在这样做,使用 Ruby 1.9.3 和 prawn gem 来创建 PDF,如下所示: start_new_page imag
我正在使用 Prawn 在 Rails 3 应用程序中生成 PDF。 是否可以像在 HTML View 中一样将 Unicode 字符串打印到 PDF 中? 例如, 在 show.html.erb
我是一名优秀的程序员,十分优秀!