[ruby-it] Creare pdf batch con prawn

Marco Mastrodonato m.mastrodonato a gmail.com
Mer 13 Maggio 2009 09:57:04 CEST


Tramite applicazione web fornisco un anteprima del pdf che costruisco
molto agilmente con la libreria prawn e che interfaccio tramite prawnto:
http://asciicasts.com/episodes/153-pdfs-with-prawn

La creazione però devo farla via batch perchè devo fare delle altre
operazioni sui pdf creati. Sono riuscito a crearli con un task rake,
replicando quanto faccio nel template dell'applicazione web con qualcosa
del genere:

namespace :batch do
  namespace :pdf do
    desc "Create pdf from data"
    task(:create => :environment) do
      require 'prawn'
      DATA_DIRECTORY = File.join(RAILS_ROOT, "lib", "tasks", "pdf")
      letters = Letter.all
      begin
        num = 0
        letters.each do |letter|
            Prawn::Document.generate(File.join(DATA_DIRECTORY,
"#{letter.id.to_s}_#{letter.name}.pdf"), :top_margin => 75) do |pdf|
              #Stampa
              pdf.move_down(10)
              pdf.text letter.object, :size => 10, :style => :bold
              pdf.move_down(20)
              pdf.text letter.body, :size => 10, :style => :italic
            end #Fine prawn
          end #Fine do letters
        puts "Letters printed: " + num.to_s
      rescue StandardError => bang
        puts "Error " + bang
      end #End begin
    end #End task
  end #End namespace pdf
end #End namespace batch

Ho ridotto l'esempio per semplicità ma è molto articolato e richiama
anche degli helper, qualche idea per come evitare di duplicare il codice
e sfruttare quello dell'applicativo?
-- 
Posted via http://www.ruby-forum.com/.


More information about the Ml mailing list