List of usage examples for com.itextpdf.text.pdf PdfReader getNumberOfPages
public int getNumberOfPages()
From source file:org.sejda.impl.itext5.component.split.AbstractPdfSplitter.java
License:Open Source License
/** * Creates a new splitter using the given reader. * //from ww w .j a v a 2 s . c o m * @param reader */ AbstractPdfSplitter(PdfReader reader, T parameters) { this.reader = reader; this.parameters = parameters; this.totalPages = reader.getNumberOfPages(); this.outlineSubsetProvider = new ITextOutlineSubsetProvider(reader); this.outputWriter = OutputWriters.newMultipleOutputWriter(parameters.isOverwrite()); }
From source file:org.sinarproject.ECRedelineation.java
/** * @param args the command line arguments *///from w ww.j av a 2 s . c o m public static void main(String[] args) { // TODO code application logic here out.println("Sinar Project's EC Parser .."); PdfReader reader = null; try { reader = new PdfReader(SOURCE); int n; n = reader.getNumberOfPages(); int i; // Maps init .. Key is <PAR_CODE>/<DUN_CODE>/<DM_CODE> // <Key> -> Name:Population // Errors -> Map<ErrKey, Original String>; ErrKey is Nxx final_mapped_data = new TreeMap<>(); error_while_parsing = new TreeMap<>(); // Loop through each page .. for (i = 1; i < n; i++) { try { String content; content = PdfTextExtractor.getTextFromPage(reader, i, new LocationTextExtractionStrategy()); // content = PdfTextExtractor.getTextFromPage(reader, i); describePage(content, i); } catch (IOException ex) { Logger.getLogger(ECRedelineation.class.getName()).log(Level.SEVERE, null, ex); } } // Dump out error hash .. if any if (error_while_parsing.size() > 0) { out.println("=============================="); out.println(" PARSING ERRORS --> " + error_while_parsing.size() + " errors!!!"); out.println("DUN: " + DUNerrors + " DM: " + DMerrors + " Fixed:" + fixedDMs); out.println("=============================="); // TODO: Shift to file output /* for (Map.Entry<String, String> single_report_entry : error_while_parsing.entrySet()) { out.println("CODE: " + single_report_entry.getKey()); out.println("UNMATCHED: " + single_report_entry.getValue()); } */ } else { out.println("========================"); out.println(" ALL OK!!! "); out.println("========================"); } out.println("========================"); out.println(" @@@@ Data!!! @@@@ "); out.println("========================"); out.println("Final DM count: " + countedDM); // Detect if there any population not being able to be detected; so action can be taken for (Map.Entry<String, String> single_data_entry : final_mapped_data.entrySet()) { // Output those that were not able to be auto-corrected .. if (single_data_entry.getValue().endsWith(":0")) { out.print("KEY:" + single_data_entry.getKey()); out.println(" ==> " + single_data_entry.getValue()); } ; } // write down Output // No JSON output in this cut :( Leave it for interaction with golang // and shapefile mapping and manipulatons .. Utils.writeJSONMappedData(); // go direct to CSV .. // Utils.writeCSVFinalData(); out.println("xxxxxxxXXXXXXXXXXxxxxxxxxx"); } catch (IOException ex) { Logger.getLogger(ECRedelineation.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:org.smap.sdal.managers.MiscPDFManager.java
License:Open Source License
public void createUsagePdf(Connection sd, OutputStream outputStream, String basePath, HttpServletResponse response, int o_id, int month, int year, String period, String org_name) { PreparedStatement pstmt = null; if (org_name == null) { org_name = "None"; }//w w w.j a va2 s .c o m try { String filename; // Get fonts and embed them String os = System.getProperty("os.name"); log.info("Operating System:" + os); if (os.startsWith("Mac")) { FontFactory.register("/Library/Fonts/fontawesome-webfont.ttf", "Symbols"); FontFactory.register("/Library/Fonts/Arial Unicode.ttf", "default"); FontFactory.register("/Library/Fonts/NotoNaskhArabic-Regular.ttf", "arabic"); FontFactory.register("/Library/Fonts/NotoSans-Regular.ttf", "notosans"); } else if (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0 || os.indexOf("aix") > 0) { // Linux / Unix FontFactory.register("/usr/share/fonts/truetype/fontawesome-webfont.ttf", "Symbols"); FontFactory.register("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf", "default"); FontFactory.register("/usr/share/fonts/truetype/NotoNaskhArabic-Regular.ttf", "arabic"); FontFactory.register("/usr/share/fonts/truetype/NotoSans-Regular.ttf", "notosans"); } Symbols = FontFactory.getFont("Symbols", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 12); defaultFont = FontFactory.getFont("default", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 10); filename = org_name + "_" + year + "_" + month + ".pdf"; /* * Get the usage results */ String sql = "SELECT users.id as id," + "users.ident as ident, " + "users.name as name, " + "(select count (*) from upload_event ue, subscriber_event se " + "where ue.ue_id = se.ue_id " + "and se.status = 'success' " + "and se.subscriber = 'results_db' " + "and extract(month from upload_time) = ? " // current month + "and extract(year from upload_time) = ? " // current year + "and ue.user_name = users.ident) as month, " + "(select count (*) from upload_event ue, subscriber_event se " + "where ue.ue_id = se.ue_id " + "and se.status = 'success' " + "and se.subscriber = 'results_db' " + "and ue.user_name = users.ident) as all_time " + "from users " + "where users.o_id = ? " + "and not users.temporary " + "order by users.ident;"; pstmt = sd.prepareStatement(sql); pstmt.setInt(1, month); pstmt.setInt(2, year); pstmt.setInt(3, o_id); log.info("Get Usage Data: " + pstmt.toString()); // If the PDF is to be returned in an http response then set the file name now if (response != null) { log.info("Setting filename to: " + filename); setFilenameInResponse(filename, response); } /* * Get a template for the PDF report if it exists * The template name will be the same as the XLS form name but with an extension of pdf */ String stationaryName = basePath + File.separator + "misc" + File.separator + "UsageReportTemplate.pdf"; File stationaryFile = new File(stationaryName); ByteArrayOutputStream baos = null; ByteArrayOutputStream baos_s = null; PdfWriter writer = null; /* * Create document in two passes, the second pass adds the letter head */ // Create the underlying document as a byte array Document document = new Document(PageSize.A4); document.setMargins(marginLeft, marginRight, marginTop_1, marginBottom_1); if (stationaryFile.exists()) { baos = new ByteArrayOutputStream(); baos_s = new ByteArrayOutputStream(); writer = PdfWriter.getInstance(document, baos); } else { writer = PdfWriter.getInstance(document, outputStream); } writer.setInitialLeading(12); writer.setPageEvent(new PageSizer()); document.open(); // Write the usage data ResultSet resultSet = pstmt.executeQuery(); PdfPTable table = new PdfPTable(4); // Add the header row table.getDefaultCell().setBorderColor(BaseColor.LIGHT_GRAY); table.getDefaultCell().setBackgroundColor(VLG); table.addCell("User Id"); table.addCell("User Name"); table.addCell("Usage in Period"); table.addCell("All Time Usage"); table.setHeaderRows(1); // Add the user data int total = 0; int totalAllTime = 0; table.getDefaultCell().setBackgroundColor(null); while (resultSet.next()) { String ident = resultSet.getString("ident"); String name = resultSet.getString("name"); String monthUsage = resultSet.getString("month"); int monthUsageInt = resultSet.getInt("month"); String allTime = resultSet.getString("all_time"); int allTimeInt = resultSet.getInt("all_time"); table.addCell(ident); table.addCell(name); table.addCell(monthUsage); table.addCell(allTime); total += monthUsageInt; totalAllTime += allTimeInt; } // Add the totals table.getDefaultCell().setBackgroundColor(VLG); table.addCell("Totals: "); table.addCell(" "); table.addCell(String.valueOf(total)); table.addCell(String.valueOf(totalAllTime)); document.add(table); document.close(); if (stationaryFile.exists()) { // Step 2 - Populate the fields in the stationary PdfReader s_reader = new PdfReader(stationaryName); PdfStamper s_stamper = new PdfStamper(s_reader, baos_s); AcroFields pdfForm = s_stamper.getAcroFields(); Set<String> fields = pdfForm.getFields().keySet(); for (String key : fields) { log.info("Field: " + key); } pdfForm.setField("billing_period", period); pdfForm.setField("organisation", org_name); s_stamper.setFormFlattening(true); s_stamper.close(); // Step 3 - Apply the stationary to the underlying document PdfReader reader = new PdfReader(baos.toByteArray()); // Underlying document PdfReader f_reader = new PdfReader(baos_s.toByteArray()); // Filled in stationary PdfStamper stamper = new PdfStamper(reader, outputStream); PdfImportedPage letter1 = stamper.getImportedPage(f_reader, 1); int n = reader.getNumberOfPages(); PdfContentByte background; for (int i = 0; i < n; i++) { background = stamper.getUnderContent(i + 1); if (i == 0) { background.addTemplate(letter1, 0, 0); } } stamper.close(); reader.close(); } } catch (SQLException e) { log.log(Level.SEVERE, "SQL Error", e); } catch (Exception e) { log.log(Level.SEVERE, "Exception", e); } finally { try { if (pstmt != null) { pstmt.close(); } } catch (SQLException e) { } } }
From source file:org.zaproxy.zap.extension.alertReport.AlertReportExportPDF.java
License:Apache License
public boolean exportAlert(java.util.List<java.util.List<Alert>> alerts, String fileName, ExtensionAlertReportExport extensionExport) { Document document = new Document(PageSize.A4); try {/*from www.j a v a 2s . co m*/ // Document documentAdd = null; PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(fileName)); document.open(); boolean attach = false; // add attach document is exist if (!extensionExport.getParams().getDocumentAttach().isEmpty()) { PdfReader reader = new PdfReader(extensionExport.getParams().getDocumentAttach()); int n = reader.getNumberOfPages(); PdfImportedPage page; // Go through all pages for (int i = 1; i <= n; i++) { page = writer.getImportedPage(reader, i); Image instance = Image.getInstance(page); instance.scalePercent(95f); document.add(instance); } attach = true; } if (!attach) { addMetaData(document, extensionExport); addTitlePage(document, extensionExport); } for (int i = 0; i < alerts.size(); i++) { java.util.List<Alert> alertAux = alerts.get(i); addContent(document, alertAux, extensionExport); } document.close(); return true; } catch (Exception e) { logger.error(e.getMessage(), e); document.close(); return false; } }
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 ww w . j a v a 2 s .c o m 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 rotateAlPages(String queueId, String myPdfDir, String myPdfName, int degrees) throws Exception { long lastModified; String filePathName, tempFilePathName; int rot;// w w w. j a v a 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); 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 v a 2 s . 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();/*from w w w . j a v a 2 s . c o m*/ 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:Package1.MAIN.java
public void pdf_reader() { int value = 0; try {/*from w w w. j a v a 2s.co m*/ PdfReader reader = new PdfReader(dir); int p = reader.getNumberOfPages(); String page = ""; if (p <= 250) { for (int i = 1; i <= p; i++) { if (i == 1) page = page + "\t\n---------------\t\tPage: " + i + "\t\t---------------\n\n\n"; else page = page + "\t\n\n\n---------------\t\tPage: " + i + "\t\t---------------\n\n\n"; page = page + PdfTextExtractor.getTextFromPage(reader, i); value = (i * 100) / p; progressive_status(value); } // jProgressBar1.setValue(value); } else { for (int i = 1; i <= 200; i++) { if (i == 1) page = page + "\t\n---------------\t\tPage: " + i + "\t\t---------------\n\n\n"; else page = page + "\t\n\n\n---------------\t\tPage: " + i + "\t\t---------------\n\n\n"; page = page + PdfTextExtractor.getTextFromPage(reader, i); value = (i * 100) / p; progressive_status(value); } JOptionPane.showMessageDialog(null, "Only 200 Page converted. \n Download pro version for full access. ", "Warning!!", JOptionPane.PLAIN_MESSAGE); } jTextPane1.setText(page); jLabel1.setText("Total Pages: " + p); } catch (IOException ex) { Logger.getLogger(MAIN.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:pdf.alterLetter.java
public static void main(String args[]) { try {/*w w w . ja v a2s . com*/ PdfReader pdfReader; pdfReader = new PdfReader("C:\\Users\\asus\\Desktop\\web\\Appointment letter.pdf"); //pdfReader = new PdfReader("C:\\Users\\asus\\Desktop\\TFMsystem\\Appointment letter.pdf"); //Create PdfStamper instance. PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream( "C:\\Users\\asus\\Desktop\\TFMsystem\\web\\Modified appointment letter.pdf")); //new FileOutputStream("C:\\Users\\asus\\Desktop\\TFMsystem\\Modified appointment letter.pdf")); //Create BaseFont instance. BaseFont baseFont = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1257, BaseFont.NOT_EMBEDDED); //Get the number of pages in pdf. int pages = pdfReader.getNumberOfPages(); //Iterate the pdf through pages. for (int i = 1; i <= pages; i++) { //Contain the pdf data. PdfContentByte pageContentByte = pdfStamper.getOverContent(i); pageContentByte.beginText(); //Set text font and size. pageContentByte.setFontAndSize(baseFont, 12); //Write text pageContentByte.setTextMatrix(120, 706); pageContentByte.showText("[no rujukan(enter by admin/opai)]"); pageContentByte.setTextMatrix(500, 706); pageContentByte.showText("[current date]"); //address pageContentByte.setTextMatrix(46, 641); pageContentByte.showText("[name]"); pageContentByte.setTextMatrix(46, 629); pageContentByte.showText("[position]"); pageContentByte.setTextMatrix(46, 617); pageContentByte.showText("[department]"); pageContentByte.setTextMatrix(155, 493); pageContentByte.showText("[status(penyelaras/ahli),taskforce name]"); pageContentByte.setTextMatrix(178, 433); pageContentByte.showText("[start date]"); pageContentByte.setTextMatrix(290, 433); pageContentByte.showText("[end date] ."); pageContentByte.setTextMatrix(46, 248); pageContentByte.showText("[name]"); pageContentByte.setTextMatrix(46, 236); pageContentByte.showText("[post]"); pageContentByte.setTextMatrix(46, 224); pageContentByte.showText("[faculty]"); pageContentByte.setTextMatrix(46, 212); pageContentByte.showText("[email]"); pageContentByte.endText(); } //Close the pdfStamper. pdfStamper.close(); System.out.println("PDF modified successfully."); } catch (Exception e) { e.printStackTrace(); } }