Saturday, December 17, 2016

Mencetak PDF dari database

Saya mencetak PDF dari contoh database yang disertakan oleh netbeans. Kode programnya adalah sebagai berikut :


import java.io.IOException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
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
 */
public class MencetakPDF {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws
            ClassNotFoundException,
            InstantiationException,
            IllegalAccessException,
            SQLException,
            IOException {
        // TODO code application logic here
        int jumlahBaris = 4;
        int cacahBaris;
        int jarakBaris = 40;
        Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
        Connection con =
                DriverManager.getConnection("jdbc:derby://localhost:1527/sample",
                        "app", "app");
        Statement stm = con.createStatement();
        ResultSet rst = stm.executeQuery("select * from customer");
        PDPageContentStream str;
        PDDocument document = new PDDocument();
        PDPage pge = new PDPage();
        document.addPage(pge);
        PDFont font = PDType1Font.COURIER;
        str = new PDPageContentStream(document,pge);
        cacahBaris = 0;
        while (rst.next()){
                str.beginText();
                    str.setFont(font, 18);
                    str.moveTextPositionByAmount(100, 400-jarakBaris*cacahBaris);
                    str.drawString(rst.getString(1));
                str.endText();
                str.beginText();
                    str.setFont(font, 18);
                    str.moveTextPositionByAmount(140, 400-jarakBaris*cacahBaris);
                    str.drawString(rst.getString(2));
                str.endText();
                str.beginText();
                    str.setFont(font, 18);
                    str.moveTextPositionByAmount(180, 400-jarakBaris*cacahBaris);
                    str.drawString(rst.getString(3));
                str.endText();
                cacahBaris++;
                if (cacahBaris==jumlahBaris){
                    str.close();
                    font = PDType1Font.COURIER;
                    pge = new PDPage();
                    document.addPage(pge);
                    str = new PDPageContentStream(document,pge);
                    cacahBaris = 0;          
                    }
        }
        str.close();
        document.save( "customer.pdf");
        document.close();
    }
 
}

No comments:

Post a Comment