Java tutorial
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(" ")); } } }