List of usage examples for com.itextpdf.text.pdf RandomAccessFileOrArray RandomAccessFileOrArray
@Deprecated public RandomAccessFileOrArray(byte arrayIn[])
From source file:com.vectorprint.report.itext.DefaultElementProducer.java
License:Open Source License
@Override public void loadPdf(File pdf, PdfWriter writer, byte[] password, ImageProcessor imageProcessor, int... pages) throws VectorPrintException { RandomAccessFileOrArray ra = null;//from w ww. j av a2 s .co m try { RandomAccessSourceFactory rasf = new RandomAccessSourceFactory(); ra = new RandomAccessFileOrArray(rasf.createBestSource(pdf.getPath())); PdfReader reader = new PdfReader(ra, password); if (pages == null) { for (int i = 0; i < reader.getNumberOfPages();) { imageProcessor.processImage(Image.getInstance(writer.getImportedPage(reader, ++i))); writer.freeReader(reader); } } else { for (int i : pages) { imageProcessor.processImage(Image.getInstance(writer.getImportedPage(reader, i))); writer.freeReader(reader); } } } catch (BadElementException | IOException ex) { throw new VectorPrintException(String.format("unable to load image %s", pdf.toString()), ex); } finally { if (ra != null) { try { ra.close(); } catch (IOException ex) { } } } }
From source file:com.vectorprint.report.itext.DefaultElementProducer.java
License:Open Source License
@Override public void loadTiff(File tiff, ImageProcessor imageProcessor, int... pages) throws VectorPrintException { RandomAccessFileOrArray ra = null;/*from ww w .ja va2s. c o m*/ try { RandomAccessSourceFactory rasf = new RandomAccessSourceFactory(); ra = new RandomAccessFileOrArray(rasf.createBestSource(tiff.getPath())); if (pages == null) { for (int i = 0; i < TiffImage.getNumberOfPages(ra);) { imageProcessor.processImage(TiffImage.getTiffImage(ra, ++i)); } } else { for (int i : pages) { imageProcessor.processImage(TiffImage.getTiffImage(ra, i)); } } } catch (IOException ex) { throw new VectorPrintException(String.format("unable to load tiff %s", tiff.toString()), ex); } finally { if (ra != null) { try { ra.close(); } catch (IOException ex) { } } } }
From source file:es.jscan.Pantallas.PantallaPrincipal.java
License:Apache License
private void tiffToPdf(String origen, String destino) { try {/* www . j a v a 2s .c o m*/ //Read the Tiff File RandomAccessFileOrArray myTiffFile = new RandomAccessFileOrArray(origen); //Find number of images in Tiff file int numberOfPages = TiffImage.getNumberOfPages(myTiffFile); // System.out.println("Number of Images in Tiff File" + numberOfPages); com.itextpdf.text.Image tempImage = TiffImage.getTiffImage(myTiffFile, 1); Document TifftoPDF = new Document(); TifftoPDF.setPageSize(new Rectangle(tempImage.getWidth(), tempImage.getHeight())); PdfWriter.getInstance(TifftoPDF, new FileOutputStream(destino)); TifftoPDF.open(); for (int i = 1; i <= numberOfPages; i++) { tempImage = TiffImage.getTiffImage(myTiffFile, i); TifftoPDF.setPageSize(new Rectangle(tempImage.getWidth(), tempImage.getHeight())); TifftoPDF.add(tempImage); } TifftoPDF.close(); } catch (Exception ex) { Utilidades.escribeLog("Error al convertir de Tiff a PDF -tiffToPdf- Error " + ex.getMessage()); } }
From source file:me.Aron.Heinecke.fbot.lib.Converter.java
License:Apache License
/*** * Return the amount of sites in a pdf//ww w . j av a2 s . c o m * using a deprecated (working) iText function * @param file path of the file to use * @return amount of sites */ @SuppressWarnings("deprecation") public int pdfSites(String file) { try { RandomAccessFile raf = new RandomAccessFile(new File(file), "r"); RandomAccessFileOrArray pdfFile; pdfFile = new RandomAccessFileOrArray(new RandomAccessSourceFactory().createSource(raf)); PdfReader reader = new PdfReader(pdfFile, new byte[0]); int pages = reader.getNumberOfPages(); reader.close(); return pages; } catch (InvalidPdfException e) { fbot.getLogger().severe("converter", "Invalid PDF file!: no index"); } catch (Exception e) { fbot.getLogger().exception("converter", e); } return -1; }
From source file:mkl.testarea.itext5.pdfcleanup.StrictPdfCleanUpProcessor.java
License:Open Source License
Map<String, List> parseDAParam(PdfString DA) throws IOException { Map<String, List> commandArguments = new HashMap<String, List>(); PRTokeniser tokeniser = new PRTokeniser( new RandomAccessFileOrArray(new RandomAccessSourceFactory().createSource(DA.getBytes()))); List currentArguments = new ArrayList(); while (tokeniser.nextToken()) { if (tokeniser.getTokenType() == PRTokeniser.TokenType.OTHER) { String key = tokeniser.getStringValue(); if (key.equals("RG") || key.equals("G") || key.equals("K")) { key = STROKE_COLOR;//from w w w . j a v a 2 s . c o m } else if (key.equals("rg") || key.equals("g") || key.equals("k")) { key = FILL_COLOR; } commandArguments.put(key, currentArguments); currentArguments = new ArrayList(); } else { switch (tokeniser.getTokenType()) { case NUMBER: currentArguments.add(new PdfNumber(tokeniser.getStringValue())); break; case NAME: currentArguments.add(new PdfName(tokeniser.getStringValue())); break; default: currentArguments.add(tokeniser.getStringValue()); } } } return commandArguments; }
From source file:org.h819.commons.file.MyPDFUtils.java
/** * PdfReader ? pdf pdf ???//from w w w . j a v a2 s. co m * * @param pdfFile ? pdf * @return PdfReader * @throws IOException */ public static PdfReader getPdfReader(File pdfFile) throws IOException { Document.plainRandomAccess = true; FileInputStream fileStream = new FileInputStream(pdfFile); return new PdfReader( new RandomAccessFileOrArray(new FileChannelRandomAccessSource(fileStream.getChannel())), null); }
From source file:org.h819.commons.file.MyPDFUtils.java
/** * PdfReader ? pdf pdf ??//w ww . ja v a 2s .c o m * * @param pdfFile ? pdf * @param ownerPassword ? * @return * @throws IOException */ public static PdfReader getPdfReader(File pdfFile, String ownerPassword) throws IOException { FileInputStream fileStream = new FileInputStream(pdfFile); if (ownerPassword == null) return getPdfReader(pdfFile); return new PdfReader( new RandomAccessFileOrArray(new FileChannelRandomAccessSource(fileStream.getChannel())), ownerPassword.getBytes()); }
From source file:org.sejda.impl.itext5.component.DefaultPdfSourceOpener.java
License:Open Source License
private PdfReader doOpen(RandomAccessSource ras, byte[] pwd) throws TaskIOException, IOException { PdfReader reader;/* w w w .j av a2s . c o m*/ try { reader = new PdfReader(new RandomAccessFileOrArray(ras), pwd); } catch (BadPasswordException bpe) { throw new TaskWrongPasswordException("Unable to open the document due to a wrong password.", bpe); } reader.removeUnusedObjects(); reader.consolidateNamedDestinations(); return reader; }
From source file:pdfmt.pdf2image.java
License:Open Source License
/** * Convert a PDF document to a TIF file *//* w w w . ja v a 2 s . co m*/ 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. * //from w w w .java 2 s .c om * @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(); } }