使用wickedpdf gem对render_to_string进行水印处理

时间:2014-01-15 13:09:14

标签: ruby-on-rails ruby prawn wicked-pdf

我正在使用render_to_string和Wicked PDF gem从HTML生成PDF文档,我想对生成的文档进行水印处理。对于水印我正在使用Prawn并且我对角水印,甚至文本可能是可变长度所以我必须计算边界但是由Wicked PDF生成的PDF使用Prawn给出了不正确的尺寸/边界但是某些读者生成的任何其他PDF给了我正确的界限。有没有办法在生成的PDF中设置边界或以其他方式设置水印?

这是用于生成PDF的代码:

pdf = WickedPdf.new.pdf_from_string(render_to_string(
  :pdf => "some.pdf",
  :template => 'some.pdf.haml'),
  :margin => { 
    :top                => 18,                    
    :bottom             => 6,
    :left               => 0,
    :right              => 0
  },
  :page_size => 'A4', 
  :orientation => 'Landscape'
  :encoding=>"UTF-8",   
  :footer => { :content => render_to_string(:template => 'layouts/shared/footer.pdf.haml') },
  :header => { :content => render_to_string(:template => 'layouts/shared/header.pdf.haml') }
)

我想标记生成的PDF,但它给了我非常奇怪的行为,就像我使用Prawn计算它的边界并且抚摸它时,它在左上角给我一个非常小的有界区域并且该有界区域基本上显示这是页面大小,水印只在那个区域。

以下是代码:

input_filename = tmp_filename
output_filename = save_to

page_count = PDF::Reader.new(input_filename).page_count

Prawn::Document.generate(output_filename, :skip_page_creation => true) do |pdf|

  page_count.times do |num|
    pdf.start_new_page(:template => input_filename, :template_page => num + 1)
    pdf.stroke_bounds
  end
end

任何帮助将不胜感激。

0 个答案:

没有答案