sistemafacturacionlibros.PDFCreator.java Source code

Java tutorial

Introduction

Here is the source code for sistemafacturacionlibros.PDFCreator.java

Source

package sistemafacturacionlibros;

/**
 *
 * @author Enzo
 */
import java.io.FileOutputStream;
import java.util.Date;

import com.itextpdf.text.Anchor;
import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.List;
import com.itextpdf.text.ListItem;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.text.SimpleDateFormat;
import javax.swing.JTable;

public class PDFCreator {
    private static String FILE = "Factura.pdf";
    private static Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD);
    private static Font redFont = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.RED);
    private static Font subFont = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD);
    private static Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);

    //  public static void main(String[] args) {
    //    try {
    //      Document document = new Document();
    //      PdfWriter.getInstance(document, new FileOutputStream(FILE));
    //      document.open();
    //      addMetaData(document);
    //      addTitlePage(document);
    ////      addContent(document);
    //      document.close();
    //    } catch (Exception e) {
    //      e.printStackTrace();
    //    }
    //  }

    // iText allows to add metadata to the PDF which can be viewed in your Adobe
    // Reader
    // under File -> Properties
    public void addMetaData(Document document) {
        document.addTitle("PDF Report");
        document.addSubject("Using iText");
        document.addKeywords("Java, PDF, iText");
        document.addAuthor(System.getProperty("user.name"));
        document.addCreator(System.getProperty("user.name"));
    }

    public void addTitlePage(Document document, PdfPTable table, String total) throws DocumentException {
        Paragraph preface = new Paragraph();
        // We add one empty line
        addEmptyLine(preface, 1);
        // Lets write a big header
        preface.add(new Paragraph("Factura libros", catFont));

        addEmptyLine(preface, 1);
        // Will create: Report generated by: _name, _date
        //    preface.add(new Paragraph("Report generated by: " + System.getProperty("user.name") + ", " + new Date(), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        //        smallBold));
        Date myDate = new Date();
        preface.add(new Paragraph("Fecha: " + new SimpleDateFormat("yyyy-MM-dd").format(myDate)));
        addEmptyLine(preface, 3);
        //    preface.add(new Paragraph("This document describes something which is very important ",
        //        smallBold));

        //    preface.add(new Paragraph("This document is a preliminary version and not subject to your license agreement or any other agreement with vogella.com ;-).",
        //        redFont));

        document.add(preface);
        document.add(table);
        addEmptyLine(new Paragraph(), 2);
        document.add(new Paragraph("Total = $" + total, catFont));
        // Start a new page
        document.newPage();
    }

    //  public static void addContent(Document document) throws DocumentException {
    //    Anchor anchor = new Anchor("First Chapter", catFont);
    //    anchor.setName("First Chapter");
    //
    //    // Second parameter is the number of the chapter
    //    Chapter catPart = new Chapter(new Paragraph(anchor), 1);
    //
    //    Paragraph subPara = new Paragraph("Subcategory 1", subFont);
    //    Section subCatPart = catPart.addSection(subPara);
    //    subCatPart.add(new Paragraph("Hello"));
    //
    //    subPara = new Paragraph("Subcategory 2", subFont);
    //    subCatPart = catPart.addSection(subPara);
    //    subCatPart.add(new Paragraph("Paragraph 1"));
    //    subCatPart.add(new Paragraph("Paragraph 2"));
    //    subCatPart.add(new Paragraph("Paragraph 3"));
    //
    //    // add a list
    //    createList(subCatPart);
    //    Paragraph paragraph = new Paragraph();
    //    addEmptyLine(paragraph, 5);
    //    subCatPart.add(paragraph);
    //
    //    // add a table
    //    createTable(subCatPart);
    //
    //    // now add all this to the document
    //    document.add(catPart);
    //
    //    // Next section
    //    anchor = new Anchor("Second Chapter", catFont);
    //    anchor.setName("Second Chapter");
    //
    //    // Second parameter is the number of the chapter
    //    catPart = new Chapter(new Paragraph(anchor), 1);
    //
    //    subPara = new Paragraph("Subcategory", subFont);
    //    subCatPart = catPart.addSection(subPara);
    //    subCatPart.add(new Paragraph("This is a very important message"));
    //
    //    // now add all this to the document
    //    document.add(catPart);
    //
    //  }
    //
    //  private static void createTable(Section subCatPart)
    //      throws BadElementException {
    //    PdfPTable table = new PdfPTable(3);
    //
    //    // t.setBorderColor(BaseColor.GRAY);
    //    // t.setPadding(4);
    //    // t.setSpacing(4);
    //    // t.setBorderWidth(1);
    //
    //    PdfPCell c1 = new PdfPCell(new Phrase("Table Header 1"));
    //    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    //    table.addCell(c1);
    //
    //    c1 = new PdfPCell(new Phrase("Table Header 2"));
    //    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    //    table.addCell(c1);
    //
    //    c1 = new PdfPCell(new Phrase("Table Header 3"));
    //    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    //    table.addCell(c1);
    //    table.setHeaderRows(1);
    //
    //    table.addCell("1.0");
    //    table.addCell("1.1");
    //    table.addCell("1.2");
    //    table.addCell("2.1");
    //    table.addCell("2.2");
    //    table.addCell("2.3");
    //
    //    subCatPart.add(table);
    //
    //  }
    //
    //  private static void createList(Section subCatPart) {
    //    List list = new List(true, false, 10);
    //    list.add(new ListItem("First point"));
    //    list.add(new ListItem("Second point"));
    //    list.add(new ListItem("Third point"));
    //    subCatPart.add(list);
    //  }

    private static void addEmptyLine(Paragraph paragraph, int number) {
        for (int i = 0; i < number; i++) {
            paragraph.add(new Paragraph(" "));
        }
    }
}