Example usage for com.lowagie.text.pdf RandomAccessFileOrArray RandomAccessFileOrArray

List of usage examples for com.lowagie.text.pdf RandomAccessFileOrArray RandomAccessFileOrArray

Introduction

In this page you can find the example usage for com.lowagie.text.pdf RandomAccessFileOrArray RandomAccessFileOrArray.

Prototype

public RandomAccessFileOrArray(RandomAccessFileOrArray file) 

Source Link

Usage

From source file:it.pdfsam.console.tools.pdf.PdfSplit.java

License:Open Source License

/**
 * Execute the split command. On error an exception is thrown.
 * //from w  ww . j a  v  a  2 s .  c o  m
 * @throws SplitException
 */
public void execute() throws SplitException {
    try {
        percentageChanged(0);
        out_message = "";
        PdfReader pdf_reader = new PdfReader(new RandomAccessFileOrArray(f_file.getCanonicalPath()), null);
        prefixParser = new PrefixParser(prefix_value, f_file.getName());
        //we retrieve the total number of pages
        n = pdf_reader.getNumberOfPages();
        // apply format for output files name with leading zero(s)
        try {
            file_number_formatter.applyPattern(Integer.toString(n).replaceAll("\\d", "0"));
        } catch (Exception fe) {
            file_number_formatter.applyPattern("00000");
        }
        out_message += LogFormatter.formatMessage("There are " + n + " pages in this document\n");
        // -s ODD EVEN
        if (split_type.equals(CmdParser.S_ODD) || split_type.equals(CmdParser.S_EVEN)) {
            doSplitOddEven(pdf_reader);
        } else
        // -s BURST
        if (split_type.equals(CmdParser.S_BURST)) {
            doSplitBurst(pdf_reader);
        } else
        // -s SPLIT
        if (split_type.equals(CmdParser.S_SPLIT)) {
            doSplitSplit(pdf_reader);
        } else
        // -s NSPLIT
        if (split_type.equals(CmdParser.S_NSPLIT)) {
            doSplitNSplit(pdf_reader);
        }
        pdf_reader.close();
    } catch (Exception e) {
        throw new SplitException(e);
    } finally {
        workCompleted();
    }

}

From source file:it.pdfsam.plugin.coverfooter.GUI.CoverFooterMainGUI.java

License:Open Source License

private void addTableRow(File file_to_add) {
    if (file_to_add != null) {
        boolean encrypt = false;
        String num_pages = "";
        try {//from   w  ww .j a v  a  2  s .  c  o m
            //fix 03/07 for memory usage
            PdfReader pdf_reader = new PdfReader(new RandomAccessFileOrArray(file_to_add.getAbsolutePath()),
                    null);
            encrypt = pdf_reader.isEncrypted();
            // we retrieve the total number of pages
            num_pages = Integer.toString(pdf_reader.getNumberOfPages());
            pdf_reader.close();
        } catch (Exception ex) {
            num_pages = ex.getMessage();
        }
        try {
            modello_cover_table.addRow(new CoverFooterItemType(file_to_add.getName(),
                    file_to_add.getAbsolutePath(), num_pages, CoverFooterMainGUI.ALL_STRING, encrypt));
            fireLogPropertyChanged(
                    GettextResource.gettext(i18n_messages, "File selected: ") + file_to_add.getName(),
                    LogPanel.LOG_INFO);
        } catch (Exception ex) {
            fireLogPropertyChanged(GettextResource.gettext(i18n_messages, "Error: ") + ex.getMessage(),
                    LogPanel.LOG_ERROR);

        }
    }
}

From source file:it.pdfsam.plugin.coverfooter.GUI.CoverFooterMainGUI.java

License:Open Source License

private void addTableRowsFromNode(Node file_node) {
    if (file_node != null) {
        boolean encrypt = false;
        String num_pages = "";
        String page_selection = "";
        File file_to_add = null;//from   ww  w . ja  v a  2s  .c o m
        try {
            Node file_name = (Node) file_node.selectSingleNode("@name");
            if (file_name != null) {
                file_to_add = new File(file_name.getText());
            }
        } catch (Exception ex) {
            file_to_add = null;
            fireLogPropertyChanged(GettextResource.gettext(i18n_messages, "Error: ") + ex.getMessage(),
                    LogPanel.LOG_ERROR);
        }
        try {
            if (file_to_add != null) {
                PdfReader pdf_reader = new PdfReader(new RandomAccessFileOrArray(file_to_add.getAbsolutePath()),
                        null);
                encrypt = pdf_reader.isEncrypted();
                // we retrieve the total number of pages
                num_pages = Integer.toString(pdf_reader.getNumberOfPages());
                pdf_reader.close();
            }
        } catch (Exception ex) {
            num_pages = ex.getMessage();
        }
        try {
            Node file_pages = (Node) file_node.selectSingleNode("@pageselection");
            if (file_pages != null) {
                page_selection = file_pages.getText();
            } else {
                page_selection = CoverFooterMainGUI.ALL_STRING;
            }
        } catch (Exception ex) {
            page_selection = CoverFooterMainGUI.ALL_STRING;
        }
        try {
            modello_cover_table.addRow(new CoverFooterItemType(file_to_add.getName(),
                    file_to_add.getAbsolutePath(), num_pages, page_selection, encrypt));
            fireLogPropertyChanged(
                    GettextResource.gettext(i18n_messages, "File selected: ") + file_to_add.getName(),
                    LogPanel.LOG_INFO);
        } catch (Exception ex) {
            fireLogPropertyChanged(GettextResource.gettext(i18n_messages, "Error: ") + ex.getMessage(),
                    LogPanel.LOG_ERROR);

        }
    }
}

From source file:it.pdfsam.plugin.merge.GUI.MergeMainGUI.java

License:Open Source License

private void addTableRow(File file_to_add) {
    if (file_to_add != null) {
        boolean encrypt = false;
        String num_pages = "";
        try {/*from  ww w  .j  a  v  a 2  s.  com*/
            //fix 03/07 for memory usage
            PdfReader pdf_reader = new PdfReader(new RandomAccessFileOrArray(file_to_add.getAbsolutePath()),
                    null);
            encrypt = pdf_reader.isEncrypted();
            // we retrieve the total number of pages
            num_pages = Integer.toString(pdf_reader.getNumberOfPages());
            pdf_reader.close();
        } catch (Exception ex) {
            num_pages = ex.getMessage();
        }
        try {
            modello_merge_table.addRow(new MergeItemType(file_to_add.getName(), file_to_add.getAbsolutePath(),
                    num_pages, MergeMainGUI.ALL_STRING, encrypt));
            fireLogPropertyChanged(
                    GettextResource.gettext(i18n_messages, "File selected: ") + file_to_add.getName(),
                    LogPanel.LOG_INFO);
        } catch (Exception ex) {
            fireLogPropertyChanged(GettextResource.gettext(i18n_messages, "Error: ") + ex.getMessage(),
                    LogPanel.LOG_ERROR);

        }
    }
}

From source file:it.pdfsam.plugin.merge.GUI.MergeMainGUI.java

License:Open Source License

private void addTableRowsFromNode(Node file_node) {
    if (file_node != null) {
        boolean encrypt = false;
        String num_pages = "";
        String page_selection = "";
        File file_to_add = null;//w w w  .  j  a  va2  s .  c  o  m
        try {
            Node file_name = (Node) file_node.selectSingleNode("@name");
            if (file_name != null) {
                file_to_add = new File(file_name.getText());
            }
        } catch (Exception ex) {
            file_to_add = null;
            fireLogPropertyChanged(GettextResource.gettext(i18n_messages, "Error: ") + ex.getMessage(),
                    LogPanel.LOG_ERROR);
        }
        try {
            if (file_to_add != null) {
                PdfReader pdf_reader = new PdfReader(new RandomAccessFileOrArray(file_to_add.getAbsolutePath()),
                        null);
                encrypt = pdf_reader.isEncrypted();
                // we retrieve the total number of pages
                num_pages = Integer.toString(pdf_reader.getNumberOfPages());
                pdf_reader.close();
            }
        } catch (Exception ex) {
            num_pages = ex.getMessage();
        }
        try {
            Node file_pages = (Node) file_node.selectSingleNode("@pageselection");
            if (file_pages != null) {
                page_selection = file_pages.getText();
            } else {
                page_selection = MergeMainGUI.ALL_STRING;
            }
        } catch (Exception ex) {
            page_selection = MergeMainGUI.ALL_STRING;
        }
        try {
            modello_merge_table.addRow(new MergeItemType(file_to_add.getName(), file_to_add.getAbsolutePath(),
                    num_pages, page_selection, encrypt));
            fireLogPropertyChanged(
                    GettextResource.gettext(i18n_messages, "File selected: ") + file_to_add.getName(),
                    LogPanel.LOG_INFO);
        } catch (Exception ex) {
            fireLogPropertyChanged(GettextResource.gettext(i18n_messages, "Error: ") + ex.getMessage(),
                    LogPanel.LOG_ERROR);

        }
    }
}

From source file:net.filterlogic.util.imaging.ToPDF.java

License:Apache License

public static void FromTIFF(String[] files, String pdfOutFile) throws OpenCaptureImagingException {
    String tiff_file;//from  w  w  w  . j a v  a 2  s  .  c o  m
    String pdf_file = pdfOutFile;

    try {

        Document document = new Document();

        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdf_file));
        writer.setFullCompression();
        int pages = 0;
        document.open();
        PdfContentByte cb = writer.getDirectContent();
        RandomAccessFileOrArray ra = null;

        for (int i = 0; i < files.length; i++) {
            int comps = 0;
            tiff_file = files[i];

            try {
                ra = new RandomAccessFileOrArray(tiff_file);
                comps = TiffImage.getNumberOfPages(ra);
            } catch (Throwable e) {
                throw new Exception("Exception in " + tiff_file + " " + e.toString());
                //continue;
            }

            //System.out.println("Processing: " + tiff_file);

            for (int c = 0; c < comps; ++c) {
                try {
                    Image img = TiffImage.getTiffImage(ra, c + 1);
                    if (img != null) {
                        //System.out.println("page " + (c + 1));

                        img.scaleToFit(675, 775);
                        img.setAbsolutePosition(0, 50);
                        //                            document.add(new Paragraph(tiff_file + " - page " + (c + 1)));

                        cb.addImage(img);
                        document.newPage();
                        ++pages;
                    }
                } catch (Throwable e) {
                    throw new Exception("Exception " + tiff_file + " page " + (c + 1) + " " + e.getMessage());
                }
            }

            ra.close();
        }

        // close pdf
        document.close();

    } catch (Exception e) {
        throw new OpenCaptureImagingException("ToPDF exception: " + e.toString());
    }

}

From source file:org.eclipse.birt.report.engine.emitter.postscript.truetypefont.TrueTypeFont.java

License:Open Source License

/**
 * Reads the font data.//from   ww  w . j a  va2  s.co  m
 * 
 * @param ttfAfm
 *            the font as a <CODE>byte</CODE> array, possibly <CODE>null</CODE>
 * @throws DocumentException
 *             the font is invalid
 * @throws IOException
 *             the font file could not be read
 */
void process() throws DocumentException, IOException {
    positionTables = new HashMap<String, int[]>();
    metadataTables = new HashMap<String, byte[]>();

    try {
        rf = new RandomAccessFileOrArray(fileName);
        if (ttcIndex.length() > 0) {
            int dirIdx = Integer.parseInt(ttcIndex);
            if (dirIdx < 0)
                throw new DocumentException("The font index for " + fileName + " must be positive.");
            String mainTag = readStandardString(4);
            if (!mainTag.equals("ttcf"))
                throw new DocumentException(fileName + " is not a valid TTC file.");
            rf.skipBytes(4);
            int dirCount = rf.readInt();
            if (dirIdx >= dirCount)
                throw new DocumentException("The font index for " + fileName + " must be between 0 and "
                        + (dirCount - 1) + ". It was " + dirIdx + ".");
            rf.skipBytes(dirIdx * 4);
            directoryOffset = rf.readInt();
        }
        rf.seek(directoryOffset);
        rf.readFully(directoryRawData);
        int ttId = Util.getInt(directoryRawData, 0);
        if (ttId != 0x00010000 && ttId != 0x4F54544F)
            throw new DocumentException(fileName + " is not a valid TTF or OTF file.");
        int num_tables = Util.getUnsignedShort(directoryRawData, 4);
        for (int k = 0; k < num_tables; ++k) {
            byte[] rawData = new byte[16];
            rf.readFully(rawData);
            String tag = getStandardString(rawData, 0, 4);
            int table_location[] = new int[2];
            table_location[0] = Util.getInt(rawData, 8);
            table_location[1] = Util.getInt(rawData, 12);
            positionTables.put(tag, table_location);
            metadataTables.put(tag, rawData);
        }
        fontName = getBaseFont();
        fullName = getNames(4); // full name
        familyName = getNames(1); // family name
        notice = getNames(0);
        version = getNames(5);

        if (!justNames) {
            fillTables();
            readGlyphWidths();
            readCMaps();
            readKerning();
            readBbox();
            GlyphWidths = null;
        }
    } finally {
        if (rf != null) {
            rf.close();
            if (!embedded)
                rf = null;
        }
    }
}

From source file:org.pdfsam.console.utils.PdfUtility.java

License:Open Source License

public static PdfReader readerFor(PdfFile file)
        throws IOException, NoSuchFieldException, IllegalAccessException {
    PdfReader reader = new PdfReader(new RandomAccessFileOrArray(file.getFile().getAbsolutePath()),
            file.getPasswordBytes());/*w  w  w  . j av  a2s .  co m*/
    unethical(reader);
    return reader;
}

From source file:org.pdfsam.guiclient.commons.business.loaders.callable.AddPdfDocument.java

License:Open Source License

/**
* 
* @param fileToAdd file to add//from  www.ja  v  a  2 s.  c  o m
* @param password password to open the file
* @return the item to add to the table
*/
PdfSelectionTableItem getPdfSelectionTableItem(File fileToAdd, String password, String pageSelection) {
    PdfSelectionTableItem tableItem = null;
    PdfReader pdfReader = null;
    if (fileToAdd != null) {
        tableItem = new PdfSelectionTableItem();
        tableItem.setInputFile(fileToAdd);
        tableItem.setPassword(password);
        tableItem.setPageSelection(pageSelection);
        try {
            //fix 04/11/08 for memory usage
            pdfReader = new PdfReader(new RandomAccessFileOrArray(fileToAdd.getAbsolutePath()),
                    (password != null) ? password.getBytes() : null);
            tableItem.setEncrypted(pdfReader.isEncrypted());
            tableItem.setFullPermission(pdfReader.isOpenedWithFullPermissions());
            if (tableItem.isEncrypted()) {
                tableItem.setPermissions(getPermissionsVerbose(pdfReader.getPermissions()));
                int cMode = pdfReader.getCryptoMode();
                switch (cMode) {
                case PdfWriter.STANDARD_ENCRYPTION_40:
                    tableItem.setEncryptionAlgorithm(EncryptionUtility.RC4_40);
                    break;
                case PdfWriter.STANDARD_ENCRYPTION_128:
                    tableItem.setEncryptionAlgorithm(EncryptionUtility.RC4_128);
                    break;
                case PdfWriter.ENCRYPTION_AES_128:
                    tableItem.setEncryptionAlgorithm(EncryptionUtility.AES_128);
                    break;
                default:
                    break;
                }
            }
            tableItem.setPagesNumber(Integer.toString(pdfReader.getNumberOfPages()));
            tableItem.setFileSize(fileToAdd.length());
            tableItem.setPdfVersion(pdfReader.getPdfVersion());
            tableItem.setSyntaxErrors(pdfReader.isRebuilt());
            initTableItemDocumentData(pdfReader, tableItem);
        } catch (Exception e) {
            tableItem.setLoadedWithErrors(true);
            LOG.error(GettextResource.gettext(Configuration.getInstance().getI18nResourceBundle(),
                    "Error loading ") + fileToAdd.getAbsolutePath() + " :", e);
        } finally {
            if (pdfReader != null) {
                pdfReader.close();
                pdfReader = null;
            }
        }
    }
    return tableItem;
}

From source file:org.sejda.impl.itext.component.input.PartialReadPdfSourceOpener.java

License:Apache License

@Override
PdfReader openSource(PdfURLSource source) throws IOException {
    return new PdfReader(new RandomAccessFileOrArray(source.getSource()), source.getPasswordBytes());
}