首页 文章

在使用Wicked PDF和Rails生成的每个页面中重复HTML

提问于
浏览
1

我在Ruby on Rails上使用Wicked PDF gem生成PDF,但必须在每个页面上重复一些HTML内容 .

我正在尝试的是仅将页面的一部分用于我的主要内容,并使用HTML在每个页面中添加其中的内容 .

Something like this image (Check)

我尝试使用 Headers ,但我无法将内容放在HTML前面(甚至使用z-index),并且只能将主要内容与边距和间距垂直放置(没有找到任何选项)水平地做) .

有任何想法吗?谢谢!

1 回答

  • 0

    由于没有人回答,我会在这里发布我的解决方案 . 它不是美丽也不是辉煌,它离这些都是如此遥远 - 但由于没有人回答,也许我们可以从中开始讨论 .

    我能够使用Wicked PDF生成仅包含文本(但具有正确边距)的PDF,没有背景 . Like this image . 我用它来保存文件 .

    这是它的代码:

    # Save PDF with only the text (with correct margins)
    render :pdf => "text#{id}",
           :margin => {:top => "1.6in", :left => "4.1in", :right => "1.2in", :bottom => "2.5in"},
           :page_size => "Letter",
           :template => "careers/job_pdf_text.pdf.erb",
           :save_to_file => Rails.root.join('public/job_pdf_tempfiles', "text#{id}.pdf"),
           :save_only => true,
           :no_background => true
    

    然后我使用RMagick从这个保存的PDF创建图像 . 这里重要的是我保存了透明背景的GIF,Magick为PDF上的每个页面创建了一个图像 . 这是保存图像的代码:

    # Save images from the only-text PDF
    @text_images = []
    text_images_magick = Magick::Image.read(Rails.root.join('public/job_pdf_tempfiles', "text#{id}.pdf"))
    text_images_magick.each_with_index do |image, index|
        file_name = Rails.root.join('app/assets/images/careers_pdf', "text#{id}-#{index}.gif")
        image.write(file_name)
        @text_images << file_name
    end
    

    好的,所以此刻我有文字图片,like this . 现在我做的是将它们放在HTML页面中,在正确的位置,然后再次使用Wicked PDF来呈现最终的PDF . 我使用边距0渲染了PDF,并为每个@text_images创建了一个容器,我从中放置了其他所有内容(包括图像本身)以实现我想要的开始 .

    有没有人有更好的想法分享?

相关问题