Tuesday, December 13, 2016

Mencetak Dokumen PDF : 2 Halaman

Untuk dapat mencetak sebuah halaman yang diperlukan adalah :

  1. Font dan Dokumen Sudah dibuat
  2. Halaman Baru
  3. Stream Baru
  4. Tuliskan isi (dengan atau tanpa loop)
  5. Tutup Steram
Sebagai contoh potongan program berikut ini digunakan untuk membuat halaman pdf :


        // Membuat Stream
        contentStream = new PDPageContentStream(document, page);

        // Membuat Text
        contentStream.beginText();
        contentStream.setFont( font, 18 );
        contentStream.moveTextPositionByAmount( 100, 700 );
        contentStream.drawString( "Roti Vanilaku Enak Rasanya" );
        contentStream.endText();
        
        contentStream.beginText();        
        contentStream.moveTextPositionByAmount( 100, 680 );
        contentStream.drawString( "Roti Vanilaku Tidak Berwarna Coklat" );
        contentStream.endText();

        // Menutup Stream
         contentStream.close();

Adapun kode lengkap programnya adalah sebagai berikut :



package mencetak2halamanpdf;

import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

/**
 *
 * @author Joko Adianto
 * Kode program dibawah ini merupakan modfifikasi dari 
 * kode program pada 
 * https://pdfbox.apache.org/1.8/cookbook/documentcreation.html
 */
public class Mencetak2HalamanPDF {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        // Membuat Dokumen
        PDDocument document = new PDDocument();
        
        //Mebuat halaman baru
        PDPage page = new PDPage();
        
        //tambahkan halaman kedalam dokumen
        document.addPage( page );

        // Buat font
        PDFont font = PDType1Font.COURIER;

        // Buat stream
        PDPageContentStream contentStream = new PDPageContentStream(document, page);

        // Membuat Text
        contentStream.beginText();
        contentStream.setFont( font, 18 );
        contentStream.moveTextPositionByAmount( 100, 700 );
        contentStream.drawString( "Roti Coklatku Enak Rasanya" );
        contentStream.endText();

        // Menutup stream untuk sebuah halaman
        contentStream.close();
        
        //Membuat halaman ke dua
        page = new PDPage();
        document.addPage( page );
        // Menentukan font
        font = PDType1Font.TIMES_ITALIC;

        // Buat Stram
        contentStream = new PDPageContentStream(document, page);
        // Membuat Text
        contentStream.beginText();
        contentStream.setFont( font, 18 );
        contentStream.moveTextPositionByAmount( 100, 700 );
        contentStream.drawString( "Roti Vanilaku Enak Rasanya" );
        contentStream.endText();
        
        contentStream.beginText();        
        contentStream.moveTextPositionByAmount( 100, 680 );
        contentStream.drawString( "Roti Vanilaku Tidak Berwarna Coklat" );
        contentStream.endText();

        // Menutup Stream
        contentStream.close();

        // Menutup dokumen
        try{
        document.save( "rotikucoklatvanila.pdf");
        document.close();
        }
        catch (IOException ioe){
            System.out.println(ioe.getMessage());
            System.out.println("if it is being used by another process, CLOSE IT");
            
            
        }
    }
    
}



No comments:

Post a Comment