List of usage examples for com.itextpdf.text.pdf PdfReader PdfReader
public PdfReader(final PdfReader reader)
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); }// w w w . j a v a 2 s .c o m reader.close(); BufferedImage buffImage; }
From source file:PdfFormFiller.WrongParamsExeption.java
License:GNU General Public License
public static void fillPDFFile(String pdf_filename_in, String pdf_filename_out, String fields_filename, String font_file, String op, Boolean flatten, Boolean verbose) { OutputStream os;/* w w w . j a va 2s .c o m*/ PdfStamper stamp; try { PdfReader reader = new PdfReader(pdf_filename_in); if (pdf_filename_out != null) { os = new FileOutputStream(pdf_filename_out); } else { os = System.out; } stamp = new PdfStamper(reader, os, '\0'); AcroFields form = stamp.getAcroFields(); if (op.equals("list")) { formList(form); } else { if (font_file != null) { BaseFont bf = BaseFont.createFont(font_file, BaseFont.IDENTITY_H, true); form.addSubstitutionFont(bf); } Map<String, String> fields = readFile(fields_filename); for (Map.Entry<String, String> entry : fields.entrySet()) { if (verbose) System.out.println("Field name = '" + entry.getKey() + "', New field value: '" + entry.getValue() + "'"); form.setField(entry.getKey(), entry.getValue()); } stamp.setFormFlattening(flatten); stamp.close(); } } catch (FileNotFoundException e) { System.err.println("FileNotFoundException: " + e.getMessage()); System.exit(2); } catch (IOException e) { System.err.println("Input output error: " + e.getMessage()); System.exit(3); } catch (DocumentException e) { System.err.println("Error while processing document: " + e.getMessage()); System.exit(4); } }
From source file:pdfgen.pdf_generation_try5.java
public void AllFunctions(String realpath, String sample_pdf_path) { try {/*from ww w . j ava 2 s . c om*/ INPUTFILE = sample_pdf_path; // System.out.println("Inputfile: "+INPUTFILE); Document document = new Document(); //PdfWriter.getInstance(document, new FileOutputStream(OUTPUTFILE)); OUTPUTFILE = filepath(realpath); //System.out.println("Outputfile"+OUTPUTFILE); PdfReader reader = new PdfReader(INPUTFILE); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(OUTPUTFILE)); // writer.setEncryption(USER_PASS.getBytes(), OWNER_PASS.getBytes(),PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128); document.open(); addTitlePage(document); 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.setAlignment(Element.ALIGN_LEFT); // document.add(instance); } addMetaData(document); pdfReaderFunction(reader); AddParagraph(document); // addContent(document); // scaleImage(); qr_generator(document); document.close(); } catch (Exception e) { e.printStackTrace(); } }
From source file:pdfmt.pdf2image.java
License:Open Source License
/** * Convert a PDF document to a TIF file *//*from www .ja va2s .com*/ protected static void convert(String pdf, String tif, String destPdf) throws IOException { org.icepdf.core.pobjects.Document pdffile = new org.icepdf.core.pobjects.Document(); try { pdffile.setFile(pdf); } catch (PDFException ex) { // System.out.println("Error parsing PDF document " + ex); } catch (PDFSecurityException ex) { // System.out.println("Error encryption not supported " + ex); } catch (FileNotFoundException ex) { // System.out.println("Error file not found " + ex); } catch (IOException ex) { // System.out.println("Error handling PDF document " + ex); } int numPgs = pdffile.getNumberOfPages(); try { // step 1: create new reader PdfReader r = new PdfReader(pdf); // System.out.println("File Lenght:" + r.getFileLength()); RandomAccessFileOrArray raf = new RandomAccessFileOrArray(pdf); // System.out.println("Raf:" + raf); Document document = new Document(r.getPageSizeWithRotation(1)); // // step 2: create a writer that listens to the document PdfCopy writer = new PdfCopy(document, new FileOutputStream(destPdf)); // // // step 3: we open the document document.open(); // // step 4: we add content PdfImportedPage page = null; // //loop through each page and if the bs is larger than 20 than we know it is not blank. //if it is less than 20 than we don't include that blank page. float scale = 2.084f; float rotation = 0f; BufferedImage image[] = new BufferedImage[numPgs]; for (int i = 0; i < numPgs; i++) { byte bContent[] = r.getPageContent(i + 1, raf); // System.out.println(bContent.toString()); ByteArrayOutputStream bs = new ByteArrayOutputStream(); //write the content to an output stream bs.write(bContent); //System.out.println("page content length of page " + i+1 + " = " // + bs.size()); /* * Generate the image: * Notes: 1275x1650 = 8.5 x 11 @ 150dpi ??? */ image[i] = (BufferedImage) pdffile.getPageImage(i, GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX, rotation, scale); Iterator writers = ImageIO.getImageWritersByFormatName("TIFF"); if (writers == null || !writers.hasNext()) { throw new RuntimeException("No writers for available."); } ImageWriter myWriter = (ImageWriter) writers.next(); myWriter.setOutput(new FileImageOutputStream(new File(tif))); myWriter.prepareWriteSequence(null); ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(image[i]); IIOMetadata imageMetadata = myWriter.getDefaultImageMetadata(imageType, null); imageMetadata = createImageMetadata(imageMetadata); myWriter.writeToSequence(new IIOImage(image[i], null, imageMetadata), null); myWriter.dispose(); image[i] = null; myWriter = null; FileInputStream in = new FileInputStream(tif); FileChannel channel = in.getChannel(); ByteBuffer buffer = ByteBuffer.allocate((int) channel.size()); channel.read(buffer); Image imageBlank; imageBlank = load(buffer.array()); BufferedImage bufferedImage = imageToBufferedImage(imageBlank); boolean isBlank; isBlank = isBlank(bufferedImage); // System.out.println("isblank "+ isBlank); if (isBlank == false) { page = writer.getImportedPage(r, i + 1); writer.addPage(page); } bs.close(); System.gc(); } document.close(); writer.close(); raf.close(); r.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:pdfmt.RemoveBlankPdf.java
License:Open Source License
/** * Convert a PDF document to a TIF file. * // w ww . j a v a 2 s .co m * @param pdf * the pdf * @param tif * the tif * @param destPdf * the dest pdf * @throws IOException * Signals that an I/O exception has occurred. */ protected void convert(String pdf, String tif, String destPdf) throws IOException { startTime = System.currentTimeMillis(); logger.info("In the boolean convert(String pdf, String tif, String destPdf)"); org.icepdf.core.pobjects.Document pdffile = new org.icepdf.core.pobjects.Document(); try { pdffile.setFile(pdf); } catch (PDFException ex) { // System.out.println("Error parsing PDF document " + ex); } catch (PDFSecurityException ex) { // System.out.println("Error encryption not supported " + ex); } catch (FileNotFoundException ex) { // System.out.println("Error file not found " + ex); } catch (IOException ex) { // System.out.println("Error handling PDF document " + ex); } int numPgs = pdffile.getNumberOfPages(); msg.setText(".....::::: Converting pages please wait :::::....."); addComponent(contentPane, msg, 10, 110, 200, 18); try { // step 1: create new reader PdfReader r = new PdfReader(pdf); // System.out.println("File Lenght:" + r.getFileLength()); RandomAccessFileOrArray raf = new RandomAccessFileOrArray(pdf); // System.out.println("Raf:" + raf); Document document = new Document(r.getPageSizeWithRotation(1)); // // step 2: create a writer that listens to the document PdfCopy writer = new PdfCopy(document, new FileOutputStream(destPdf)); // // // step 3: we open the document document.open(); // // step 4: we add content PdfImportedPage page = null; float scale = 2.084f; float rotation = 0f; BufferedImage image[] = new BufferedImage[numPgs]; // -------- CHANGE jprogress.setMaximum(numPgs); // -------- CHANGE for (int i = 0; i < numPgs; i++) { // -------- CHANGE jprogress.setValue(i + 1); // -------- CHANGE byte bContent[] = r.getPageContent(i + 1, raf); // System.out.println(bContent.toString()); ByteArrayOutputStream bs = new ByteArrayOutputStream(); // write the content to an output stream bs.write(bContent); // System.out.println("page content length of page " + i+1 + // " = " // + bs.size()); /* * Generate the image: Notes: 1275x1650 = 8.5 x 11 @ 150dpi ??? */ image[i] = (BufferedImage) pdffile.getPageImage(i, GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX, rotation, scale); Iterator writers = ImageIO.getImageWritersByFormatName("TIFF"); if (writers == null || !writers.hasNext()) { throw new RuntimeException("No writers for available."); } ImageWriter myWriter = (ImageWriter) writers.next(); myWriter.setOutput(new FileImageOutputStream(new File(tif))); myWriter.prepareWriteSequence(null); ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(image[i]); IIOMetadata imageMetadata = myWriter.getDefaultImageMetadata(imageType, null); imageMetadata = createImageMetadata(imageMetadata); myWriter.writeToSequence(new IIOImage(image[i], null, imageMetadata), null); myWriter.dispose(); image[i] = null; myWriter = null; FileInputStream in = new FileInputStream(tif); FileChannel channel = in.getChannel(); ByteBuffer buffer = ByteBuffer.allocate((int) channel.size()); channel.read(buffer); Image imageBlank; imageBlank = load(buffer.array()); BufferedImage bufferedImage = imageToBufferedImage(imageBlank); boolean isBlank; isBlank = isBlank(bufferedImage); // System.out.println("isblank "+ isBlank); boolean hasContent = false; File file = new File(TEMP_DIR + TEMP_EXTR_TEXT); try { FileWriter fileWriter = new FileWriter(file); PageText pageText = pdffile.getPageText(i); if (pageText != null && pageText.getPageLines() != null) { fileWriter.write(pageText.toString()); } // close the writer fileWriter.close(); System.out.println(file.length()); if (file.length() > 20) { hasContent = true; } file.delete(); System.out.println(TEMP_TIFF + " deleted"); } catch (IOException e) { e.printStackTrace(); } if (isBlank == false && hasContent == true) { page = writer.getImportedPage(r, i + 1); writer.addPage(page); } bs.close(); in.close(); File ft = new File(TEMP_DIR + TEMP_TIFF); boolean check = ft.delete(); if (check == true) { System.out.println("Deleted"); } else { System.out.println("Stuck"); } System.gc(); } document.close(); writer.close(); raf.close(); r.close(); stopTime = System.currentTimeMillis(); logger.info("Exit boolean convert(String pdf, String tif, String destPdf) with time: " + ((stopTime - startTime) / 1000)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:pdfreadersample.PdfReadersample.java
/** * @param args the command line arguments *//*from ww w . j a va2s . c o m*/ public static void main(String[] args) throws IOException { // TODO code application logic here String[] lstrwordlist = {}; ArrayList<Integer> lobjlist = new ArrayList<Integer>(); PdfReader reader = new PdfReader("C:/Users/Varnith/Desktop/TestFilewithNumbers.pdf"); System.out.println("This PDF has " + reader.getNumberOfPages() + " pages."); for (int i = 0; i < reader.getNumberOfPages(); i++) { String page = PdfTextExtractor.getTextFromPage(reader, i + 1); lstrwordlist = page.trim().split("\n"); //System.out.println("hello"); for (int j = 0; j < lstrwordlist.length; j++) { lobjlist.add(Integer.valueOf(lstrwordlist[j].trim())); } //lobjlist.add(lstrwordlist[0]); //System.out.println("Page Content:\n\n"+page+"\n\n"); } System.out.println("length of element :" + lobjlist.size()); //System.out.println("Is this document encrypted: "+reader.isEncrypted()); }
From source file:pdftotextconverter.PDFToTextConverter.java
public static void convertPDFToText(String src, String desc) { try {/*ww w .j ava 2 s. c o m*/ FileWriter fw = new FileWriter(desc); BufferedWriter bw = new BufferedWriter(fw); PdfReader pr = new PdfReader(src); int pNum = pr.getNumberOfPages(); for (int page = 1; page <= pNum; page++) { String text = PdfTextExtractor.getTextFromPage(pr, page); bw.write(text); bw.newLine(); } bw.flush(); bw.close(); } catch (Exception e) { e.printStackTrace(); } }
From source file:pdfupdate.PdfUpdate.java
public void manipulatePdf(String src, String dest) throws IOException, DocumentException { PdfReader.unethicalreading = false;/*from w ww . jav a 2 s . c o m*/ PdfReader reader = new PdfReader(src); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); AcroFields form = stamper.getAcroFields(); XfaForm xfa = form.getXfa(); xfa.fillXfaForm(new FileInputStream(XML)); stamper.close(); reader.close(); }
From source file:pdfupdate.PdfUpdate.java
public void manipulatePdf2(String src, String dest) throws IOException, DocumentException { PdfReader reader = new PdfReader(src); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); AcroFields form = stamper.getAcroFields(); XfaForm xfa = form.getXfa();/*from w ww . ja v a 2 s . co m*/ xfa.fillXfaForm(new FileInputStream(XML)); stamper.close(); reader.close(); }
From source file:pdfupdate.PdfUpdate.java
public void readXml(String src, String dest) throws IOException, DocumentException, TransformerException { PdfReader reader = new PdfReader(src); AcroFields form = reader.getAcroFields(); XfaForm xfa = form.getXfa();//from w ww . ja v a2 s.co m Node node = xfa.getDatasetsNode(); NodeList list = node.getChildNodes(); for (int i = 0; i < list.getLength(); i++) { if ("data".equals(list.item(i).getLocalName())) { node = list.item(i); break; } } list = node.getChildNodes(); for (int i = 0; i < list.getLength(); i++) { if ("movies".equals(list.item(i).getLocalName())) { node = list.item(i); break; } } Transformer tf = TransformerFactory.newInstance().newTransformer(); tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); tf.setOutputProperty(OutputKeys.INDENT, "yes"); FileOutputStream os = new FileOutputStream(dest); tf.transform(new DOMSource(node), new StreamResult(os)); reader.close(); }