List of usage examples for org.apache.pdfbox.pdmodel PDDocument PDDocument
public PDDocument()
From source file:de.redsix.pdfcompare.CompareResult.java
License:Apache License
/** * Write the result Pdf to a file. Warning: This will remove the diffImages from memory! * Writing can only be done once.// w w w . j a v a 2s . c o m * * @param filename without pdf-Extension * @return a boolean indicating, whether the comparison is equal. When true, the files are equal. */ public boolean writeTo(String filename) { if (!hasImages()) { return isEqual; } try (PDDocument document = new PDDocument()) { addImagesToDocument(document); document.save(filename + ".pdf"); } catch (IOException e) { throw new RuntimeException(e); } return isEqual; }
From source file:de.rototor.pdfbox.graphics2d.PdfBoxGraphics2DTestBase.java
License:Apache License
@SuppressWarnings("SpellCheckingInspection") void exportGraphic(String dir, String name, GraphicsExporter exporter) { try {// www . ja v a2s . c om PDDocument document = new PDDocument(); PDFont pdArial = PDFontFactory.createDefaultFont(); File parentDir = new File("target/test/" + dir); // noinspection ResultOfMethodCallIgnored parentDir.mkdirs(); BufferedImage image = new BufferedImage(400, 400, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D imageGraphics = image.createGraphics(); exporter.draw(imageGraphics); imageGraphics.dispose(); ImageIO.write(image, "PNG", new File(parentDir, name + ".png")); for (Mode m : Mode.values()) { PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400); PdfBoxGraphics2DFontTextDrawer fontTextDrawer = null; contentStream.beginText(); contentStream.setStrokingColor(0, 0, 0); contentStream.setNonStrokingColor(0, 0, 0); contentStream.setFont(PDType1Font.HELVETICA_BOLD, 15); contentStream.setTextMatrix(Matrix.getTranslateInstance(10, 800)); contentStream.showText("Mode " + m); contentStream.endText(); switch (m) { case FontTextIfPossible: fontTextDrawer = new PdfBoxGraphics2DFontTextDrawer(); registerFots(fontTextDrawer); break; case DefaultFontText: { fontTextDrawer = new PdfBoxGraphics2DFontTextDrawerDefaultFonts(); registerFots(fontTextDrawer); break; } case ForceFontText: fontTextDrawer = new PdfBoxGraphics2DFontTextForcedDrawer(); registerFots(fontTextDrawer); fontTextDrawer.registerFont("Arial", pdArial); break; case DefaultVectorized: default: break; } if (fontTextDrawer != null) { pdfBoxGraphics2D.setFontTextDrawer(fontTextDrawer); } exporter.draw(pdfBoxGraphics2D); pdfBoxGraphics2D.dispose(); PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject(); Matrix matrix = new Matrix(); matrix.translate(0, 20); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); matrix.scale(1.5f, 1.5f); matrix.translate(0, 100); contentStream.transform(matrix); contentStream.drawForm(appearanceStream); contentStream.close(); } document.save(new File(parentDir, name + ".pdf")); document.close(); } catch (Exception e) { throw new RuntimeException(e); } }
From source file:de.schneefisch.fruas.transactions.BillPDFCreator.java
public void createPDF() { String filename = "Rechnung-" + bill.getId() + ".pdf"; try {/* www .j av a2 s .c o m*/ PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream content = new PDPageContentStream(doc, page); content.beginText(); content.setFont(PDType1Font.HELVETICA, 14); content.newLineAtOffset(70, 750); content.showText("Schneefisch GmbH"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 13); content.newLineAtOffset(70, 725); content.showText("Nibelungenplatz 1"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 14); content.newLineAtOffset(70, 700); content.showText("D-60318 Frankfurt am Main"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 640); content.showText(fiCustomer.getName()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 620); content.showText("Rechnungsprfung"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 600); content.showText(location.getStreet() + " " + location.getHouseNumber()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 580); content.showText(location.getPostalCode() + " " + location.getCity()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 540); content.showText("Rechnung " + bill.getId() + " fuer KN " + fiCustomer.getId()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 520); content.showText("Sehr geehrte Damen und Herren, "); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 500); content.showText("hiermit erlauben wir uns fr unsere Lieferung Nr. " + deliveryNote.getId() + " vom " + deliveryNote.getDate()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 485); content.showText("folgenden Betrag in Rechnung zu stellen:"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(75, 470); content.showText("POS"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, 470); content.showText("Bezeichnung"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(440, 470); content.showText("Preis"); content.endText(); int count = 1; float yoffset = 460; for (DeliveryNotePosition dnp : deliveryNotePositions) { LicenseDAO licDAO = new LicenseDAO(); License license = licDAO.selectLicenseById(dnp.getLicenseId()); ProductDAO pDAO = new ProductDAO(); Product product = pDAO.searchProductById(license.getProductId()); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(75, yoffset); content.showText(Integer.toString(count)); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset); content.showText(product.getName()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset - 20); content.showText("Lizenz: " + license.getId() + " von " + license.getSoldDate() + " bis " + license.getEndDate() + "."); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(440, yoffset - 20); content.showText("Eur " + product.getPrice() * ((100 - license.getDiscount()) / 100)); content.endText(); if (license.getMaintenanceId() == 0) { content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset - 40); content.showText("Ohne Maintenance-Vertrag."); content.endText(); } else { MaintenanceDAO mDAO = new MaintenanceDAO(); Maintenance maintenance = mDAO.searchMaintenanceById(license.getMaintenanceId()); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset - 40); content.showText("Mit " + maintenance.getInfo() + " als Maintenance-Vertrag."); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(440, yoffset - 40); content.showText("Eur " + maintenance.getPrice()); content.endText(); } count++; yoffset -= 100; } content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Summe "); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(440, yoffset); content.showText(String.valueOf("EUR " + bill.getPrice())); content.endText(); yoffset -= 20; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("USt. 19%"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(440, yoffset); double ust = (bill.getPrice() * 0.19); content.showText(String.valueOf("EUR " + ust)); content.endText(); yoffset -= 20; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Gesamtsumme"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(440, yoffset); double priceTotal = bill.getPrice() + ust; content.showText(String.valueOf("EUR " + priceTotal)); content.endText(); yoffset -= 40; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Wir bitten Sie, den Gesamtbetrag von EUR " + priceTotal + " auf unser Konto 123456,"); content.endText(); yoffset -= 20; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("bei der Bank Unserort, BLZ4321, IBAN123 zu berweisen. Zahlungsziel: 30 Tage netto."); content.endText(); yoffset -= 25; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Mit freundlichen Gruessen"); content.endText(); yoffset -= 20; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Schneefisch GmbH"); content.endText(); content.close(); doc.save(filename); doc.close(); System.out.println(filename + " erstellt in: " + System.getProperty("user.dir")); } catch (IOException e) { System.out.println(e.getMessage()); } catch (SQLException e) { e.printStackTrace(); } }
From source file:de.schneefisch.fruas.transactions.DeliveryNotePDFCreator.java
public void createPDF() { String filename = "Lieferschein-" + deliveryNote.getId() + ".pdf"; try {/*from w w w . j a v a 2 s . c o m*/ PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream content = new PDPageContentStream(doc, page); content.beginText(); content.setFont(PDType1Font.HELVETICA, 14); content.newLineAtOffset(70, 750); content.showText("Schneefisch GmbH"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 13); content.newLineAtOffset(70, 725); content.showText("Nibelungenplatz 1"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 14); content.newLineAtOffset(70, 700); content.showText("D-60318 Frankfurt am Main"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 640); content.showText(fiCustomer.getName()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 620); content.showText("Wareneingang"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 600); content.showText(location.getStreet() + " " + location.getHouseNumber()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, 580); content.showText(location.getPostalCode() + " " + location.getCity()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(300, 540); content.showText("Lieferschein " + deliveryNote.getId() + " fuer KN " + fiCustomer.getId()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(75, 500); content.showText("POS"); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, 500); content.showText("Bezeichnung"); content.endText(); int count = 1; float yoffset = 460; for (DeliveryNotePosition dnp : deliveryNotePositions) { LicenseDAO licDAO = new LicenseDAO(); License license = licDAO.selectLicenseById(dnp.getLicenseId()); ProductDAO pDAO = new ProductDAO(); Product product = pDAO.searchProductById(license.getProductId()); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(75, yoffset); content.showText(Integer.toString(count)); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset); content.showText(product.getName()); content.endText(); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset - 20); content.showText("Lizenz: " + license.getId() + " von " + license.getSoldDate() + " bis " + license.getEndDate() + "."); content.endText(); if (license.getMaintenanceId() == 0) { content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset - 40); content.showText("Ohne Maintenance-Vertrag."); content.endText(); } else { MaintenanceDAO mDAO = new MaintenanceDAO(); Maintenance maintenance = mDAO.searchMaintenanceById(license.getMaintenanceId()); content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(120, yoffset - 40); content.showText("Mit " + maintenance.getInfo() + " als Maintenance-Vertrag."); content.endText(); } count++; yoffset -= 100; } content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Rechnungslegung erfolgt separat."); content.endText(); yoffset -= 20; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Das Produkt bleibt bis zur vollstndigen Bezahlung unser Eigentum."); content.endText(); yoffset -= 20; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Mit freundlichen Gruessen"); content.endText(); yoffset -= 20; content.beginText(); content.setFont(PDType1Font.HELVETICA, 12); content.newLineAtOffset(70, yoffset); content.showText("Schneefisch GmbH"); content.endText(); content.close(); doc.save(filename); doc.close(); System.out.println(filename + " erstellt in: " + System.getProperty("user.dir")); } catch (IOException e) { System.out.println(e.getMessage()); } catch (SQLException e) { e.printStackTrace(); } }
From source file:de.thb.ue.backend.util.PDFGeneration.java
License:Apache License
public static void createQRCPDF(List<BufferedImage> tickets, String evaluationUID, String subject, SemesterType semesterType, int year, File workingDirectory) { PDDocument document = new PDDocument(); PDPage page = new PDPage(); // PDRectangle rectangle = new PDRectangle(page.findCropBox().getWidth(), 500); // page.setCropBox(rectangle); document.addPage(page);/* w ww.jav a2s.c om*/ PDXObjectImage pdImage; try { PDPageContentStream contentStream = new PDPageContentStream(document, page); int x = 0; // start from top of page instead of bottom // somehow the first row gets swallowed -> start with second row instead int y = (int) page.findCropBox().getHeight() - (new PDJpeg(document, tickets.get(0))).getHeight(); int imageHeight; int imageWidth; String qrCodePurpose = "Evaluation QR-Codes fr das Fach " + subject + " im " + (semesterType == SemesterType.WINTER ? "Winter" : "Sommer") + "semester " + Integer.toString(year); PDFont font = PDType1Font.HELVETICA; int fontSize = 13; // center text horizontally float textWidth = font.getStringWidth(qrCodePurpose) / 1000 * fontSize; int textX = (int) ((page.findCropBox().getWidth() / 2) - (textWidth / 2)); // add QR-Codes for (int i = 0; i < tickets.size(); i++) { pdImage = new PDJpeg(document, tickets.get(i)); imageHeight = pdImage.getHeight(); imageWidth = pdImage.getWidth(); if ((imageWidth + x) > page.findCropBox().getWidth()) { x = 0; y -= imageHeight; } if (y <= 0) { writeText(contentStream, page, qrCodePurpose, imageHeight, textX, (y + imageHeight) - (imageHeight / 4), fontSize, font); page = new PDPage(); document.addPage(page); contentStream.close(); contentStream = new PDPageContentStream(document, page); y = (int) page.findCropBox().getHeight() - pdImage.getHeight(); x = 0; } contentStream.drawImage(pdImage, x, y); if (i + 1 >= tickets.size()) { writeText(contentStream, page, qrCodePurpose, imageHeight, textX, y - 20, fontSize, font); } x += imageWidth; } /*PDDocumentCatalog catalog = document.getDocumentCatalog(); catalog.getAcroForm().setXFA(null);*/ contentStream.close(); if (!workingDirectory.exists()) { workingDirectory.mkdir(); } File outputFile = new File(workingDirectory, "qrcodes.pdf"); document.save(outputFile); } catch (IOException | COSVisitorException e) { e.printStackTrace(); } finally { try { document.close(); } catch (IOException e) { e.printStackTrace(); } } }
From source file:de.uzk.hki.da.convert.PdfService.java
License:Open Source License
/** * Generates a new PDF which only contains certainPages of the original document. * Users can choose if they wish to reduce to a number of pages (beginning from the first page) * or to a certain set of pages. Both options can be used at the same time. * By setting one of the parameters to either "" or null any of the options the according * option will not be used./*from ww w. j a va 2 s .c o m*/ * * @param numberOfPagesText null or empty if unused or "n" (e.g. "2" for two pages from the beginning of the document). * @param certainPagesText white space separated list of numbers that mark pages which should be part of the target document. * * @throws IOException * @author Jens Peters * @author Sebastian Cuy * @author Daniel M. de Oliveira */ public void reduceToCertainPages(String numberOfPagesText, String certainPagesText) throws IOException { PDDocument srcPdf = null; PDDocument targetPdf = null; if (srcPdfFile == null) throw new IllegalStateException("srcFile not set"); srcPdf = PDDocument.load(srcPdfFile); targetPdf = new PDDocument(); @SuppressWarnings("rawtypes") List srcPages = srcPdf.getDocumentCatalog().getAllPages(); int numberOfPages = 0; if (numberOfPagesText != null && !numberOfPagesText.isEmpty()) { numberOfPages = Integer.parseInt(numberOfPagesText); for (int i = 0; i < Math.min(numberOfPages, srcPages.size()); i++) targetPdf.addPage((PDPage) srcPages.get(i)); } if (StringUtilities.isNotSet(numberOfPagesText) && StringUtilities.isNotSet(certainPagesText)) { for (int i = 0; i < srcPages.size(); i++) targetPdf.addPage((PDPage) srcPages.get(i)); } if (certainPagesText != null && !certainPagesText.isEmpty()) { String[] certainPagesTexts = certainPagesText.split(" "); int[] certainPages = new int[certainPagesTexts.length]; for (int i = 0; i < certainPagesTexts.length; i++) { certainPages[i] = Integer.parseInt(certainPagesTexts[i]); } Arrays.sort(certainPages); for (int i = 0; i < certainPages.length; i++) { if (certainPages[i] > numberOfPages && srcPages.size() > certainPages[i] - 1) targetPdf.addPage((PDPage) srcPages.get(certainPages[i] - 1)); } } try { targetPdf.save(targetPdfFile); } catch (Exception e) { throw new RuntimeException("Unable to create PDF!", e); } finally { targetPdf.close(); srcPdf.close(); } }
From source file:de.uzk.hki.da.format.PdfService.java
License:Open Source License
/** * Generates a new PDF which only contains certainPages of the original document. * Users can choose if they wish to reduce to a number of pages (beginning from the first page) * or to a certain set of pages. Both options can be used at the same time. * By setting one of the parameters to either "" or null any of the options the according * option will not be used./*from w w w . java2 s .co m*/ * * @param numberOfPagesText null or empty if unused or "n" (e.g. "2" for two pages from the beginning of the document). * @param certainPagesText white space separated list of numbers that mark pages which should be part of the target document. * * @throws IOException * @author Jens Peters * @author Sebastian Cuy * @author Daniel M. de Oliveira */ public void reduceToCertainPages(String numberOfPagesText, String certainPagesText) throws IOException { PDDocument srcPdf = null; PDDocument targetPdf = null; if (srcPdfFile == null) throw new IllegalStateException("srcFile not set"); srcPdf = PDDocument.load(srcPdfFile); targetPdf = new PDDocument(); @SuppressWarnings("rawtypes") List srcPages = srcPdf.getDocumentCatalog().getAllPages(); int numberOfPages = 0; if (numberOfPagesText != null && !numberOfPagesText.isEmpty()) { numberOfPages = Integer.parseInt(numberOfPagesText); for (int i = 0; i < Math.min(numberOfPages, srcPages.size()); i++) targetPdf.addPage((PDPage) srcPages.get(i)); } if (certainPagesText != null && !certainPagesText.isEmpty()) { String[] certainPagesTexts = certainPagesText.split(" "); int[] certainPages = new int[certainPagesTexts.length]; for (int i = 0; i < certainPagesTexts.length; i++) { certainPages[i] = Integer.parseInt(certainPagesTexts[i]); } Arrays.sort(certainPages); for (int i = 0; i < certainPages.length; i++) { if (certainPages[i] > numberOfPages && srcPages.size() > certainPages[i] - 1) targetPdf.addPage((PDPage) srcPages.get(certainPages[i] - 1)); } } try { targetPdf.save(targetPdfFile); } catch (Exception e) { throw new RuntimeException("Unable to create PDF!", e); } finally { targetPdf.close(); } }
From source file:diagramextractor.DiagramExtractor.java
/** * @param args the command line arguments *//*from w ww . j ava 2 s. c o m*/ public static void main(String[] args) throws IOException, COSVisitorException { if (args.length < 2) { showHelp(); System.exit(-1); } List<Integer> diagramOptionsList = new LinkedList<>(); diagramOptionsList = parseOptions(args); List<String> diagramNameList = new LinkedList<>(); diagramNameList = getDiagramNames(diagramOptionsList); File inputDir = new File(args[0]); File[] reports = inputDir.listFiles(); String diagramName = args[1]; PDDocument outputDocument = new PDDocument(); PDFMergerUtility merger = new PDFMergerUtility(); merger.setDestinationFileName("output.pdf"); for (File report : reports) { PDDocument doc = PDDocument.load(report); System.out.println("LOADED FILE: " + report.getName()); int pageNumber = 0; System.out.println("NUMBER OF PAGES: " + doc.getNumberOfPages()); for (int i = 0; i <= doc.getNumberOfPages(); i++) { PDFTextStripper stripper = new PDFTextStripper(); stripper.setStartPage(i); stripper.setEndPage(i); String contents = stripper.getText(doc); boolean containsDiagram = false; for (String diagram : diagramNameList) { if (contents.contains(diagram)) { containsDiagram = true; } } if (containsDiagram && !contents.contains("Table of Contents") && !contents.contains("Table of Figures") && !contents.contains("Obsah") && !contents.contains("Tabulka ?sel")) { pageNumber = i; System.out.println("Diagram found on page: " + pageNumber); PageExtractor extractor = new PageExtractor(doc, pageNumber, pageNumber); PDDocument extractedPage = extractor.extract(); PDPage page = (PDPage) extractedPage.getDocumentCatalog().getAllPages().get(0); PDPageContentStream contentStream = new PDPageContentStream(extractedPage, page, true, true, true); contentStream.beginText(); contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12); contentStream.moveTextPositionByAmount(100, 50); contentStream.drawString(report.getName()); contentStream.endText(); contentStream.close(); merger.appendDocument(outputDocument, extractedPage); } } if (pageNumber == 0) { System.out.println("The diagram " + diagramName + " was not found in file " + report.getName()); } doc.close(); } merger.mergeDocuments(); System.out.println(); System.out.println("Diagrams have been merged."); String outputFileName = generateFilename(inputDir.getCanonicalPath(), "output.pdf"); outputDocument.save(outputFileName); outputDocument.close(); System.out.println("Output file saved as: " + outputFileName); }
From source file:domain.mediator.PDFGeneration.java
public static void printTodayPDF(List<Logbook> logbookList, Driver driver, Load load, GPSLocation currentLocation) throws IOException { Table logbookTable = LogbookList.drawLogbookTable(logbookList); File saveFile = new File("todayTable.pdf"); PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page);//from w w w. j a va2 s. c o m PDPageContentStream pageContentStream = new PDPageContentStream(document, page); float contentPositionX = 40; float contentPositionY = page.getMediaBox().getHeight() - 50; PDFGeneration.printHeaderAndDataTable(pageContentStream, contentPositionX, contentPositionY, driver, load, currentLocation, logbookTable); pageContentStream.close(); document.save(saveFile); document.close(); PDFGeneration.openFile(saveFile); }
From source file:domain.mediator.PDFGeneration.java
public static void printRecapPDF(List<Recap> recapList, Driver driver, Load load, GPSLocation currentLocation) throws IOException { Table recapTable = RecapList.drawRecapTable(recapList); File saveFile = new File("recapTable.pdf"); PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page);/*from w w w . j a va2s . co m*/ PDPageContentStream pageContentStream = new PDPageContentStream(document, page); float contentPositionX = 40; float contentPositionY = page.getMediaBox().getHeight() - 50; PDFGeneration.printHeaderAndDataTable(pageContentStream, contentPositionX, contentPositionY, driver, load, currentLocation, recapTable); pageContentStream.close(); document.save(saveFile); document.close(); PDFGeneration.openFile(saveFile); }