List of usage examples for com.lowagie.text Font Font
public Font(int family, float size, int style)
From source file:za.co.equalpay.web.utils.PDFExportUtility.java
/** * Perform the standard PDF PreProcessing: <br> * Add Customer logo image and Phrase as header to the first page, <br> * Add Line Separator to the bottom of the Image <br> * and add the standard footer message to the PDF document<br> * * @throws MalformedURLException/*ww w . j a v a 2 s . co m*/ * @throws IOException * @throws DocumentException */ public void preProcess() throws MalformedURLException, IOException, DocumentException { document.setMargins(50f, 50f, 10f, 20f); BaseFont bf_helv = BaseFont.createFont(BaseFont.HELVETICA, "Cp1252", false); // Font font = new Font(bf_helv, 8); ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext() .getContext(); String fontPath = LogoPathFinder.getFontPath(servletContext, "Tahoma"); BaseFont bf = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, true); Font tahoma = new Font(bf, 16, Font.BOLD); tahoma.setColor(Color.GRAY); Font fontBold = new Font(bf, 8, Font.BOLD); fontBold.setColor(Color.GRAY); Font f = new Font(bf, 8, Font.NORMAL); f.setColor(Color.GRAY); Font sf = new Font(bf, 6, Font.NORMAL); sf.setColor(Color.LIGHT_GRAY); // image.setIndentationLeft(360f); // PdfPCell imgCell = new PdfPCell(image, false); // imgCell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); // imgCell.setBorder(0); // // PdfPCell emptyCell = new PdfPCell(new Phrase("TESTING...", tahoma)); // emptyCell.setBorder(0); // PdfPTable footerTable = new PdfPTable(1); // footerTable.setWidthPercentage(100); // // // phrase = new Phrase(PDF_FOOTER_MESSAGE, f); // // PdfPCell cell = new PdfPCell(phrase); // cell.setBorder(0); // footerTable.addCell(cell); // table.setWidths(new int[] { 1, 2 }); // table.addCell(emptyCell); // footerTable.addCell(emptyCell); // phrase.add(footerTable); // phrase.add(new Chunk(image, 475f, 0)); // Phrase subPhrase = new Phrase(); // subPhrase.add(new Phrase("\nwww.meddev.co.za\n", sf)); // subPhrase.add(new Phrase(PDF_FOOTER_MESSAGE, f)); // phrase.add(subPhrase); // phrase.add(new Chunk("www.meddev.co.za", f)); // phrase.add(new Phrase(PDF_FOOTER_MESSAGE, f)); // load document footer HeaderFooter footer = new HeaderFooter(new Phrase(PDF_FOOTER_MESSAGE, f), false); // HeaderFooter footer = new HeaderFooter(paragraph, false); // HeaderFooter footer = new HeaderFooter(phrase, false); footer.setAlignment(Element.ALIGN_LEFT); footer.setBorder(Rectangle.NO_BORDER); document.setFooter(footer); // document.open(); // // ByteArrayOutputStream baos = new ByteArrayOutputStream(); // PdfWriter writer = PdfWriter.getInstance(document, baos); // // writer.open(); // PdfContentByte cb = writer.getDirectContent(); // cb.addImage(image); // ColumnText columnText = new ColumnText(cb); // load the customer logo String logoPath = LogoPathFinder.getPath(servletContext, "meddev-logo2"); Image image = Image.getInstance(logoPath); image.scaleToFit(149, 55); image.setIndentationLeft(360f); PdfPCell imageCell = new PdfPCell(image, false); imageCell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); imageCell.setBorder(0); PdfPCell headerTextCell = new PdfPCell(new Phrase(header, tahoma)); headerTextCell.setBorder(0); PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100); table.setWidths(new int[] { 1, 2 }); table.addCell(headerTextCell); table.addCell(imageCell); phrase = new Phrase(); phrase.add(table); // load document header HeaderFooter header = new HeaderFooter(phrase, false); header.setAlignment(Element.ALIGN_CENTER); header.setBorder(Rectangle.NO_BORDER); document.setHeader(header); // create gray line separator // Chunk lineSeparator = new Chunk(new LineSeparator(1, 100, Color.GRAY, // Element.ALIGN_CENTER, -2)); // document.add(lineSeparator); Font headerFont = new Font(bf_helv, 9); // write the header lines for this statement phrase = new Phrase(12, "\n", headerFont); phrase.add("\n\n"); // open the pdf document for editing document.open(); document.setPageSize(PageSize.A4); // Meddev Information Block table = new PdfPTable(4); table.setWidthPercentage(100); // table.setWidths(new int[] { 25, 25, 30, 20 }); Phrase phrase1 = new Phrase(); phrase1.add(new Phrase("MED DEV cc", fontBold)); phrase1.add(new Phrase("\nUNIT 10, THE CORNER", f)); phrase1.add(new Phrase("\nc/o Theuns & Hilde Ave", f)); phrase1.add(new Phrase("\nHennopspark, 0157", f)); phrase1.add(new Phrase("\nTel: +27 (0) 12 653 3063", f)); phrase1.add(new Phrase("\nReg No: 2006/166603/23", f)); phrase1.add(new Phrase("\n", f)); Phrase phrase2 = new Phrase(); phrase2.add(new Phrase("VAT No: ", fontBold)); phrase2.add(new Phrase("4150231498", f)); phrase2.add(new Phrase("\nImport/Export #: ", fontBold)); phrase2.add(new Phrase("20544748", f)); phrase2.add(new Phrase("\n", f)); Phrase phrase3 = new Phrase(); phrase3.add(new Phrase("QUOTE NO ", fontBold)); phrase3.add(new Phrase("\nDATE ", fontBold)); phrase3.add(new Phrase("\nREFERNCE ", fontBold)); phrase3.add(new Phrase("\nSUPPLIER CODE ", fontBold)); phrase3.add(new Phrase("\nEXPIRY DATE ", fontBold)); Phrase phrase4 = new Phrase(); // phrase4.add(new Phrase(quotation.getQuotationNumber(), f)); // phrase4.add(new Phrase("\n" + DateFormatter.formatMonthDate(quotation.getQuotationDate()), f)); // phrase4.add(new Phrase("\n" + (quotation.getClient().getReference() == null ? "-" : quotation.getClient().getReference()), f)); // phrase4.add(new Phrase("\nMEDDEV1", f)); // phrase4.add(new Phrase("\n" + DateFormatter.formatMonthDate(quotation.calculateExpiryDate()), f)); PdfPCell cell1 = new PdfPCell(phrase1); cell1.setBorder(0); PdfPCell cell2 = new PdfPCell(phrase2); cell2.setBorder(0); PdfPCell cell3 = new PdfPCell(phrase3); cell3.setBorder(0); PdfPCell cell4 = new PdfPCell(phrase4); cell4.setBorder(0); table.addCell(cell1); table.addCell(cell2); table.addCell(cell3); table.addCell(cell4); phrase.add(table); // create gray line separator Chunk lineSeparator = new Chunk(new LineSeparator(1, 100, Color.GRAY, Element.ALIGN_CENTER, -2)); phrase.add(lineSeparator); // Customer Information Block table = new PdfPTable(3); table.setWidthPercentage(100); table.setWidths(new int[] { 5, 2, 3 }); // Phrase phrase11 = new Phrase(); // phrase11.add(new Phrase(quotation.getClient().getCompany().toUpperCase() + "(CLIENT)", fontBold)); // if (quotation.getClient().getVatRegNo() != null && quotation.getClient().getVatRegNo().trim().length() > 0) { // phrase11.add(new Phrase("\nCustomer VAT No: ", fontBold)); // phrase11.add(new Phrase(quotation.getClient().getVatRegNo(), f)); // } // if (quotation.getClient().getResAddress1() != null && quotation.getClient().getResAddress1().trim().length() > 0) { // phrase11.add(new Phrase("\n" + quotation.getClient().getResAddress1(), f)); // } // if (quotation.getClient().getResAddress2() != null && quotation.getClient().getResAddress2().trim().length() > 0) { // phrase11.add(new Phrase("\n" + quotation.getClient().getResAddress2(), f)); // } // if (quotation.getClient().getResCity() != null && quotation.getClient().getResCity().trim().length() > 0) { // phrase11.add(new Phrase("\n" + quotation.getClient().getResCity(), f)); // } // if (quotation.getClient().getPhone() != null && quotation.getClient().getPhone().trim().length() > 0) { // phrase11.add(new Phrase("\nTel: " + quotation.getClient().getPhone(), f)); // } //PdfPCell cell11 = new PdfPCell(phrase11); //cell11.setBorder(0); phrase2 = new Phrase(); phrase2.add(new Phrase("CURRENCY: ", fontBold)); PdfPCell cell12 = new PdfPCell(phrase2); cell12.setBorder(0); phrase3 = new Phrase(); //phrase3.add(new Phrase(quotation.getClient().getCurrencyCode(), f)); PdfPCell cell13 = new PdfPCell(phrase3); cell13.setBorder(0); // table.addCell(cell11); table.addCell(cell12); table.addCell(cell13); phrase.add(table); // create gray line separator phrase.add("\n"); document.add(phrase); String footerImagePath = LogoPathFinder.getPath(servletContext, "footer-image"); Image footerImage = Image.getInstance(footerImagePath); footerImage.scaleToFit(90, 50); footerImage.setAbsolutePosition((PageSize.A4.getWidth() - (footerImage.getScaledWidth() + 40)), (PageSize.A4.getHeight() - (PageSize.A4.getHeight() - (footerImage.getScaledHeight() - 10)))); document.add(footerImage); }
From source file:za.co.equalpay.web.utils.PDFExportUtility.java
public void postProcess() throws MalformedURLException, IOException, DocumentException { // document.open(); ////from w ww . ja va 2 s . c om // ByteArrayOutputStream baos = new ByteArrayOutputStream(); // PdfWriter writer = PdfWriter.getInstance(document, baos); // // writer.open(); // PdfContentByte cb = writer.getDirectContent(); // cb.addImage(image); ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext() .getContext(); String fontPath = LogoPathFinder.getFontPath(servletContext, "Tahoma"); BaseFont bf = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, true); Font tahoma = new Font(bf, 16, Font.BOLDITALIC); tahoma.setColor(Color.GRAY); Font boldFont8 = new Font(bf, 8, Font.BOLD, Color.GRAY); Font normalFont8 = new Font(bf, 8, Font.NORMAL, Color.GRAY); Font boldFont10 = new Font(bf, 10, Font.BOLDITALIC, Color.GRAY); Font normalFont10 = new Font(bf, 10, Font.ITALIC, Color.GRAY); phrase = new Phrase(); phrase.add(new Phrase("Exclusive Distributors of ", normalFont10)); phrase.add(new Phrase("SAM Medical, CONTERRA, TACMED Solutions ", boldFont10)); phrase.add(new Phrase("and ", normalFont10)); phrase.add(new Phrase("NARP ", boldFont10)); phrase.add(new Phrase("in South Africa.", normalFont10)); Paragraph paragraph = new Paragraph(phrase); paragraph.setAlignment(Paragraph.ALIGN_CENTER); document.add(paragraph); PdfPTable table = new PdfPTable(1); table.setWidthPercentage(100); // Terms & Conditions phrase = new Phrase(); phrase.add(new Phrase("\n\n\n")); phrase.add(new Phrase("Terms and Conditions: ", boldFont8)); phrase.add(new Phrase("\n")); phrase.add(new Phrase( "\n1. Full Payment in Advance, unless arranged otherwise. Orders will only be processed once payment reflects in our Bank Account.", normalFont8)); phrase.add(new Phrase("\n2. Prices are net.", normalFont8)); phrase.add(new Phrase("\n3. Delivery will be ex stock, alternatively 4 6 weeks from date of order.", normalFont8)); phrase.add( new Phrase("\n4. Shipping Lead Time will depend on clients mode of Transport.", normalFont8)); phrase.add(new Phrase("\n5. Prices and Supply of Goods are Subject to availability of stock.", normalFont8)); phrase.add(new Phrase("\n6. Prices are subject to exchange rate and brand.", normalFont8)); phrase.add(new Phrase("\n7. Quotation is valid for 30 Days", boldFont8)); phrase.add(new Phrase( "\n8. All capital equipment carries a one year guarantee against defective material and workmanship", normalFont8)); phrase.add(new Phrase("\n9. E & OA accepted.", normalFont8)); phrase.add(new Phrase("\n10. Excluding Postage, Packaging or Freight Forwarding to relevant Country.", normalFont8)); PdfPCell cell = new PdfPCell(phrase); cell.setBorder(0); table.addCell(cell); document.add(table); }