80, :bottom_margin => 40, -6ren">
gpt4 book ai didi

ruby-on-rails - 在所有页面上使用 Prawn 的背景图像

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

我在 View 中有这段代码

prawn_document(:page_size=> "A4", :top_margin => 80, :bottom_margin => 40,
:background => "public/uploads/1.png") do |pdf|

creation_date = Time.now.strftime('%d-%m-%Y')
posts = @posts.each do |post|
pdf.pad(10) do
pdf.text post.title
pdf.text post.text
end
end

pdf.page_count.times do |i|
pdf.go_to_page(i + 1)
pdf.draw_text "Creation Date : " + creation_date, :at => [200, 780]
pdf.draw_text "Page : #{i + 1} / #{pdf.page_count}", :at => [450, -3]
end
end

这给了我以下输出:

enter image description here

还有这个

enter image description here

如您在第一张图片中所见,图片未居中。

在第二张图片上,您可以看到图片不适合整个页面。

我也试过将图像添加到每个页面,我添加页码的方式,但这里图像与文本重叠。但在这里我可以按照我想要的方式放置图像,但只有它与文本重叠。

如果我放入页眉,我将无法定位和调整图像大小。

所以我需要帮助让图像适合页面。图片大小为 700 像素 x 700 像素。

我也尝试过使用 PDFkit,但无法获得页码,我觉得我几乎可以使用 Prawn,但只有这张图片。即使是不同的解决方案也将不胜感激。

最佳答案

不幸的是, Prawn 似乎无法通过选项拉伸(stretch)背景图像以适合页面。但是,您可以。图像需要适合的页面是静态的,它永远不会改变大小。此外,我们知道确切的尺寸:

p Prawn::Document::PageGeometry::SIZES['A4']
# => [595.28, 841.89]

因此,最好的解决方案是使用您选择的图像编辑器并创建该尺寸的图像。也就是说,创建一个该大小的 Canvas 并以您想要的方式适合您的原始图像。你可以选择拉伸(stretch)它,虽然我可能只是按比例缩小它以适应宽度并垂直居中。但这取决于你。只需确保创建一个 595px x 842px 的图像,它应该很适合。

关于ruby-on-rails - 在所有页面上使用 Prawn 的背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22032271/

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