Skip to content

Instantly share code, notes, and snippets.

@nathansamson
Created June 7, 2013 19:25
Show Gist options
  • Save nathansamson/5731719 to your computer and use it in GitHub Desktop.
Save nathansamson/5731719 to your computer and use it in GitHub Desktop.
Faulty behaviour prawn with page numbers (repeatable content) & transactions (with page changes)
require 'prawn'
require "prawn/measurement_extensions"
f = File.open('repeater.pdf', 'w')
Prawn::Document.generate f, page_size: "A4", margin: [2.cm, 1.cm, 2.6.cm, 1.cm] do |pdf|
pdf.text "Some title"
pdf.text "x\n" * 40
pdf.start_new_page
pdf.text "Some other title"
pdf.text "x\n" * 40
pdf.start_new_page
pdf.text "Page with transaction"
pdf.text "x\n" * 40
p = pdf.page_count
drawn = pdf.transaction do
pdf.text "xy\n" * 30
if pdf.page_count != p
pdf.rollback
end
end
if !drawn
pdf.start_new_page
pdf.text "Contd..."
pdf.text "xy\n" * 30
end
pdf.start_new_page
pdf.text "Last Page"
pdf.text "x\n" * 40
pdf.repeat(:all, :dynamic => true) do
pdf.canvas do
pdf.text_box "#{pdf.page_number} / #{pdf.page_count}", at: [pdf.page_number * 1.cm, 2.cm]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment