List of usage examples for com.itextpdf.text.pdf PdfReader close
public void close()
From source file:com.betel.flowers.pdf.util.RemoveBlankPageFromPDF.java
public static void removeBlankPdfPages(String source, String destination) throws IOException, DocumentException { PdfReader r = null; RandomAccessSourceFactory rasf = null; RandomAccessFileOrArray raf = null;/*from ww w . ja v a2 s. co m*/ Document document = null; PdfCopy writer = null; try { r = new PdfReader(source); // deprecated // RandomAccessFileOrArray raf // = new RandomAccessFileOrArray(pdfSourceFile); // itext 5.4.1 rasf = new RandomAccessSourceFactory(); raf = new RandomAccessFileOrArray(rasf.createBestSource(source)); document = new Document(r.getPageSizeWithRotation(1)); writer = new PdfCopy(document, new FileOutputStream(destination)); document.open(); PdfImportedPage page = null; for (int i = 1; i <= r.getNumberOfPages(); i++) { // first check, examine the resource dictionary for /Font or // /XObject keys. If either are present -> not blank. PdfDictionary pageDict = r.getPageN(i); PdfDictionary resDict = (PdfDictionary) pageDict.get(PdfName.RESOURCES); boolean noFontsOrImages = true; if (resDict != null) { noFontsOrImages = resDict.get(PdfName.FONT) == null && resDict.get(PdfName.XOBJECT) == null; } if (!noFontsOrImages) { byte bContent[] = r.getPageContent(i, raf); ByteArrayOutputStream bs = new ByteArrayOutputStream(); bs.write(bContent); if (bs.size() > BLANK_THRESHOLD) { page = writer.getImportedPage(r, i); writer.addPage(page); } } } } finally { if (document != null) { document.close(); } if (writer != null) { writer.close(); } if (raf != null) { raf.close(); } if (r != null) { r.close(); } } }
From source file:com.cib.statementstamper.windows.StatementStamperMainWindow.java
License:Open Source License
protected ByteArrayOutputStream doStamper(ByteArrayOutputStream baos) throws IOException, DocumentException { map.clear();//from w w w . ja va2 s . co m ByteArrayOutputStream baosFinal = new ByteArrayOutputStream(); PdfReader reader = new PdfReader(baos.toByteArray()); PdfContentStreamProcessor processor = new PdfContentStreamProcessor(this); for (int i = 1; i <= reader.getNumberOfPages(); i++) { actualPage = i; PdfDictionary pageDic = reader.getPageN(i); PdfDictionary resourcesDic = pageDic.getAsDict(PdfName.RESOURCES); processor.processContent(ContentByteUtils.getContentBytesForPage(reader, i), resourcesDic); } Document newDocument = new Document(PageSize.A4); PdfWriter writer = PdfWriter.getInstance(newDocument, baosFinal); newDocument.open(); PdfContentByte canvas = writer.getDirectContent(); // Font myFont = FontFactory.getFont(FontFactory.COURIER, 7, Font.BOLD); Iterator<Entry<Integer, Map<Float, StringBuffer>>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<Integer, Map<Float, StringBuffer>> pairs = (Map.Entry<Integer, Map<Float, StringBuffer>>) it .next(); Iterator<Entry<Float, StringBuffer>> iter = pairs.getValue().entrySet().iterator(); while (iter.hasNext()) { Map.Entry<Float, StringBuffer> actualEntry = iter.next(); canvas.beginText(); canvas.setFontAndSize(myFontBase, 7); canvas.showTextAligned(Element.ALIGN_LEFT, actualEntry.getValue().toString(), 25, actualEntry.getKey() + 60, 0); canvas.endText(); } newDocument.newPage(); } newDocument.close(); reader = new PdfReader(baosFinal.toByteArray()); PdfReaderContentParser parser = new PdfReaderContentParser(reader); TextMarginFinder finder; for (int i = 1; i <= reader.getNumberOfPages(); i++) { finder = parser.processContent(i, new TextMarginFinder()); if (finder.getLly() <= 68) { getWindow().showNotification("Hiba", "A(z) " + i + ".ik oldalon tl sok a szveg !!!", Notification.TYPE_ERROR_MESSAGE); return null; } } reader = new PdfReader(baosFinal.toByteArray()); PdfStamper stamper = new PdfStamper(reader, baosFinal); int n = reader.getNumberOfPages(); for (int i = 1; i <= n; i++) { PdfContentByte overContent = stamper.getOverContent(i); overContent.addImage(logo, 131, 0, 0, 32, 44, 775); getFooterTable(i, n).writeSelectedRows(0, -1, 27, 68, stamper.getOverContent(i)); // ez a jo getIspLogoTable(i, n).writeSelectedRows(0, -1, 425, 45, stamper.getOverContent(i)); } stamper.close(); reader.close(); return baosFinal; }
From source file:com.cts.ptms.carrier.ups.UPSHTTPClient.java
public String createInvoicePDF(String imagePath, String OUTPUT_FILEPATH) throws FileNotFoundException, IOException, DocumentException, InterruptedException, URISyntaxException { float currPosition = 0; String sFilepath = OUTPUT_FILEPATH; Image image = Image.getInstance(imagePath); //create a paragraph Paragraph paragraph = new Paragraph(); Document d = new Document(PageSize.A4_LANDSCAPE.rotate()); PdfWriter w = PdfWriter.getInstance(d, new FileOutputStream(sFilepath)); d.open();//from w ww. ja va2s . c o m PdfContentByte cb = w.getDirectContent(); ByteArrayOutputStream stampedBuffer; URL resource = this.getClass().getClassLoader().getResource(ShippingConstants.INVOICE_TEMPLATE); File file = new File(resource.toURI()); PdfReader templateReader = new PdfReader(new FileInputStream(file)); stampedBuffer = new ByteArrayOutputStream(); PdfStamper stamper = new PdfStamper(templateReader, stampedBuffer); stamper.setFormFlattening(true); AcroFields form = stamper.getAcroFields(); float[] columnWidths = { 1f, 1f, 1f, 3f }; //create PDF table with the given widths PdfPTable table = new PdfPTable(columnWidths); // form.setField("field1", String.format("Form Text %d", i+1)); form.setField("OBName", "Ragav"); form.setField("OBCompany", "Ragav"); form.setField("OBAddress", "2002 SW Sarazen Cr"); form.setField("OBCity", "Bentonville"); form.setField("OBPhone", "1234567890"); form.setField("STName", "Ragav"); form.setField("STCompany", "Ragav"); form.setField("STAddress", "2002 SW Sarazen Cr"); form.setField("STCity", "Bentonville"); form.setField("STPhone", "1234567890"); form.setField("itemNo", "12334535"); form.setField("itemDesc", "Laundry Bag"); stamper.close(); templateReader.close(); form = null; stamper.close(); templateReader.close(); PdfReader stampedReader = new PdfReader(stampedBuffer.toByteArray()); PdfImportedPage page = w.getImportedPage(stampedReader, 1); cb.addTemplate(page, 0, currPosition); image.scaleAbsoluteHeight(325); image.scaleAbsoluteWidth(550); image.setRotationDegrees(270); image.setAbsolutePosition(450, 20); d.add(image); d.close(); w.close(); return sFilepath; }
From source file:com.docdoku.server.esindexer.ESTools.java
License:Open Source License
private static String pdfDocumentToString(InputStream inputStream, String fullName) throws IOException { StringBuilder buf = new StringBuilder(); try (InputStream pdfStream = new BufferedInputStream(inputStream)) { PdfReader reader = new PdfReader(pdfStream); for (int i = 1; i <= reader.getNumberOfPages(); i++) { buf.append(pdfPageToString(reader, i, fullName)); }/*w ww .j a v a 2 s . c om*/ reader.close(); } return buf.toString(); }
From source file:com.ephesoft.dcma.util.PDFUtil.java
License:Open Source License
/** * API for getting the number of pages in the pdf file. * // ww w . ja va 2 s.c o m * @param filePath file path {@link String} * @return numberOfPage */ public static int getPDFPageCount(String filePath) { int numberOfPage = 0; PdfReader pdfReader = null; try { pdfReader = new PdfReader(new RandomAccessFileOrArray(filePath), null); numberOfPage = pdfReader.getNumberOfPages(); } catch (IOException e) { LOG.error("Error in reading the file:" + filePath + UtilConstants.SPACE + e.getMessage(), e); } finally { if (pdfReader != null) { pdfReader.close(); } } return numberOfPage; }
From source file:com.ephesoft.dcma.util.PDFUtil.java
License:Open Source License
/** * The <code>closePassedStream</code> method closes the stream passed. * //w w w. ja v a 2s .co m * @param reader {@link PdfReader} * @param document {@link Document} * @param contentByte {@link PdfContentByte} * @param writer {@link PdfWriter} * @param fileInputStream {@link FileInputStream} * @param fileOutputStream {@link FileOutputStream} * @throws IOException {@link} if unable to close input or output stream */ private static void closePassedStream(final PdfReader reader, final Document document, final PdfContentByte contentByte, final PdfWriter writer, final FileInputStream fileInputStream, final FileOutputStream fileOutputStream) throws IOException { if (null != reader) { reader.close(); } if (null != document) { document.close(); } if (null != contentByte) { contentByte.closePath(); } if (null != writer) { writer.close(); } if (null != fileInputStream) { fileInputStream.close(); } if (null != fileOutputStream) { fileOutputStream.flush(); fileOutputStream.close(); } }
From source file:com.erikHolz.vertretungsplan.Converter.java
License:Open Source License
public void parsePDF() throws IOException { PdfReader reader = new PdfReader(fileDest + ".pdf"); PdfReaderContentParser parser = new PdfReaderContentParser(reader); PrintWriter out = new PrintWriter(new FileOutputStream(fileDest + "__.txt")); TextExtractionStrategy strategy;/*from ww w .j av a2s .c o m*/ for (int intI = 1; intI <= reader.getNumberOfPages(); intI++) { strategy = parser.processContent(intI, new LocationTextExtractionStrategy()); out.println(strategy.getResultantText()); } out.flush(); out.close(); reader.close(); // lschen der ursprnglichen pdf File f = new File(fileDest + ".pdf"); if (f.exists()) f.delete(); }
From source file:com.github.albfernandez.joinpdf.ItextUtils.java
License:Open Source License
public static void close(final PdfReader reader) { try {//from w w w . j av a2 s . com if (reader != null) { reader.close(); } } catch (Exception e) { // NOPMD // } }
From source file:com.github.hossman.PdfShrinker.java
License:Apache License
public static void main(String args[]) throws Exception { if (1 != args.length) { System.err.println("Run this app with a single command line PDF filename"); System.err.println("The specified file will be read, and a shrunk version written to stdout"); System.err.println("ie: java -jar pdf-shrinker.jar big.pdf > small.pdf"); System.exit(-1);//from ww w .j a v a 2 s . c o m } Document document = new Document(); PdfSmartCopy copy = new PdfSmartCopy(document, System.out); copy.setCompressionLevel(9); copy.setFullCompression(); document.open(); PdfReader reader = new PdfReader(args[0]); List<HashMap<String, Object>> bookmarks = SimpleBookmark.getBookmark(reader); int pages = reader.getNumberOfPages(); for (int i = 0; i < pages; i++) { PdfImportedPage page = copy.getImportedPage(reader, i + 1); copy.addPage(page); } copy.freeReader(reader); reader.close(); copy.setOutlines(bookmarks); document.close(); }
From source file:com.github.sgelb.sldownloader.model.Pdf.java
License:Open Source License
public void mergePdfs() throws DocumentException, IOException { String title = book.getPdfTitle() + ".pdf"; File saveFile = new File(saveFolder, title); int count = 1; while (saveFile.exists()) { title = book.getPdfTitle() + "_" + count++ + ".pdf"; saveFile = new File(saveFolder, title); }/*w w w .j a v a 2 s. c o m*/ book.setInfo("saveFile", saveFile.toString()); Document document = new Document(); PdfCopy destPdf = new PdfCopy(document, new FileOutputStream(saveFile)); document.open(); PdfReader reader; int page_offset = 0; int n; ArrayList<HashMap<String, Object>> bookmarks = new ArrayList<HashMap<String, Object>>(); List<HashMap<String, Object>> tmp; count = 1; System.out.println("Start mergin\u2026"); for (File srcPdf : src) { if (Thread.interrupted()) { return; } System.out.print(":: " + count++ + "/" + src.size()); reader = new PdfReader(srcPdf.toString()); tmp = SimpleBookmark.getBookmark(reader); if (tmp != null) { SimpleBookmark.shiftPageNumbers(tmp, page_offset, null); bookmarks.addAll(tmp); } n = reader.getNumberOfPages(); page_offset += n; for (int page = 0; page < n;) { destPdf.addPage(destPdf.getImportedPage(reader, ++page)); } destPdf.freeReader(reader); reader.close(); System.out.println(" succeed."); } if (!bookmarks.isEmpty()) { destPdf.setOutlines(bookmarks); } if (book.getInfo("author") != null) document.addAuthor(book.getInfo("author")); if (book.getInfo("title") != null) document.addTitle(book.getInfo("title")); if (book.getInfo("subtitle") != null) document.addSubject(book.getInfo("subtitle")); document.close(); System.out.println("Merge complete. Saved to " + saveFile); }