Example usage for com.itextpdf.text.pdf PdfReader close

List of usage examples for com.itextpdf.text.pdf PdfReader close

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfReader close.

Prototype

public void close() 

Source Link

Document

Closes the reader, and any underlying stream or data source used to create the reader

Usage

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;
}