List of usage examples for com.lowagie.text.pdf PdfWriter getDirectContent
public PdfContentByte getDirectContent()
From source file:org.mapfish.print.TotalPageNum.java
License:Open Source License
public TotalPageNum(PdfWriter writer, Font font) { dc = writer.getDirectContent(); totalPageNumFont = font.getCalculatedBaseFont(false); totalPageNumFontSize = font.getSize(); }
From source file:org.nabucco.framework.template.impl.service.pdf.util.MergePdfUtil.java
License:Open Source License
public static void concatPDFs(List<InputStream> streamOfPDFFiles, OutputStream outputStream, boolean paginate) { Document document = new Document(); try {//from w w w .jav a 2s . c om List<InputStream> pdfs = streamOfPDFFiles; List<PdfReader> readers = new ArrayList<PdfReader>(); int totalPages = 0; Iterator<InputStream> iteratorPDFs = pdfs.iterator(); // Create Readers for the pdfs. while (iteratorPDFs.hasNext()) { InputStream pdf = iteratorPDFs.next(); PdfReader pdfReader = new PdfReader(pdf); readers.add(pdfReader); totalPages += pdfReader.getNumberOfPages(); } // Create a writer for the outputstream PdfWriter writer = PdfWriter.getInstance(document, outputStream); document.open(); PdfContentByte cb = writer.getDirectContent(); // Holds the PDF // data PdfImportedPage page; int currentPageNumber = 0; int pageOfCurrentReaderPDF = 0; Iterator<PdfReader> iteratorPDFReader = readers.iterator(); // Loop through the PDF files and add to the output. while (iteratorPDFReader.hasNext()) { PdfReader pdfReader = iteratorPDFReader.next(); // Create a new page in the target for each source page. while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) { document.newPage(); pageOfCurrentReaderPDF++; currentPageNumber++; page = writer.getImportedPage(pdfReader, pageOfCurrentReaderPDF); cb.addTemplate(page, 0, 0); } pageOfCurrentReaderPDF = 0; } outputStream.flush(); document.close(); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (document.isOpen()) document.close(); try { if (outputStream != null) outputStream.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } }
From source file:org.openconcerto.erp.core.finance.accounting.report.PdfGenerator.java
License:Open Source License
private void init() throws FileNotFoundException { // we create a reader for a certain document PdfReader reader = null;/* w ww. ja v a2s . c om*/ PdfWriter writer = null; try { reader = new PdfReader(getStreamStatic(this.fileNameIn)); // we retrieve the total number of pages int n = reader.getNumberOfPages(); // we retrieve the size of the first page Rectangle psize = reader.getPageSize(1); psize.setRight(psize.getRight() - this.templateOffsetX); psize.setTop(psize.getTop() - this.templateOffsetY); this.width = (int) psize.getWidth(); float height = psize.getHeight(); // step 1: creation of a document-object int MARGIN = 32; this.document = new Document(psize, MARGIN, MARGIN, MARGIN, MARGIN); // step 2: we create a writer that listens to the document if (!this.directoryOut.exists()) { this.directoryOut.mkdirs(); } System.err.println("Directory out " + this.directoryOut.getAbsolutePath()); File f = new File(this.directoryOut, this.fileNameOut); if (f.exists()) { f.renameTo(new File(this.directoryOut, "Old" + this.fileNameOut)); f = new File(this.directoryOut, this.fileNameOut); } System.err.println("Creation du fichier " + f.getAbsolutePath()); writer = PdfWriter.getInstance(this.document, new FileOutputStream(f)); this.document.open(); // step 4: we add content this.cb = writer.getDirectContent(); System.out.println("There are " + n + " pages in the document."); this.document.newPage(); PdfImportedPage page1 = writer.getImportedPage(reader, 1); this.cb.addTemplate(page1, -this.templateOffsetX, -this.templateOffsetY); this.bf = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.EMBEDDED); this.bfb = BaseFont.createFont(BaseFont.TIMES_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED); } catch (FileNotFoundException fE) { throw fE; } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } finally { if (reader != null) { reader.close(); } } }
From source file:org.openconcerto.erp.generationDoc.SheetUtils.java
License:Open Source License
public static void convert2PDF(final OpenDocument doc, final File pdfFileToCreate) throws Exception { assert (!SwingUtilities.isEventDispatchThread()); // Open the PDF document Document document = new Document(PageSize.A4, 50, 50, 50, 50); try {/*from w w w.java2 s . co m*/ FileOutputStream fileOutputStream = new FileOutputStream(pdfFileToCreate); // Create the writer PdfWriter writer = PdfWriter.getInstance(document, fileOutputStream); writer.setPdfVersion(PdfWriter.VERSION_1_6); writer.setFullCompression(); document.open(); PdfContentByte cb = writer.getDirectContent(); // Configure the renderer ODTRenderer renderer = new ODTRenderer(doc); renderer.setIgnoreMargins(false); renderer.setPaintMaxResolution(true); // Scale the renderer to fit width renderer.setResizeFactor(renderer.getPrintWidth() / document.getPageSize().getWidth()); // Print pages for (int i = 0; i < renderer.getPrintedPagesNumber(); i++) { Graphics2D g2 = cb.createGraphics(PageSize.A4.getWidth(), PageSize.A4.getHeight()); // If you want to prevent copy/paste, you can use // g2 = tp.createGraphicsShapes(w, h, true, 0.9f); // Render renderer.setCurrentPage(i); renderer.paintComponent(g2); g2.dispose(); // Add our spreadsheet in the middle of the page if (i < renderer.getPrintedPagesNumber() - 1) document.newPage(); } // Close the PDF document document.close(); // writer.close(); fileOutputStream.close(); } catch (Exception originalExn) { ExceptionHandler.handle("Impossible de crer le PDF " + pdfFileToCreate.getAbsolutePath(), originalExn); } }
From source file:org.openconcerto.erp.graph.GraphSamplePDF.java
License:Open Source License
/** * @param args/*from ww w.j a va2 s . c o m*/ * @throws DocumentException * @throws IOException */ public static void main(String[] args) throws DocumentException, IOException { // ChartPanel panel = new ChartPanel(c); FileOutputStream baos = new FileOutputStream(new File("OpenConcerto_Chart.pdf")); Document document = new Document(PageSize.A4); // PdfWriter writer = new PdfWriter(document, baos); PdfWriter writer = PdfWriter.getInstance(document, baos); document.open(); PdfContentByte cb = writer.getDirectContent(); System.out.println(document.getPageSize()); createPage1(document, cb); document.newPage(); createPage2(document, cb); document.close(); baos.close(); }
From source file:org.openscience.jmol.app.jmolpanel.PdfCreator.java
License:Open Source License
public String createPdfDocument(String fileName, Image image) { Document document = new Document(); File file = null;//w ww . j av a 2 s . co m try { int w = image.getWidth(null); int h = image.getHeight(null); file = new File(fileName); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file)); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfTemplate tp = cb.createTemplate(w, h); Graphics2D g2 = tp.createGraphics(w, h); g2.setStroke(new BasicStroke(0.1f)); tp.setWidth(w); tp.setHeight(h); g2.drawImage(image, 0, 0, w, h, 0, 0, w, h, null); g2.dispose(); cb.addTemplate(tp, 72, 720 - h); } catch (DocumentException de) { return de.getMessage(); } catch (IOException ioe) { return ioe.getMessage(); } document.close(); return null; }
From source file:org.opentestsystem.delivery.testreg.rest.view.PdfReportPageEventHelper.java
License:Open Source License
public PdfReportPageEventHelper(final PdfWriter writer) { template = writer.getDirectContent().createTemplate(100, 100); template.setBoundingBox(new Rectangle(-20, -20, 100, 100)); try {//from w ww . j av a 2s.co m helv = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1257, BaseFont.NOT_EMBEDDED); } catch (Exception e) { throw new ExceptionConverter(e); } }
From source file:org.opentestsystem.delivery.testreg.rest.view.PdfReportPageEventHelper.java
License:Open Source License
@Override public void onEndPage(final PdfWriter writer, final Document document) { PdfContentByte cb = writer.getDirectContent(); if (document.getPageNumber() == 1) { ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, new Phrase(""), (document.right() - document.left()) / 2 + document.leftMargin(), document.top() - 5, 0f); }//www . jav a2s.c om ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase(""), document.left(), document.bottom() - 15, 0f); int pageN = writer.getPageNumber(); String text = "Page " + pageN + " of "; cb.beginText(); cb.setFontAndSize(helv, 11); cb.setTextMatrix(document.right() - document.rightMargin() - 10, document.bottom() - 15); cb.showText(text); cb.endText(); cb.addTemplate(template, document.right(), document.bottom() - 15); }
From source file:org.oscarehr.casemgmt.service.CaseManagementPrintPdf.java
License:Open Source License
public void printDocHeaderFooter() throws IOException, DocumentException { //Create the document we are going to write to document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, os); writer.setPageEvent(new EndPage()); document.setPageSize(PageSize.LETTER); document.open();/*from ww w . j a v a 2 s.c o m*/ //Create the font we are going to print to bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); font = new Font(bf, FONTSIZE, Font.NORMAL); String title = "", gender = "", dob = "", age = "", mrp = ""; if (this.demoDtl != null) { //set up document title and header ResourceBundle propResource = ResourceBundle.getBundle("oscarResources"); title = propResource.getString("oscarEncounter.pdfPrint.title") + " " + (String) demoDtl.get("demoName") + "\n"; gender = propResource.getString("oscarEncounter.pdfPrint.gender") + " " + (String) demoDtl.get("demoSex") + "\n"; dob = propResource.getString("oscarEncounter.pdfPrint.dob") + " " + (String) demoDtl.get("demoDOB") + "\n"; age = propResource.getString("oscarEncounter.pdfPrint.age") + " " + (String) demoDtl.get("demoAge") + "\n"; mrp = propResource.getString("oscarEncounter.pdfPrint.mrp") + " " + (String) demoDtl.get("mrp") + "\n"; } else { //set up document title and header ResourceBundle propResource = ResourceBundle.getBundle("oscarResources"); title = propResource.getString("oscarEncounter.pdfPrint.title") + " " + (String) request.getAttribute("demoName") + "\n"; gender = propResource.getString("oscarEncounter.pdfPrint.gender") + " " + (String) request.getAttribute("demoSex") + "\n"; dob = propResource.getString("oscarEncounter.pdfPrint.dob") + " " + (String) request.getAttribute("demoDOB") + "\n"; age = propResource.getString("oscarEncounter.pdfPrint.age") + " " + (String) request.getAttribute("demoAge") + "\n"; mrp = propResource.getString("oscarEncounter.pdfPrint.mrp") + " " + (String) request.getAttribute("mrp") + "\n"; } String[] info = new String[] { title, gender, dob, age, mrp }; ClinicData clinicData = new ClinicData(); clinicData.refreshClinicData(); String[] clinic = new String[] { clinicData.getClinicName(), clinicData.getClinicAddress(), clinicData.getClinicCity() + ", " + clinicData.getClinicProvince(), clinicData.getClinicPostal(), clinicData.getClinicPhone(), "Fax: " + clinicData.getClinicFax() }; //Header will be printed at top of every page beginning with p2 Phrase headerPhrase = new Phrase(LEADING, title, font); HeaderFooter header = new HeaderFooter(headerPhrase, false); header.setAlignment(HeaderFooter.ALIGN_CENTER); document.setHeader(header); //Write title with top and bottom borders on p1 cb = writer.getDirectContent(); cb.setColorStroke(new Color(0, 0, 0)); cb.setLineWidth(0.5f); cb.moveTo(document.left(), document.top()); cb.lineTo(document.right(), document.top()); cb.stroke(); //cb.setFontAndSize(bf, FONTSIZE); upperYcoord = document.top() - (font.getCalculatedLeading(LINESPACING) * 2f); ColumnText ct = new ColumnText(cb); Paragraph p = new Paragraph(); p.setAlignment(Paragraph.ALIGN_LEFT); Phrase phrase = new Phrase(); Phrase dummy = new Phrase(); for (int idx = 0; idx < clinic.length; ++idx) { phrase.add(clinic[idx] + "\n"); dummy.add("\n"); upperYcoord -= phrase.getLeading(); } dummy.add("\n"); ct.setSimpleColumn(document.left(), upperYcoord, document.right() / 2f, document.top()); ct.addElement(phrase); ct.go(); p.add(dummy); document.add(p); //add patient info phrase = new Phrase(); p = new Paragraph(); p.setAlignment(Paragraph.ALIGN_RIGHT); for (int idx = 0; idx < info.length; ++idx) { phrase.add(info[idx]); } ct.setSimpleColumn(document.right() / 2f, upperYcoord, document.right(), document.top()); p.add(phrase); ct.addElement(p); ct.go(); cb.moveTo(document.left(), upperYcoord); cb.lineTo(document.right(), upperYcoord); cb.stroke(); upperYcoord -= phrase.getLeading(); if (Boolean.parseBoolean(OscarProperties.getInstance().getProperty("ICFHT_CONVERT_TO_PDF", "false"))) { printPersonalInfo(); } }
From source file:org.oscarehr.casemgmt.service.PageNumberStamper.java
License:Open Source License
public void onEndPage(PdfWriter writer, Document document) { PdfContentByte cb = writer.getDirectContent(); cb.saveState();/*w w w. j av a 2 s. c o m*/ String text = "Page " + writer.getPageNumber() + " of "; // height where text starts float textBase = document.bottom() - getBaseOffset(); float textSize = getFont().getWidthPoint(text, getFontSize()); float width = document.getPageSize().getWidth(); float center = width / 2.0f; cb.beginText(); cb.setFontAndSize(getFont(), getFontSize()); cb.setTextMatrix(document.left(), textBase); cb.showTextAligned(PdfContentByte.ALIGN_CENTER, text, center, textBase, 0); cb.endText(); cb.addTemplate(total, center + (textSize / 2.0f), textBase); cb.restoreState(); }