List of usage examples for com.itextpdf.text.pdf PdfReader close
public void close()
From source file:SettingUp.ImageExtraction.java
public void extractImages() throws IOException, DocumentException { PdfReader reader = new PdfReader(filename.toString()); PdfReaderContentParser parser = new PdfReaderContentParser(reader); ImageRenderListener listener = new ImageRenderListener(imgpath); for (int i = 1; i <= reader.getNumberOfPages(); i++) { parser.processContent(i, listener); }//from www .j av a 2 s. co m reader.close(); }
From source file:signpdfitext5.SignPdfItext5.java
public static void signPdf() throws IOException, DocumentException, KeyStoreException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, GeneralSecurityException { //Se agrega bouncyCastle al provider de java, si no se realiza, arroja un error Provider p = new BouncyCastleProvider(); Security.addProvider(p);//from ww w .j a v a 2 s.c om //Se instancia un keystore de tipo pkcs12 para leer el contenedor p12 o pfx KeyStore ks = KeyStore.getInstance("pkcs12"); //Se entrega la ruta y la clave del p12 o pfx ks.load(new FileInputStream(fContenedorp12.getAbsolutePath()), Contenedorp12clave.toCharArray()); //Se obtiene el nombre del certificado String alias = (String) ks.aliases().nextElement(); //Se obtiene la llave privada PrivateKey pk = (PrivateKey) ks.getKey(alias, Contenedorp12clave.toCharArray()); //Se obtiene la cadena de certificados en base al nombre del certificado Certificate[] chain = ks.getCertificateChain(alias); //Se indica el origen del pdf a firmar PdfReader reader = new PdfReader(fpdfOrigen.getAbsolutePath()); //Se indica el destino del pdf firmado PdfStamper stamper = PdfStamper.createSignature(reader, new FileOutputStream(fpdfDestino.getAbsolutePath()), '\0'); //Se indican alguno detalles de la forma en que se firmara PdfSignatureAppearance appearance = stamper.getSignatureAppearance(); appearance.setReason("It's personal."); appearance.setLocation("Foobar"); // Se entrega la llave privada del certificado, el algoritmo de firma y el provider usado (bouncycastle) ExternalSignature es = new PrivateKeySignature(pk, "SHA-256", "BC"); ExternalDigest digest = new BouncyCastleDigest(); //Se genera la firma y se almacena el pdf como se indico en las lineas anteriores MakeSignature.signDetached(appearance, digest, es, chain, null, null, null, 0, CryptoStandard.CMS); //Se cierran las instancias para liberar espacio stamper.close(); reader.close(); }
From source file:spntoolsdata.pdf.util.RemoveBlankPageFromPDF.java
public static void removeBlankPdfPages(String source, String destination) throws IOException, DocumentException { PdfReader r = null; RandomAccessSourceFactory rasf = null; RandomAccessFileOrArray raf = null;// ww w.j ava 2 s .c o 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:textextractor.PDFManager.java
public void inspectPdf(String filename) throws IOException, DocumentException { PdfReader reader = new PdfReader(filename); List<HashMap<String, Object>> list = SimpleBookmark.getBookmark(reader); if (list != null) { list.stream().forEach((list1) -> { showTitle(list1);// w w w .ja v a2 s.co m }); // SimpleBookmark.exportToXML(list, // new FileOutputStream("Bookmark.txt"), "ISO8859-1", true); } reader.close(); }
From source file:tutorials.encryptpdf.encryptpdf.java
public static void main(String[] args) { try {//w w w. ja v a2 s. co m PdfReader reader = new PdfReader("test.pdf"); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("encrypted.pdf")); stamper.setEncryption(null, null, PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_256 | PdfWriter.DO_NOT_ENCRYPT_METADATA); stamper.close(); reader.close(); } catch (IOException | DocumentException ex) { ex.printStackTrace(); } }
From source file:tutorials.readpdf.readpdf.java
public static void main(String[] args) { try {// ww w . j av a 2 s.c o m PdfReader reader = new PdfReader("test.pdf"); System.out.println("This PDF has " + reader.getNumberOfPages() + " pages."); System.out.println("Is this document tampered: " + reader.isTampered()); System.out.println("Is this document encrypted: " + reader.isEncrypted()); for (int i = 1; i <= reader.getNumberOfPages(); i++) { String page = PdfTextExtractor.getTextFromPage(reader, i); System.out.println("Page Content:\n\n" + page + "\n\n"); } reader.close(); } catch (IOException e) { e.printStackTrace(); } }
From source file:uk.bl.dpt.qa.flint.wrappers.iTextWrapper.java
License:Apache License
/** * Extracts text from a PDF./*from w ww .j ava 2s.c om*/ * @param pFile input file * @param pOutput output file * @param pOverwrite whether or not to overwrite an existing output file * @return true if converted ok, otherwise false */ public boolean extractTextFromPDF(File pFile, File pOutput, boolean pOverwrite) { if (pOutput.exists() & (!pOverwrite)) return false; boolean ret = true; PrintWriter pw = null; PdfReader reader = null; try { pw = new PrintWriter(new FileWriter(pOutput)); reader = new PdfReader(pFile.getAbsolutePath()); PdfReaderContentParser parser = new PdfReaderContentParser(reader); TextExtractionStrategy strategy; for (int i = 0; i < reader.getNumberOfPages(); i++) { try { //page numbers start at 1 strategy = parser.processContent((i + 1), new SimpleTextExtractionStrategy()); //write text out to file pw.println(strategy.getResultantText()); } catch (ExceptionConverter e) { e.printStackTrace(); ret = false; pw.println("iText Exception: Page " + (i + 1) + ": " + e.getClass().getName() + ": " + e.getMessage()); } } } catch (IOException e) { ret = false; // TODO Auto-generated catch block e.printStackTrace(); } finally { if (pw != null) pw.close(); if (reader != null) reader.close(); } return ret; }
From source file:uk.bl.dpt.qa.flint.wrappers.iTextWrapper.java
License:Apache License
/** * Check if a PDF file is valid or not/*from ww w .ja va 2 s . c o m*/ * @param pFile file to check * @return whether the file is valid or not */ public boolean isValid(File pFile) { boolean ret = false; PdfReader reader = null; try { reader = new PdfReader(pFile.getAbsolutePath()); LOGGER.debug("validating through {} pages of {}", reader.getNumberOfPages(), pFile.getName()); for (int i = 0; i < reader.getNumberOfPages(); i++) { //page numbers start at 1 PdfTextExtractor.getTextFromPage(reader, (i + 1)); } ret = true; } catch (BadPasswordException e) { //actually an error??? } catch (InvalidPdfException e) { LOGGER.warn("InvalidPdfException leads to invalidity: {}", e); } catch (IOException e) { LOGGER.warn("IOException leads to invalidity: {}", e); } catch (Exception e) { LOGGER.warn("Exception leads to invalidity: {}", e); } finally { if (reader != null) reader.close(); } return ret; }
From source file:uk.bl.dpt.qa.flint.wrappers.iTextWrapper.java
License:Apache License
/** * Check if a PDF file has DRM or not/*from ww w . j av a2s . c om*/ * @param pFile file to check * @return whether the file is had DRM or not */ public boolean hasDRM(File pFile) { boolean drm = false; PdfReader reader = null; try { reader = new PdfReader(pFile.getAbsolutePath()); drm = reader.isEncrypted(); } catch (BadPasswordException e) { //assume drm drm = true; } catch (IOException e) { // TODO Auto-generated catch block //e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) reader.close(); } return drm; }
From source file:valstreamtools.ValStrSplitPage.java
private void splitDocument(String[] args) throws IOException, DocumentException { /**/*from www .ja v a 2 s . c o m*/ * int splitNo = 4; String inputFileName = * "C:\\tmp\\valuestream_export_input_2015-03-03-22-18-37.pdf"; String * outputFileName = "C:\\tmp\\valuestream_export_op_2015-03-03-22-18-37.pdf";* */ int splitNo = Integer.parseInt(args[0]); String inputFileName = args[1]; if (splitNo > 1) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); String splitOutFileName = "/var/tmp/PDF_SPLIT_" + sdf.format(new Date()) + ".pdf"; PdfReader reader = new PdfReader(inputFileName); Rectangle pagesize = reader.getPageSize(1); float pageHeight = pagesize.getHeight(); float newpagewidth = (pagesize.getWidth() / splitNo); Rectangle newPapeSize = new Rectangle(0, 0, newpagewidth, pageHeight); Document document = new Document(newPapeSize); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(splitOutFileName)); document.open(); int pageNos = reader.getNumberOfPages(); PdfContentByte content = writer.getDirectContent(); for (int i = 1; i <= pageNos; i++) { PdfImportedPage page = writer.getImportedPage(reader, i); if (i > 1) {// In case of a new inpit page, need to create this. document.newPage(); } for (int j = 0; j < splitNo; j++) { if (j == 0) {//This condition is used to skip the adding of new page. content.addTemplate(page, 0, 0); } else { document.newPage(); content.addTemplate(page, (-1 * j * newpagewidth), 0); } } } document.close(); reader.close(); createPageNo(splitOutFileName, args[2], pageHeight); File f = new File(splitOutFileName); if (f.exists()) { f.delete(); } } else { PdfReader reader = new PdfReader(inputFileName); float pageHeight = reader.getPageSize(1).getHeight(); reader.close(); createPageNo(inputFileName, args[2], pageHeight); } }