List of usage examples for com.itextpdf.text.pdf PdfReader PdfReader
public PdfReader(final PdfReader reader)
From source file:controller.CCInstance.java
License:Open Source License
public final int getNumberOfSignatures(final String pdfPath) { final KeyStore keystore = KeyStoreUtil.loadCacertsKeyStore(); try {/*w w w . j a v a2 s. co m*/ keystore.load(null, null); final PdfReader reader = new PdfReader(pdfPath); final int numSigs = reader.getAcroFields().getSignatureNames().size(); reader.close(); return numSigs; } catch (IOException ex) { controller.Logger.getLogger().addEntry(ex); } catch (NoSuchAlgorithmException ex) { controller.Logger.getLogger().addEntry(ex); } catch (CertificateException ex) { controller.Logger.getLogger().addEntry(ex); } return -1; }
From source file:controller.CCInstance.java
License:Open Source License
public final ArrayList<SignatureValidation> validatePDF(final String file, final ValidationListener vl) throws IOException, DocumentException, GeneralSecurityException { this.validating = true; final PdfReader reader = new PdfReader(file); final AcroFields af = reader.getAcroFields(); final ArrayList names = af.getSignatureNames(); final ArrayList<SignatureValidation> validateList = new ArrayList<>(); X509Certificate x509c = null; Security.setProperty("ocsp.enable", "true"); System.setProperty("com.sun.security.enableCRLDP", "true"); boolean nextValid = true; for (Object o : names) { if (!validating) { return null; }//from w w w . j ava 2 s .c om final String name = (String) o; final PdfPKCS7 pk = af.verifySignature(name, "BC"); final Certificate pkc[] = pk.getCertificates(); x509c = (X509Certificate) pkc[pkc.length - 1]; final Certificate[] aL = pkc;//getCompleteCertificateChain(x509c); if (null == aL || 0 == aL.length) { return null; } CertificateStatus ocspCertificateStatus = CertificateStatus.UNCHECKED; BasicOCSPResp ocspResp = pk.getOcsp(); if (null != ocspResp && pk.isRevocationValid()) { for (SingleResp singleResp : ocspResp.getResponses()) { if (null == singleResp.getCertStatus()) { ocspCertificateStatus = CertificateStatus.OK; } else if (singleResp.getCertStatus() instanceof RevokedStatus) { if (ocspResp.getProducedAt() .before(((RevokedStatus) singleResp.getCertStatus()).getRevocationTime())) { ocspCertificateStatus = CertificateStatus.OK; } else { ocspCertificateStatus = CertificateStatus.REVOKED; } } else if (singleResp.getCertStatus() instanceof UnknownStatus) { ocspCertificateStatus = CertificateStatus.UNKNOWN; } } } CertificateStatus crlCertificateStatus = CertificateStatus.UNCHECKED; Collection<CRL> crlResp = pk.getCRLs(); if (null != crlResp) { boolean revoked = false; for (CRL crl : crlResp) { if (crl.isRevoked(x509c)) { revoked = true; } } crlCertificateStatus = revoked ? CertificateStatus.REVOKED : CertificateStatus.OK; } if (ocspCertificateStatus.equals(CertificateStatus.UNCHECKED) && crlCertificateStatus.equals(CertificateStatus.UNCHECKED)) { if (pkc.length == 1) { Certificate[] completeChain = getCompleteTrustedCertificateChain(x509c); if (completeChain.length == 1) { ocspCertificateStatus = CertificateStatus.UNCHAINED; } else { ocspCertificateStatus = CertificateStatus.CHAINED_LOCALLY; } } } final TimeStampToken tst = pk.getTimeStampToken(); boolean validTimestamp = false; if (null != tst) { final boolean hasTimestamp = pk.verifyTimestampImprint(); validTimestamp = hasTimestamp && CertificateVerification.verifyTimestampCertificates(tst, ks, null); } PdfDictionary pdfDic = reader.getAcroFields().getSignatureDictionary(name); SignaturePermissions sp = new SignaturePermissions(pdfDic, null); boolean isValid; if (nextValid) { isValid = pk.verify(); } else { isValid = false; } List<AcroFields.FieldPosition> posList = af.getFieldPositions(name); final SignatureValidation signature = new SignatureValidation(file, name, pk, !pk.verify(), af.signatureCoversWholeDocument(name), af.getRevision(name), af.getTotalRevisions(), reader.getCertificationLevel(), ocspCertificateStatus, crlCertificateStatus, validTimestamp, posList, sp, isValid); validateList.add(signature); if (null != vl) { vl.onValidationComplete(signature); } if (!sp.isFillInAllowed()) { nextValid = false; } } return validateList; }
From source file:controller.CCInstance.java
License:Open Source License
public File extractRevision(final String filePath, final String revision) throws IOException, RevisionExtractionException { final PdfReader reader = new PdfReader(filePath); final AcroFields af = reader.getAcroFields(); final File fout = File.createTempFile("temp", " - " + WordUtils.capitalize(Bundle.getBundle().getString("revision")) + ": " + revision + ".pdf"); final FileOutputStream os = new FileOutputStream(fout); final byte bb[] = new byte[1028]; final InputStream ip = af.extractRevision(revision); if (null == ip) { throw new RevisionExtractionException(); }//from w w w .ja va 2s. c o m int n = 0; while ((n = ip.read(bb)) > 0) { os.write(bb, 0, n); } os.close(); ip.close(); return fout; }
From source file:controller.CCInstance.java
License:Open Source License
public final int getCertificationLevel(final String filename) throws IOException { final PdfReader reader = new PdfReader(filename); final int certLevel = reader.getCertificationLevel(); reader.close();//from w ww .jav a 2 s . co m return certLevel; }
From source file:controller.DownloadCVServlet.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * * @param request servlet request/* www. j a v a2 s.com*/ * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //protect servlet HttpSession session = request.getSession(); Admin loggedInAdmin = (Admin) session.getAttribute("admin"); //check if admin is logged in if (loggedInAdmin == null) { response.sendRedirect("login.jsp"); return; } String[] appIDs = request.getParameterValues("download"); ServletOutputStream sOut = response.getOutputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipOutputStream zos = new ZipOutputStream(baos); //prepare fonts Font font = FontFactory.getFont("Arial", 10); for (String appIDStr : appIDs) { int appID = Integer.parseInt(appIDStr); Application application = ApplicationDAO.retrieveByAppID(appID); Job job = JobDAO.retrieveJobById(application.getJobID()); ZipEntry entry = new ZipEntry(application.getFullname() + "_CV.pdf"); zos.putNextEntry(entry); String path = System.getenv("OPENSHIFT_DATA_DIR"); if (path == null) { path = getServletContext().getRealPath("/templates/Personal_Particulars_Form.pdf"); } else { path += "Personal_Particulars_Form.pdf"; } try { //Prepare PdfStamper PdfReader reader = new PdfReader(path); PdfStamper stamper = new PdfStamper(reader, zos); stamper.setRotateContents(false); stamper.getWriter().setCloseStream(false); //Get first page PdfContentByte canvas = stamper.getOverContent(1); //Application ID ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getAppID() + "", font), 110, 555, 0); //Date Applied ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getDateApplied(), font), 110, 526, 0); //Position Applied ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(job.getPostingTitle(), font), 36, 442, 0); //Job ID ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getJobID() + "", font), 405, 442, 0); //Name ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getFullname(), font), 36, 350, 0); //Street ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getBlkStreetUnit(), font), 36, 305, 0); //Postal Code ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getPostalCode(), font), 377, 305, 0); //Nationality ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getNricType(), font), 36, 260, 0); //NRIC ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getNric(), font), 289, 260, 0); //DOB ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getDob(), font), 36, 215, 0); //Gender ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getGender(), font), 379, 215, 0); //Contact Number ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getContactNo(), font), 36, 170, 0); //Email Address ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(application.getEmailAddress(), font), 36, 125, 0); //Declaration ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase("X", font), 50, 80, 0); //Generated on DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore")); Date date = new Date(); String today = dateFormat.format(date); ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(today, font), 437, 15, 0); stamper.close(); reader.close(); } catch (DocumentException e) { e.printStackTrace(); } } zos.close(); response.setContentType("application/zip"); response.addHeader("Content-Disposition", "attachment; filename=CVs.zip"); sOut.write(baos.toByteArray()); sOut.close(); }
From source file:conversorpdf.Conversor.Conversor.java
/** * Parses a PDF to a plain text file.// www .j av a 2 s . com * @param pdf the original PDF * @param txt the resulting text * @throws IOException */ public boolean parsePdf(String pdf, String txt, boolean removerAcento) throws IOException { PdfReader reader = new PdfReader(pdf); PdfReaderContentParser parser = new PdfReaderContentParser(reader); PrintWriter out = new PrintWriter(new FileOutputStream(txt)); TextExtractionStrategy strategy; for (int i = 1; i <= reader.getNumberOfPages(); i++) { strategy = parser.processContent(i, new SimpleTextExtractionStrategy()); if (removerAcento == false) { out.println(strategy.getResultantText()); } else { out.println(this.removeAcentos(strategy.getResultantText())); } } out.flush(); out.close(); return true; }
From source file:coviam.pdf.PdfParser.java
public void getText() { String pdf = "/home/amit/NetBeansProjects/ResumeParser/data/resumes/ejd1.pdf"; String text = "/home/amit/NetBeansProjects/ResumeParser/data/resumes/edj1.txt"; StringBuffer textBuffer = new StringBuffer(); String resultText = ""; PdfReader reader;//from w w w . j ava2 s . c om try { reader = new PdfReader(pdf); PdfReaderContentParser contentParser = new PdfReaderContentParser(reader); PrintWriter printWriter = new PrintWriter(new FileOutputStream(text)); TextExtractionStrategy strategy; for (int i = 1; i <= reader.getNumberOfPages(); i++) { strategy = contentParser.processContent(i, new SimpleTextExtractionStrategy()); textBuffer.append(strategy.getResultantText()); } resultText = textBuffer.toString(); resultText = resultText.replaceAll("-\n", ""); System.out.println("-->" + resultText); StringTokenizer stringTokenizer = new StringTokenizer(resultText, "\n"); PrintWriter lineWriter = new PrintWriter( new FileOutputStream("/home/amit/NetBeansProjects/ResumeParser/data/resumes/edj1.txt")); while (stringTokenizer.hasMoreTokens()) { String curToken = stringTokenizer.nextToken(); lineWriter.println("line-->" + curToken); } lineWriter.flush(); lineWriter.close(); System.out.flush(); System.out.close(); } catch (IOException ioe) { } }
From source file:cz.hobrasoft.pdfmu.operation.args.InPdfArgs.java
License:Open Source License
public PdfReader open() throws OperationException { assert file != null; assert is == null; assert pdfReader == null; logger.info(String.format("Input file: %s", file)); // Open the input stream try {/*from w w w . ja va 2s .c o m*/ is = new FileInputStream(file); } catch (FileNotFoundException ex) { throw new OperationException(INPUT_NOT_FOUND, ex, PdfmuUtils.sortedMap(new String[] { "file" }, new Object[] { file })); } // Open the PDF reader try { pdfReader = new PdfReader(is); } catch (IOException ex) { throw new OperationException(INPUT_NOT_VALID_PDF, ex, PdfmuUtils.sortedMap(new String[] { "file" }, new Object[] { file })); } return pdfReader; }
From source file:cz.hobrasoft.pdfmu.operation.OperationInspect.java
License:Open Source License
public Inspect execute(File file) throws OperationException, IOException { assert file != null; Inspect result;// w w w .j av a 2 s .co m try (InputStream is = new FileInputStream(file)) { PdfReader pdfReader = new PdfReader(is); try { result = execute(pdfReader); } finally { pdfReader.close(); } } return result; }
From source file:cz.muni.pdfjbim.PdfImageExtractor.java
License:Apache License
/** * Parses a PDF and extracts all the images. * @param filename /* ww w. jav a 2 s . c o m*/ * @throws IOException * @throws DocumentException */ public static void extractImages(String filename) throws IOException, DocumentException { PdfReader reader = new PdfReader(filename); PdfReaderContentParser parser = new PdfReaderContentParser(reader); MyImageRenderListener listener = new MyImageRenderListener("Img%s.%s"); for (int i = 1; i <= reader.getNumberOfPages(); i++) { parser.processContent(i, listener); } }