List of usage examples for com.itextpdf.text.pdf PdfReader close
public void close()
From source file:oscar.dms.IncomingDocUtil.java
License:Open Source License
public static int getNumOfPages(String queueId, String pdfDir, String pdfName) { String filePath = getIncomingDocumentFilePathName(queueId, pdfDir, pdfName); int numOfPages = 0; PdfReader reader = null; try {//from www . j av a 2 s . c om reader = new PdfReader(filePath); numOfPages = reader.getNumberOfPages(); } catch (Exception e) { MiscUtils.getLogger().error("Error", e); } finally { if (reader != null) { reader.close(); } } return numOfPages; }
From source file:oscar.dms.IncomingDocUtil.java
License:Open Source License
public static void rotatePage(String queueId, String myPdfDir, String myPdfName, String MyPdfPageNumber, int degrees) throws Exception { long lastModified; String filePathName, tempFilePathName; int rot;//from w ww.j ava 2s .c o m int rotatedegrees; tempFilePathName = getIncomingDocumentFilePath(queueId, myPdfDir) + File.separator + "T" + myPdfName; filePathName = getIncomingDocumentFilePathName(queueId, myPdfDir, myPdfName); File f = new File(filePathName); lastModified = f.lastModified(); PdfReader reader = null; PdfStamper stp = null; try { reader = new PdfReader(filePathName); rot = reader.getPageRotation(Integer.parseInt(MyPdfPageNumber)); rotatedegrees = rot + degrees; rotatedegrees = rotatedegrees % 360; reader.getPageN(Integer.parseInt(MyPdfPageNumber)).put(PdfName.ROTATE, new PdfNumber(rotatedegrees)); stp = new PdfStamper(reader, new FileOutputStream(tempFilePathName)); } catch (Exception e) { throw (e); } finally { try { if (stp != null) { stp.close(); } if (reader != null) { reader.close(); } } catch (Exception e) { throw (e); } } boolean success = f.delete(); if (success) { File f1 = new File(tempFilePathName); f1.setLastModified(lastModified); success = f1.renameTo(new File(filePathName)); if (!success) { throw new Exception("Error in renaming file from:" + tempFilePathName + " to " + filePathName); } } else { throw new Exception("Error in deleting file:" + filePathName); } }
From source file:oscar.dms.IncomingDocUtil.java
License:Open Source License
public static void rotateAlPages(String queueId, String myPdfDir, String myPdfName, int degrees) throws Exception { long lastModified; String filePathName, tempFilePathName; int rot;/*www. jav a 2s .co m*/ int rotatedegrees; tempFilePathName = getIncomingDocumentFilePath(queueId, myPdfDir) + File.separator + "T" + myPdfName; filePathName = getIncomingDocumentFilePathName(queueId, myPdfDir, myPdfName); File f = new File(filePathName); lastModified = f.lastModified(); PdfReader reader = null; PdfStamper stp = null; try { reader = new PdfReader(filePathName); for (int p = 1; p <= reader.getNumberOfPages(); ++p) { rot = reader.getPageRotation(p); rotatedegrees = rot + degrees; rotatedegrees = rotatedegrees % 360; reader.getPageN(p).put(PdfName.ROTATE, new PdfNumber(rotatedegrees)); } stp = new PdfStamper(reader, new FileOutputStream(tempFilePathName)); } catch (Exception e) { throw (e); } finally { try { if (stp != null) { stp.close(); } if (reader != null) { reader.close(); } } catch (Exception e) { throw (e); } } boolean success = f.delete(); if (success) { File f1 = new File(tempFilePathName); f1.setLastModified(lastModified); success = f1.renameTo(new File(filePathName)); if (!success) { throw new Exception("Error in renaming file from:" + tempFilePathName + "to " + filePathName); } } else { throw new Exception("Error in deleting file:" + filePathName); } }
From source file:oscar.dms.IncomingDocUtil.java
License:Open Source License
public static void deletePage(String queueId, String myPdfDir, String myPdfName, String PageNumberToDelete) throws Exception { long lastModified; String filePathName, tempFilePathName; tempFilePathName = getIncomingDocumentFilePath(queueId, myPdfDir) + File.separator + "T" + myPdfName; filePathName = getIncomingDocumentFilePathName(queueId, myPdfDir, myPdfName); File f = new File(filePathName); lastModified = f.lastModified();//from w w w .j a va 2s.c o m f.setReadOnly(); String deletePath = getIncomingDocumentDeletedFilePath(queueId, myPdfDir) + File.separator; String deletePathFileName = ""; int index = myPdfName.indexOf(".pdf"); String myPdfNameF = myPdfName.substring(0, index); String myPdfNameExt = myPdfName.substring(index, myPdfName.length()); PdfReader reader = null; Document document = null; PdfCopy copy = null; PdfCopy deleteCopy = null; try { reader = new PdfReader(filePathName); deletePathFileName = deletePath + myPdfNameF + "d" + PageNumberToDelete + "of" + Integer.toString(reader.getNumberOfPages()) + myPdfNameExt; document = new Document(reader.getPageSizeWithRotation(1)); copy = new PdfCopy(document, new FileOutputStream(tempFilePathName)); deleteCopy = new PdfCopy(document, new FileOutputStream(deletePathFileName)); document.open(); for (int pageNumber = 1; pageNumber <= reader.getNumberOfPages(); pageNumber++) { if (!(pageNumber == (Integer.parseInt(PageNumberToDelete)))) { copy.addPage(copy.getImportedPage(reader, pageNumber)); } else { deleteCopy.addPage(copy.getImportedPage(reader, pageNumber)); } } } catch (Exception e) { throw (e); } finally { try { if (copy != null) { copy.close(); } if (deleteCopy != null) { deleteCopy.close(); } if (document != null) { document.close(); } if (reader != null) { reader.close(); } } catch (Exception e) { throw (e); } } boolean success; if (!oscar.OscarProperties.getInstance().getBooleanProperty("INCOMINGDOCUMENT_RECYCLEBIN", "true")) { File f1 = new File(deletePathFileName); success = f1.delete(); if (!success) { throw new Exception("Error in deleting file:" + deletePathFileName); } } success = f.delete(); if (success) { File f1 = new File(tempFilePathName); f1.setLastModified(lastModified); success = f1.renameTo(new File(filePathName)); if (!success) { throw new Exception("Error in renaming file from:" + tempFilePathName + "to " + filePathName); } } else { throw new Exception("Error in deleting file:" + filePathName); } }
From source file:oscar.dms.IncomingDocUtil.java
License:Open Source License
public static void extractPage(String queueId, String myPdfDir, String myPdfName, String pageNumbersToExtract) throws Exception { long lastModified; String filePathName, tempFilePathName; tempFilePathName = getIncomingDocumentFilePath(queueId, myPdfDir) + File.separator + "T" + myPdfName; filePathName = getIncomingDocumentFilePathName(queueId, myPdfDir, myPdfName); File f = new File(filePathName); lastModified = f.lastModified();/* w w w . j a va2 s . com*/ f.setReadOnly(); String extractPath = getIncomingDocumentFilePath(queueId, myPdfDir) + File.separator; int index = myPdfName.toLowerCase().indexOf(".pdf"); String myPdfNameF = myPdfName.substring(0, index); String myPdfNameExt = myPdfName.substring(index, myPdfName.length()); ArrayList<String> extractList = new ArrayList<String>(); int startPage, endPage; boolean cancelExtract = false; PdfReader reader = null; Document document = null; PdfCopy copy = null; PdfCopy extractCopy = null; try { reader = new PdfReader(filePathName); extractPath = extractPath + myPdfNameF + "E" + Integer.toString(reader.getNumberOfPages()) + myPdfNameExt; for (int pgIndex = 0; pgIndex <= reader.getNumberOfPages(); pgIndex++) { extractList.add(pgIndex, "0"); } String tmpPageNumbersToExtract = pageNumbersToExtract; String[] pageList = tmpPageNumbersToExtract.split(","); for (int i = 0; i < pageList.length; i++) { if (!pageList[i].isEmpty()) { String[] rangeList = pageList[i].split("-"); if (rangeList.length > 2) { cancelExtract = true; } for (int j = 0; j < rangeList.length; j++) { if (!rangeList[j].matches("^[0-9]+$")) { cancelExtract = true; } } if (!cancelExtract) { if (rangeList.length == 1) { startPage = Integer.parseInt(rangeList[0], 10); if (startPage > extractList.size() || startPage == 0) { cancelExtract = true; } else { extractList.set(startPage, "1"); } } else if (rangeList.length == 2) { startPage = Integer.parseInt(rangeList[0], 10); endPage = Integer.parseInt(rangeList[1], 10); for (int k = startPage; k <= endPage; k++) { if (k > extractList.size() || k == 0) { cancelExtract = true; } else { extractList.set(k, "1"); } } } } } } if (!cancelExtract) { cancelExtract = true; for (int pageNumber = 1; pageNumber <= reader.getNumberOfPages(); pageNumber++) { if (!(extractList.get(pageNumber).equals("1"))) { cancelExtract = false; } } } if (cancelExtract == true) { reader.close(); throw new Exception(myPdfName + " : Invalid Pages to Extract " + pageNumbersToExtract); } document = new Document(reader.getPageSizeWithRotation(1)); copy = new PdfCopy(document, new FileOutputStream(tempFilePathName)); extractCopy = new PdfCopy(document, new FileOutputStream(extractPath)); document.open(); for (int pageNumber = 1; pageNumber <= reader.getNumberOfPages(); pageNumber++) { if (!(extractList.get(pageNumber).equals("1"))) { copy.addPage(copy.getImportedPage(reader, pageNumber)); } else { extractCopy.addPage(copy.getImportedPage(reader, pageNumber)); } } } catch (Exception e) { throw (e); } finally { try { if (copy != null) { copy.close(); } if (extractCopy != null) { extractCopy.close(); } if (document != null) { document.close(); } if (reader != null) { reader.close(); } } catch (Exception e) { throw (e); } } boolean success = f.delete(); if (success) { File f1 = new File(tempFilePathName); f1.setLastModified(lastModified); success = f1.renameTo(new File(filePathName)); if (!success) { throw new Exception("Error in renaming file from:" + tempFilePathName + "to " + filePathName); } File f2 = new File(extractPath); f2.setLastModified(lastModified); } else { throw new Exception("Error in deleting file:" + filePathName); } }
From source file:pdfextract.ControlPDF.java
public List<String> parsePdfToArrayList(String pdfPath) throws IOException { PdfReader reader = new PdfReader(pdfPath); PdfReaderContentParser parser = new PdfReaderContentParser(reader); List<String> arrayOftext = new ArrayList<String>(); TextExtractionStrategy strategy;/*from www .ja v a 2 s.c om*/ for (int i = 1; i <= reader.getNumberOfPages(); i++) { strategy = parser.processContent(i, new SimpleTextExtractionStrategy()); arrayOftext.add(strategy.getResultantText()); } reader.close(); return arrayOftext; }
From source file:pdfextract.ControlPDF.java
public void extractImagesFromPdf(String filename, String save) throws IOException, DocumentException { PdfReader reader = new PdfReader(filename); PdfReaderContentParser parser = new PdfReaderContentParser(reader); ImageRenderListener listener = new ImageRenderListener(save); for (int i = 1; i <= reader.getNumberOfPages(); i++) { parser.processContent(i, listener); }/*from w ww . j a v a 2 s.c om*/ reader.close(); }
From source file:pdfextract.ControlPDF.java
public String pdfToDIrAndimgToString(String pdfPath, File destnationPath) throws IOException, DocumentException, Exception { //boolean success; String kk = ""; String desPath = null;// w w w.j ava 2 s .co m PdfReader reader = new PdfReader(pdfPath); PdfReaderContentParser parser = new PdfReaderContentParser(reader); try { desPath = destnationPath.getName(); new File(desPath.replace(".txt", "")).mkdir(); PrintWriter out = new PrintWriter( new FileOutputStream(desPath.replace(".txt", "") + "/" + destnationPath.getName())); TextExtractionStrategy strategy; for (int i = 1; i <= reader.getNumberOfPages(); i++) { strategy = parser.processContent(i, new SimpleTextExtractionStrategy()); out.println(i + " " + strategy.getResultantText()); } reader.close(); out.flush(); out.close(); extractImagesFromPdf(pdfPath, desPath.replace(".txt", "") + "/" + desPath.replace(".txt", "")); File f = new File(desPath.replace(".txt", "") + "/" + desPath.replace(".txt", "") + "-16.null"); kk = imageToBase64String(f); /*File deletedFolder = new File(destnationPath.getParent()); System.out.println("here"+destnationPath.getParent()); deletedFolder.delete(); System.out.println("is delete+ " + deletedFolder.delete());*/ // FileUtils.deleteDirectory(new File(deletedFolder.getParent())); //success = true; } catch (Exception ex) { //success = false; } return kk; }
From source file:pdfextract.ExtractInfo.java
public List<String> parsePdf(String pdfPath) throws IOException { PdfReader reader = new PdfReader(pdfPath); PdfReaderContentParser parser = new PdfReaderContentParser(reader); //String [] arrayOftext= new String[300]; List<String> arrayOftext = new ArrayList<String>(); // PrintWriter out = new PrintWriter(new FileOutputStream(destnationPath)); TextExtractionStrategy strategy;/*from w w w . ja v a 2 s. c om*/ for (int i = 1; i <= reader.getNumberOfPages(); i++) { strategy = parser.processContent(i, new SimpleTextExtractionStrategy()); // out.println(i + " " + strategy.getResultantText()); arrayOftext.add(strategy.getResultantText()); } reader.close(); return arrayOftext; }
From source file:pdfextract.ExtractInfo.java
public void extractImages(String filename) throws IOException, DocumentException { PdfReader reader = new PdfReader(filename); PdfReaderContentParser parser = new PdfReaderContentParser(reader); ImageRenderListener listener = new ImageRenderListener("spdf"); for (int i = 1; i <= reader.getNumberOfPages(); i++) { parser.processContent(i, listener); }//from ww w . j a v a 2 s. co m reader.close(); BufferedImage buffImage; }