RGhost 0.8.5 ênfase na criação de PDF em Ruby
Friday, September 12th, 2008Acabei de atualizar o RGhost para a versão 0.8.5, adicionei novas features e correção de uns bugzinhos, abaixo as principais mudanças.
Mac OS e Linux plug and play
Detecta e configura o path do ghostscript automaticamente para MacOS e Linux, avisa quando não detectou o executável e avisa o cara, com abaixo
Ghostscript not found in your environment. Install it and set the variable RGhost::Config::GS[:path] with the executable path. Example: RGhost::Config::GS[:path]='/path/to/my/gs' #unix-style RGhost::Config::GS[:path]="C:\\gs\\bin\\gswin32c.exe" #windows-style
Para windows vou fazer depois mais pode configurar manualmente.
PDF Quality
Permite configurar a qualidade final do PDF que podem ser
- :screen - Baixa resolução, alta compressão, similar a opção “Screen Optimized” Acrobat Distiller.
- :ebook - Resolução mediana similar a opção “eBook” do Acrobat Distiller.
- :printer - Similar a opção “Print Optimized” do Acrobat Distiller ótima resolução pra impressão.
- :prepress - Qualidade para apresentação em tela cheia similar a “Prepress Optimized” do Acrobat Distiller.
Use o parâmetro :quality no método render
doc=RGhost::Document.new doc... #algo aqui doc.render :pdf, :quality => :ebook
PDF Document Info
Declara informações sobre o documento
Nas propriedades aparecerá

Usando o novo método Document#info
doc.info :Title => "My Report about XXX", :Author => "Company XXX", :Subject => "RGhost new version", :Creator => "We system", :Keywords => "foo bar bas to search enginers"
Fontes externas TTF ou Type1
Carregamento de fontes externas via método tag com a opção :from
doc.define_tags do tag :one_font, :name => "HelveticaOblique", :size => 12 tag :another, :name => "Monaco", :size => 30 , :from => "/tmp/monaco.ttf" end
PDF Security
Agora permite atribuir uma senha para usuários e para o dono do documento essa senha desabilita opções de abertura, impressão etc. O código fica da seguinte forma
doc.security do |sec| sec.owner_password ="testXXX" sec.user_password ="testYYY" sec.disable :print, :copy end
Acima estou desabilitando a impressão e a cópia do conteúdo. Agora desabilitando tudo
doc.security do |sec| sec.owner_password ="test123" sec.user_password ="test567" sec.disable :all end
Quando o documento for aberto uma senha será solicitada.
A senha com total privilégio e a do “owner” e limite total para “user”.
PDF Hyperlink(Text and Rectangle)
O campeão de pedidos o hyperlink. Criado com base na clase text_in e bem simples de usar
doc.text_link "Click here",:url => "http://mysite", :tag => :link, :color => :blue
Posicionamento absoluto
doc.text_link "Click here",:x=> 2, :y=> 4, :url => "http://mysite"
Exemplo de um link que checa informações online do PDF.

Ou defina um retângulo clicável

Com o simples código
doc.rectangle_link :url=> "http://www.hashcode.eti.br", :width => 10, :height => 5, :x => 5,:y => 22, :color => :blue
Grid::Rails dentro do Document
Crie suas grids usando um bloco dentro do documento, veja
doc.rails_grid :style => :border_lines, :width => 4 do |grid| grid.column :title, :title => "Título", grid.column :name, :title => "Comentário", :format => lambda {|s| s.gsub(/^(.{20}).*$/,'\1...')} grid.column :created_on, :title => "Data", :format => lambda {|s| s.strftime("%d %b")} grid.data Post.find(:all, :limit => 100) end
Bugs
- Correção do encoding do header da Grid::Rails e do callback grid.header.before_create.
- Correção da métrica em 2 décimos entre Cm e Inch.
- Correção do yield do Document não recebia instância atualizada, agora funfa.
Lembre-se
gem install rghost
Espero que gostem!
