Java tutorial
package es.uniovi.asw.personalletter; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; import es.uniovi.asw.util.exception.CitizenException; import java.io.FileNotFoundException; import java.io.FileOutputStream; /** * Escritor de cartas PDF */ class PDFTextWritter implements TextWritter { private static String FILE_PATH = "src/test/resources/"; private static Font catFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD); /*private static Font redFont = new Font(Font.TIMES_ROMAN, 12, Font.NORMAL); private static Font subFont = new Font(Font.TIMES_ROMAN, 16, Font.BOLD); private static Font smallBold = new Font(Font.TIMES_ROMAN, 12, Font.BOLD); */ @Override public void createDocument(String documentName, String content) throws CitizenException { String realPath = FILE_PATH + documentName + ".pdf"; Document doc = new Document(); try { PdfWriter.getInstance(doc, new FileOutputStream(realPath)); doc.open(); addMetaData(doc); addTitlePage(doc); addContent(doc, content); } catch (DocumentException | FileNotFoundException e) { throw new CitizenException("Error al generar documento pdf" + " [" + FILE_PATH + documentName + ".pdf] | [" + this.getClass().getName() + "]"); } finally { if (doc != null) { doc.close(); } } } /** * Metadata del documento. * @param document Documento en cuestin */ private void addMetaData(Document document) { document.addTitle("My first PDF"); document.addSubject("Using iText"); document.addKeywords("Java, PDF, iText"); document.addAuthor("Lars Vogel"); document.addCreator("Lars Vogel"); } /** * Ttulo del documento. * @param document Documento en cuestin * @throws DocumentException Excepcion generada por algn problema */ private void addTitlePage(Document document) throws DocumentException { Paragraph preface = new Paragraph(); addEmptyLine(preface, 1); preface.add(new Paragraph("CitizensLoader PDF", 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)); // addEmptyLine(preface, 3); // preface.add(new Paragraph("This document describes something which is very important ", smallBold)); // // addEmptyLine(preface, 8); // // 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); // // Start a new page // document.newPage(); document.add(preface); addEmptyLine(preface, 2); } private void addContent(Document document, String content) 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 Paragraph paragraph = new Paragraph(content); document.add(paragraph); } /* private 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 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 void addEmptyLine(Paragraph paragraph, int number) { for (int i = 0; i < number; i++) { paragraph.add(new Paragraph(" ")); } } }