gpt4 book ai didi

ruby-on-rails - Prawn :带有模型特定信息的静态头文件可能吗?

转载 作者:行者123 更新时间:2023-12-04 17:07:04 25 4
gpt4 key购买 nike

我正在 Rails 和 Prawn 中构建一个 PDF 导出功能,我想在一个 PDF 中导出多个“公司”。一家公司通常有 2-3 页的篇幅。现在,当导出单个公司时,这与 pdf.repeat(:all) 一起使用。不过,我希望 Logo 根据公司在页眉中更改。一个简单的代码示例是:

@companies.each do |c|
pdf.repeat(:all) do
pdf.image company.logo.url(:thumb), :at => [0,520]
end
end

有没有办法做到这一点?我查看了相关主题,例如 header and footer in Prawn PDF但这对我没有帮助,因为在生成后我看不到哪个公司属于哪个页面。

最佳答案

很棒的 self 记录手册 (http://cloud.github.com/downloads/sandal/prawn/manual.pdf) 包含此代码(第 105 页),这可能会有所帮助:

repeat(lambda { |pg| pg % 3 == 0 }) do
draw_text "Every third page", :at => [250, 20]
end
repeat(:all, :dynamic => true) do
draw_text page_number, :at => [500, 0]
end

只要您知道哪家公司从哪个页面开始,lambda 或动态都可以为您解决问题。

如果您不知道每个公司的页数,请为每个页制作一个 pdf 并合并它们。手册,第 109 页:

filename = "#{Prawn::BASEDIR}/data/pdfs/multipage_template.pdf"
Prawn::Example.generate("full_template.pdf", :template => filename) do
go_to_page(page_count)
start_new_page
text "Previous pages and content imported.", :align => :center
text "This page and content is brand new.", :align => :center
end

在最坏的情况下,您最终会一次合并两个。

您还可以检查带有 :filter 选项的 pdf.number_pages 是否适用于图像(如果您还没有尝试过)。我完全不知道它是否有效,我现在也没有机会检查它。

关于ruby-on-rails - Prawn :带有模型特定信息的静态头文件可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109945/

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