Membuat Blog dengan Ruby on Rails + PDF Generation “PRAWN”

Introduction:

Lanjutan dari tulisan sebelumnya (membuat blog dengan rails), coba kita akan membuat tampilan pdf dari suatu postingan. Jika Anda belum membuat aplikasi blog, ada baiknya membuat terlebih dahulu dengan cara seperti tutorial sebelumnya (membuat blog). Perhatikan gambar berikut, tampak kop dan logo yang akan muncul setiap suatu postingan akan ditampilkan dalam format Printable Document File (pdf).

Sebaiknya Anda install terlebih dahulu Gem untuk Prawn.

gem install prawn

Insert pada Gemfile :

gem "prawn", "~> 0.12.0"

gem “prawnto”, “~> 0.1.1”

Jangan lupa menginstal gem:

bundle install

Tambahkan pada app\controllers\ articles_controller.erb kode berikut ini:

prawnto :prawn => { :top_margin => 75, :left_margin =>55, :right_margin =>100}

Buat satu file baru pada app\views\articles\ show.pdf.prawn. Insert file prawn itu dengan kode berikut ini (Letakkan file gambar di app\assets\images\logo.jpg):

pdf.image “#{Rails.root}/app/assets/images/logo.jpg”, :scale => 0.2, :position => 180

pdf.text “\n”    

pdf.text ” AT 70.12: Web Application Engineering” ,:style => :bold

pdf.text ” Asian Institute of Technology”

pdf.text ” Handout: #{@article.name}”

pdf.text ” ____________________________________________________________________”

pdf.text ” \n”

pdf.text ” #{@article.name}”, :size =>18, :style => :bold, :align => :center

pdf.text ”

#{@article.content},”,:columns => 2, :width => pdf.bounds.width,:style => :italic, :align => :justify

Actually you can type on http://localhost:3000/products.pdf to show show.pdf.prawn for each posting, you can add a link at show.html.erb with:

<%= link_to ‘Printable Version’, article_path(@article, :format => ‘pdf’) %>

  1. Run the server:

rails server

Open http://localhost:3000/products. You must see pdf document on your browser when clicking the “printable version” links.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.