List of usage examples for org.apache.pdfbox.pdmodel PDDocument getNumberOfPages
public int getNumberOfPages()
From source file:org.nuxeo.pdf.test.PDFWatermarkingTest.java
License:Open Source License
protected void checkHasWatermarkOnAllPages(Blob inBlob, String inWatermark) throws Exception { PDDocument doc = PDDocument.load(inBlob.getStream()); utils.track(doc);//from w w w . j a va 2 s . c om int count = doc.getNumberOfPages(); for (int i = 1; i <= count; i++) { String txt = utils.extractText(doc, i, i); int pos = txt.indexOf(inWatermark); assertTrue("for page " + i + ", found pos is " + pos, pos > -1); } doc.close(); utils.untrack(doc); }
From source file:org.nuxeo.webpage.archiver.test.Utils.java
License:Open Source License
public static boolean hasText(Blob inBlob, String inText) throws IOException { boolean hasIt = false; PDDocument pdfDoc = null; try {// w w w . j a va 2 s .c o m pdfDoc = PDDocument.load(inBlob.getFile()); PDFTextStripper stripper = new PDFTextStripper(); String txt; int max = pdfDoc.getNumberOfPages(); for (int i = 1; i <= max; ++i) { stripper.setStartPage(i); stripper.setEndPage(i); txt = stripper.getText(pdfDoc); if (txt.indexOf(inText) > -1) { hasIt = true; break; } } } finally { if (pdfDoc != null) { pdfDoc.close(); } } return hasIt; }
From source file:org.nuxeo.webpage.archiver.WebpageToBlob.java
License:Apache License
protected boolean pdfLooksValid(File inPdf) { boolean valid = false; if (inPdf.exists() && inPdf.length() > 0) { PDDocument pdfDoc = null; try {/*from w w w.j av a2 s .c o m*/ pdfDoc = PDDocument.load(inPdf); if (pdfDoc.getNumberOfPages() > 0) { valid = true; } } catch (IOException e) { // Nothing } finally { if (pdfDoc != null) { try { pdfDoc.close(); } catch (IOException e) { // Ignore } } } } return valid; }
From source file:org.opensingular.lib.commons.pdf.TestPDFUtil.java
License:Apache License
private int countPages(File file) { try (RandomAccessBufferedFileInputStream in = new RandomAccessBufferedFileInputStream(file)) { PDFParser parser = new PDFParser(in); parser.parse();// w ww. ja va 2 s .com PDDocument doc = parser.getPDDocument(); int pages = doc.getNumberOfPages(); doc.close(); return pages; } catch (IOException e) { throw new RuntimeException(e); } }
From source file:org.oscarehr.document.web.SplitDocumentAction.java
License:Open Source License
public ActionForward split(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String docNum = request.getParameter("document"); String[] commands = request.getParameterValues("page[]"); Document doc = documentDAO.getDocument(docNum); // String docdownload = oscar.OscarProperties.getInstance().getProperty("DOCUMENT_DIR"); // new File(docdownload); String docdownload = EDocUtil.getDocumentDir(doc.getDocfilename()); String newFilename = doc.getDocfilename(); String dbPrefix = EDocUtil.getDocumentPrefix(doc.getDocfilename()); // FileInputStream input = new FileInputStream(docdownload + doc.getDocfilename()); FileInputStream input = new FileInputStream(EDocUtil.getDocumentPath(newFilename)); PDFParser parser = new PDFParser(input); parser.parse();/* w ww.ja va 2s . c o m*/ PDDocument pdf = parser.getPDDocument(); PDDocument newPdf = new PDDocument(); List pages = pdf.getDocumentCatalog().getAllPages(); if (commands != null) { for (String c : commands) { String[] command = c.split(","); int pageNum = Integer.parseInt(command[0]); int rotation = Integer.parseInt(command[1]); PDPage p = (PDPage) pages.get(pageNum - 1); p.setRotation(rotation); newPdf.addPage(p); } } //newPdf.save(docdownload + newFilename); if (newPdf.getNumberOfPages() > 0) { LoggedInInfo loggedInInfo = LoggedInInfo.loggedInInfo.get(); // EDoc newDoc = new EDoc("","", newFilename, "", loggedInInfo.loggedInProvider.getProviderNo(), doc.getDoccreator(), "", 'A', oscar.util.UtilDateUtilities.getToday("yyyy-MM-dd"), "", "", "demographic", "-1",0); EDoc newDoc = new EDoc("", "", EDocUtil.getDocumentFileName(newFilename), "", loggedInInfo.loggedInProvider.getProviderNo(), doc.getDoccreator(), "", 'A', oscar.util.UtilDateUtilities.getToday("yyyy-MM-dd"), "", "", "demographic", "-1", 0); newDoc.setFileName(dbPrefix + '.' + newDoc.getFileName()); newDoc.setDocPublic("0"); newDoc.setContentType("application/pdf"); newDoc.setNumberOfPages(newPdf.getNumberOfPages()); String newDocNo = EDocUtil.addDocumentSQL(newDoc); // //newPdf.save(docdownload + newDoc.getFileName()); System.gc(); //avoid Windows lock on channel newPdf.save(docdownload + EDocUtil.getDocumentFileName(newDoc.getFileName())); newPdf.close(); WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(request.getSession().getServletContext()); ProviderInboxRoutingDao providerInboxRoutingDao = (ProviderInboxRoutingDao) ctx .getBean("providerInboxRoutingDAO"); providerInboxRoutingDao.addToProviderInbox("0", newDocNo, "DOC"); List<ProviderInboxItem> routeList = providerInboxRoutingDao.getProvidersWithRoutingForDocument("DOC", docNum); for (ProviderInboxItem i : routeList) { providerInboxRoutingDao.addToProviderInbox(i.getProviderNo(), newDocNo, "DOC"); } providerInboxRoutingDao.addToProviderInbox(loggedInInfo.loggedInProvider.getProviderNo(), newDocNo, "DOC"); QueueDocumentLinkDao queueDocumentLinkDAO = (QueueDocumentLinkDao) ctx.getBean("queueDocumentLinkDAO"); Integer qid = 1; Integer did = Integer.parseInt(newDocNo.trim()); queueDocumentLinkDAO.addToQueueDocumentLink(qid, did); ProviderLabRoutingDao providerLabRoutingDao = (ProviderLabRoutingDao) SpringUtils .getBean("providerLabRoutingDao"); List<ProviderLabRoutingModel> result = providerLabRoutingDao.getProviderLabRoutingDocuments(docNum); if (!result.isEmpty()) { new ProviderLabRouting().route(newDocNo, result.get(0).getProviderNo(), "DOC"); } PatientLabRoutingDao patientLabRoutingDao = (PatientLabRoutingDao) SpringUtils .getBean("patientLabRoutingDao"); List<PatientLabRouting> result2 = patientLabRoutingDao.findDocByDemographic(docNum); if (!result2.isEmpty()) { PatientLabRouting newPatientRoute = new PatientLabRouting(); newPatientRoute.setDemographicNo(result2.get(0).getDemographicNo()); newPatientRoute.setLabNo(Integer.parseInt(newDocNo)); newPatientRoute.setLabType("DOC"); patientLabRoutingDao.persist(newPatientRoute); } DocumentDAO documentDao = (DocumentDAO) SpringUtils.getBean("documentDAO"); CtlDocument result3 = documentDao.getCtrlDocument(Integer.parseInt(docNum)); if (result3 != null) { CtlDocumentPK ctlDocumentPK = new CtlDocumentPK(Integer.parseInt(newDocNo), "demographic"); CtlDocument newCtlDocument = new CtlDocument(ctlDocumentPK, result3.getModuleId()); newCtlDocument.setStatus(result3.getStatus()); documentDao.saveCtlDocument(newCtlDocument); } } pdf.close(); input.close(); return mapping.findForward("success"); }
From source file:org.oscarehr.document.web.SplitDocumentAction.java
License:Open Source License
public ActionForward removeFirstPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Document doc = documentDAO.getDocument(request.getParameter("document")); // String docdownload = oscar.OscarProperties.getInstance().getProperty("DOCUMENT_DIR"); String docdownload = EDocUtil.getDocumentPath(doc.getDocfilename()); // FileInputStream input = new FileInputStream(docdownload + doc.getDocfilename()); FileInputStream input = new FileInputStream(docdownload); PDFParser parser = new PDFParser(input); parser.parse();// ww w.j a va2s. co m PDDocument pdf = parser.getPDDocument(); // Documents must have at least 2 pages, for the first page to be removed. if (pdf.getNumberOfPages() <= 1) { return null; } int x = 1; for (Object p : pdf.getDocumentCatalog().getAllPages()) { ManageDocumentAction.deleteCacheVersion(doc, x); x++; } pdf.removePage(0); EDocUtil.subtractOnePage(request.getParameter("document")); // pdf.save(docdownload + doc.getDocfilename()); System.gc(); //avoid Win channel lock problem pdf.save(docdownload); pdf.close(); input.close(); return null; }
From source file:org.pdfgal.pdfgal.pdfgal.PDFGalTest.java
License:Open Source License
@Test public void merge() { final String inputUri1 = System.getProperty("user.dir") + TEST_RESOURCES + "merge\\IMergeTest_1.pdf"; final String inputUri2 = System.getProperty("user.dir") + TEST_RESOURCES + "merge\\IMergeTest_2.pdf"; final String inputUri3 = System.getProperty("user.dir") + TEST_RESOURCES + "merge\\IMergeTest_3.pdf"; final String inputUri4 = System.getProperty("user.dir") + TEST_RESOURCES + "merge\\IMergeTest_4.pdf"; final String inputUri5 = System.getProperty("user.dir") + TEST_RESOURCES + "merge\\IMergeTest_5.pdf"; final String outputUri = System.getProperty("user.dir") + TEST_RESOURCES + "merge\\OMergeTest.pdf"; final List<String> inputUris = new ArrayList<String>(); inputUris.add(inputUri1);/*from ww w .ja va 2 s. co m*/ inputUris.add(inputUri2); inputUris.add(inputUri3); inputUris.add(inputUri4); inputUris.add(inputUri5); try { this.pdfGal.merge(inputUris, outputUri); final PDDocument inputDoc1 = PDDocument.load(inputUri1); final PDDocument inputDoc2 = PDDocument.load(inputUri2); final PDDocument inputDoc3 = PDDocument.load(inputUri3); final PDDocument inputDoc4 = PDDocument.load(inputUri4); final PDDocument inputDoc5 = PDDocument.load(inputUri5); final PDDocument outputDoc = PDDocument.load(outputUri); final Integer inputDoc1Size = inputDoc1.getNumberOfPages(); final Integer inputDoc2Size = inputDoc2.getNumberOfPages(); final Integer inputDoc3Size = inputDoc3.getNumberOfPages(); final Integer inputDoc4Size = inputDoc4.getNumberOfPages(); final Integer inputDoc5Size = inputDoc5.getNumberOfPages(); final Integer inputDocsPagesTotal = inputDoc1Size + inputDoc2Size + inputDoc3Size + inputDoc4Size + inputDoc5Size; assertEquals(new Integer(outputDoc.getNumberOfPages()), inputDocsPagesTotal); final PDFTextStripper pdfStripper = new PDFTextStripper(); String inputText = null; String outputText = null; Integer lastOutputPage = null; /* Let's compare the first document */ // Extraction of output text lastOutputPage = inputDoc1Size; pdfStripper.setStartPage(1); pdfStripper.setEndPage(lastOutputPage); outputText = pdfStripper.getText(outputDoc); // Extraction of input text pdfStripper.setStartPage(1); pdfStripper.setEndPage(inputDoc1Size); inputText = pdfStripper.getText(inputDoc1); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the second document */ // Extraction of output text pdfStripper.setStartPage(lastOutputPage + 1); lastOutputPage = lastOutputPage + inputDoc2Size; pdfStripper.setEndPage(lastOutputPage); outputText = pdfStripper.getText(outputDoc); // Extraction of input text pdfStripper.setStartPage(1); pdfStripper.setEndPage(inputDoc2Size); inputText = pdfStripper.getText(inputDoc2); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the third document */ // Extraction of output text pdfStripper.setStartPage(lastOutputPage + 1); lastOutputPage = lastOutputPage + inputDoc3Size; pdfStripper.setEndPage(lastOutputPage); outputText = pdfStripper.getText(outputDoc); // Extraction of input text pdfStripper.setStartPage(1); pdfStripper.setEndPage(inputDoc3Size); inputText = pdfStripper.getText(inputDoc3); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the fourth document */ // Extraction of output text pdfStripper.setStartPage(lastOutputPage + 1); lastOutputPage = lastOutputPage + inputDoc4Size; pdfStripper.setEndPage(lastOutputPage); outputText = pdfStripper.getText(outputDoc); // Extraction of input text pdfStripper.setStartPage(1); pdfStripper.setEndPage(inputDoc4Size); inputText = pdfStripper.getText(inputDoc4); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the fifth document */ // Extraction of output text pdfStripper.setStartPage(lastOutputPage + 1); lastOutputPage = lastOutputPage + inputDoc5Size; pdfStripper.setEndPage(lastOutputPage); outputText = pdfStripper.getText(outputDoc); // Extraction of input text pdfStripper.setStartPage(1); pdfStripper.setEndPage(inputDoc5Size); inputText = pdfStripper.getText(inputDoc5); // Comparison of output and input text assertEquals(outputText, inputText); // Documents clossing inputDoc1.close(); inputDoc2.close(); inputDoc3.close(); inputDoc4.close(); inputDoc5.close(); outputDoc.close(); } catch (final Exception e) { assertFalse(true); } }
From source file:org.pdfgal.pdfgal.pdfgal.PDFGalTest.java
License:Open Source License
/** * Test for method PDFGal.split(String inputUri, String outputUri, * List<Integer> pages) throws IOException, COSVisitorException; *///from w ww . ja va 2 s. co m @Test public void splitSettingPageNumber() { final String inputUri = System.getProperty("user.dir") + TEST_RESOURCES + "splitlist\\ISplitListTest.pdf"; final String outputUri = System.getProperty("user.dir") + TEST_RESOURCES + "splitlist\\OSplitListTest.pdf"; final String outputUri1 = System.getProperty("user.dir") + TEST_RESOURCES + "splitlist\\OSplitListTest_1.pdf"; final String outputUri2 = System.getProperty("user.dir") + TEST_RESOURCES + "splitlist\\OSplitListTest_2.pdf"; final String outputUri3 = System.getProperty("user.dir") + TEST_RESOURCES + "splitlist\\OSplitListTest_3.pdf"; final String outputUri4 = System.getProperty("user.dir") + TEST_RESOURCES + "splitlist\\OSplitListTest_4.pdf"; final List<Integer> pages = new ArrayList<Integer>(); pages.add(2); pages.add(5); pages.add(7); try { this.pdfGal.split(inputUri, outputUri, pages); final PDDocument outputDoc1 = PDDocument.load(outputUri1); final PDDocument outputDoc2 = PDDocument.load(outputUri2); final PDDocument outputDoc3 = PDDocument.load(outputUri3); final PDDocument outputDoc4 = PDDocument.load(outputUri4); final PDDocument inputDoc = PDDocument.load(inputUri); final Integer outputDoc1Size = outputDoc1.getNumberOfPages(); final Integer outputDoc2Size = outputDoc2.getNumberOfPages(); final Integer outputDoc3Size = outputDoc3.getNumberOfPages(); final Integer outputDoc4Size = outputDoc4.getNumberOfPages(); final Integer inputDocsPagesTotal = outputDoc1Size + outputDoc2Size + outputDoc3Size + outputDoc4Size; assertEquals(new Integer(inputDoc.getNumberOfPages()), inputDocsPagesTotal); final PDFTextStripper pdfStripper = new PDFTextStripper(); String inputText = null; String outputText = null; Integer lastInputPage = null; /* Let's compare the first document */ // Extraction of input text lastInputPage = outputDoc1Size; pdfStripper.setStartPage(1); pdfStripper.setEndPage(lastInputPage); inputText = pdfStripper.getText(inputDoc); // Extraction of output text pdfStripper.setStartPage(1); pdfStripper.setEndPage(outputDoc1Size); outputText = pdfStripper.getText(outputDoc1); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the second document */ // Extraction of input text pdfStripper.setStartPage(lastInputPage + 1); lastInputPage = lastInputPage + outputDoc2Size; pdfStripper.setEndPage(lastInputPage); inputText = pdfStripper.getText(inputDoc); // Extraction of output text pdfStripper.setStartPage(1); pdfStripper.setEndPage(outputDoc2Size); outputText = pdfStripper.getText(outputDoc2); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the third document */ // Extraction of input text pdfStripper.setStartPage(lastInputPage + 1); lastInputPage = lastInputPage + outputDoc3Size; pdfStripper.setEndPage(lastInputPage); inputText = pdfStripper.getText(inputDoc); // Extraction of output text pdfStripper.setStartPage(1); pdfStripper.setEndPage(outputDoc3Size); outputText = pdfStripper.getText(outputDoc3); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the fourth document */ // Extraction of input text pdfStripper.setStartPage(lastInputPage + 1); lastInputPage = lastInputPage + outputDoc4Size; pdfStripper.setEndPage(lastInputPage); inputText = pdfStripper.getText(inputDoc); // Extraction of output text pdfStripper.setStartPage(1); pdfStripper.setEndPage(outputDoc4Size); outputText = pdfStripper.getText(outputDoc4); // Comparison of output and input text assertEquals(outputText, inputText); // Closing documents outputDoc1.close(); outputDoc2.close(); outputDoc3.close(); outputDoc4.close(); inputDoc.close(); } catch (final Exception e) { assertFalse(true); } }
From source file:org.pdfgal.pdfgal.pdfgal.PDFGalTest.java
License:Open Source License
/** * Test for method PDFGal.split(String inputUri, String outputUri, Integer * pages) throws IOException, COSVisitorException; *//*from w w w . j a v a 2s. co m*/ @Test public void splitSettingNumberOfPages() { final String inputUri = System.getProperty("user.dir") + TEST_RESOURCES + "splitinteger\\ISplitIntegerTest.pdf"; final String outputUri = System.getProperty("user.dir") + TEST_RESOURCES + "splitinteger\\OSplitIntegerTest.pdf"; final String outputUri1 = System.getProperty("user.dir") + TEST_RESOURCES + "splitinteger\\OSplitIntegerTest_1.pdf"; final String outputUri2 = System.getProperty("user.dir") + TEST_RESOURCES + "splitinteger\\OSplitIntegerTest_2.pdf"; final String outputUri3 = System.getProperty("user.dir") + TEST_RESOURCES + "splitinteger\\OSplitIntegerTest_3.pdf"; final Integer pages = 3; try { this.pdfGal.split(inputUri, outputUri, pages); final PDDocument outputDoc1 = PDDocument.load(outputUri1); final PDDocument outputDoc2 = PDDocument.load(outputUri2); final PDDocument outputDoc3 = PDDocument.load(outputUri3); final PDDocument inputDoc = PDDocument.load(inputUri); final Integer outputDoc1Size = outputDoc1.getNumberOfPages(); final Integer outputDoc2Size = outputDoc2.getNumberOfPages(); final Integer outputDoc3Size = outputDoc3.getNumberOfPages(); final Integer inputDocsPagesTotal = outputDoc1Size + outputDoc2Size + outputDoc3Size; assertEquals(new Integer(inputDoc.getNumberOfPages()), inputDocsPagesTotal); final PDFTextStripper pdfStripper = new PDFTextStripper(); String inputText = null; String outputText = null; Integer lastInputPage = null; /* Let's compare the first document */ // Extraction of input text lastInputPage = outputDoc1Size; pdfStripper.setStartPage(1); pdfStripper.setEndPage(lastInputPage); inputText = pdfStripper.getText(inputDoc); // Extraction of output text pdfStripper.setStartPage(1); pdfStripper.setEndPage(outputDoc1Size); outputText = pdfStripper.getText(outputDoc1); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the second document */ // Extraction of input text pdfStripper.setStartPage(lastInputPage + 1); lastInputPage = lastInputPage + outputDoc2Size; pdfStripper.setEndPage(lastInputPage); inputText = pdfStripper.getText(inputDoc); // Extraction of output text pdfStripper.setStartPage(1); pdfStripper.setEndPage(outputDoc2Size); outputText = pdfStripper.getText(outputDoc2); // Comparison of output and input text assertEquals(outputText, inputText); /* Let's compare the third document */ // Extraction of input text pdfStripper.setStartPage(lastInputPage + 1); lastInputPage = lastInputPage + outputDoc3Size; pdfStripper.setEndPage(lastInputPage); inputText = pdfStripper.getText(inputDoc); // Extraction of output text pdfStripper.setStartPage(1); pdfStripper.setEndPage(outputDoc3Size); outputText = pdfStripper.getText(outputDoc3); // Comparison of output and input text assertEquals(outputText, inputText); // Closing documents outputDoc1.close(); outputDoc2.close(); outputDoc3.close(); inputDoc.close(); } catch (final Exception e) { assertFalse(true); } }
From source file:org.pdfgal.pdfgal.utils.impl.PDFUtilsImpl.java
License:Open Source License
@Override public Integer getPages(final String uri) throws IOException { if (StringUtils.isBlank(uri)) { throw new IOException(); }// w ww . ja v a 2s. c om final PDDocument document = PDDocument.load(uri); final Integer numberOfPages = document.getNumberOfPages(); document.close(); return numberOfPages; }