Rabu, 22 Maret 2017

Cara Export PDF di Aplikasi Rails

Pada post kali ini saya akan membahas dasar-dasar penggunaan gem prawn untuk Ruby on Rails.

Prawn adalah sebuah gem untuk Ruby on Rails yang digunakan untuk memudahkan kita membuat / generate file PDF.

  1. Pertama-tama buat project baru menggunakan PostgreSQL
    $ rails new namaproject -d postgresql
    $ cd namaproject
  2. Buka project menggunakan text editor dan tambahkan gem pada Gemfile nya

     gem 'prawn', :git => 'git://github.com/prawnpdf/prawn.git'
    gem 'prawn_rails'
    gem 'prawn-table'
    

  3.  Lalu ketik kode di bawah ini pada terminal
    $ bundle install
  4. Setelah itu kita buat CRUD sebagai contoh table yang akan di export menjadi file PDF
    $ rails generate model Product name:string category:string quantity:integer
    $ rake db:create 
    $ rake db:migrate 
  5. Buat root untuk show-nya, buka routes.rb (config/routes.rb)
  6. Rails.application.routes.draw do
      resources :products do 
        member do
          get 'print'
          get 'print_all'
        end  
      end
      root :to => "products#index"
    end
  7. Lanjut buka controller products (app/controllers/products_controller.rb) tambahkan:

     class ProductsController < ApplicationController
      def print_all
        @products = Product.all
        render 'print'
      end
     end

  8. Pada text editor anda cari file (app/views/products) dan tambahkan file print_all.pdf.prawn 

  9. Cari file (app/views/products/print_all.pdf.prawn) dan tambahkan:

    prawn_document(:margin => 15, :page_size => [612, 936]) do |pdf|
      pdf.move_down (20)
      pdf.text "LIST PRODUK", :size => 15, :style => :bold, align: :center
      pdf.move_down(10)
      pdf.stroke_horizontal_line(2, pdf.bounds.width)
      pdf.move_down(20)
      products = [ ]
      products << [
        {:content => "Nama Barang" , :align => :center, :background_color => "000000", :text_color => "ffffff" },
        {:content => "Kategori", :align => :center, :background_color => "000000", :text_color => "ffffff" },
        {:content => "Stock Barang", :align => :center, :background_color => "000000", :text_color => "ffffff" },
      ]
      @products.each do |product|
        products << [
          {:content => "#{product.name}", :align => :center},
          {:content => "#{product.category}", :align => :center },
          {:content => "#{product.quantity}", :align => :center },
        ] 
      end
      pdf.table products, :cell_style => { :border_style => :grid}, :position => :left
    end
    
  10. Buka project menggunakan text editor dan tambahkan gem pada Gemfile nya
     <%= link_to 'New Product', new_product_path %>
    <%= link_to "Print", print_all_product_path(@products, format: "pdf") %>
    

  11. Jalankan server
    $ rails s


kurang lebih seperti ini:


klik tombol print:




Untuk lebih jelasnya silahkan baca dokumentasi di:


Sekian post kali ini tentang tutorial print pdf menggunakan gem prawn pada Ruby on Rails, nantikan postingan lain yang lebih menarik lagi, stay on belajarrubyonrails.com

Bye