Example usage for com.itextpdf.text.pdf PdfReader selectPages

List of usage examples for com.itextpdf.text.pdf PdfReader selectPages

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfReader selectPages.

Prototype

public void selectPages(final List<Integer> pagesToKeep) 

Source Link

Document

Selects the pages to keep in the document.

Usage

From source file:be.roots.taconic.pricingguide.util.iTextUtil.java

License:Open Source License

public static byte[] organize(byte[] pdf, Toc tableOfContents) throws IOException, DocumentException {

    try (final ByteArrayOutputStream copyBaos = new ByteArrayOutputStream()) {

        final Document doc = new Document();
        final PdfCopy copy = new PdfSmartCopy(doc, copyBaos);

        final PdfReader reader = new PdfReader(pdf);
        reader.selectPages(tableOfContents.getPageSequence());

        doc.open();//ww  w.  j a va 2  s  .  c  o  m

        for (int i = 1; i <= reader.getNumberOfPages(); i++) {
            copy.addPage(copy.getImportedPage(reader, i));
        }

        reader.close();
        copy.close();
        return copyBaos.toByteArray();
    }

}

From source file:br.com.smarttaco.util.HelenaBarbosa.java

/**
 * pdf2txt/*from  w w  w. ja va 2s . c o  m*/
 *
 * @param pdf
 * @param paginas se for <code>null</code> realiza leitura completa.
 * @param txt
 * @throws FileNotFoundException
 * @throws IOException
 */
private static void pdf2txt(final String pdf, List<Integer> paginas, final String txt)
        throws FileNotFoundException, IOException {
    PdfReader reader = new PdfReader(pdf);
    //System.out.println(reader.getInfo().toString());
    if (paginas != null) {
        reader.selectPages(paginas);
    }
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    PrintWriter out = new PrintWriter(txt, "UTF-8");
    TextExtractionStrategy strategy;
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
        out.println(strategy.getResultantText());
    }
    out.flush();
    out.close();
    reader.close();
}

From source file:org.h819.commons.file.MyPDFUtils.java

/**
 * //from   w  w w.j av a  2 s.  c om
 * <p/>
 * <p>
 * ? iText in Action 2nd EditionChapter 6: Working with existing PDFs
 * SelectPages
 * </p>
 *
 * @param src       ?
 * @param desc      
 * @param beginPage 
 * @param endPage   ?
 * @throws java.io.IOException
 * @throws DocumentException
 */
public static void splitToPages(File src, File desc, int beginPage, int endPage)
        throws IOException, DocumentException {

    PdfReader reader = getPdfReader(src);
    // reader.selectPages("4-8");
    reader.selectPages(Integer.toString(beginPage) + "-" + Integer.toString(endPage));
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(desc));
    stamper.close();
}

From source file:org.sejda.impl.itext5.MergeTask.java

License:Open Source License

public void execute(MergeParameters parameters) throws TaskException {
    int currentStep = 0;
    File tmpFile = createTemporaryPdfBuffer();
    LOG.debug("Created output temporary buffer {} ", tmpFile);

    for (PdfMergeInput input : parameters.getInputList()) {
        LOG.debug("Opening input {} ", input.getSource());
        PdfReader reader = input.getSource().open(sourceOpener);
        readers.add(reader);//from  w  ww .  j a  v  a  2s .co m

        if (copier == null) {
            createCopier(parameters, tmpFile, reader);
        }
        outlineMerger.updateOutline(reader, input, copier.getNumberOfCopiedPages());

        if (!input.isAllPages()) {
            String selection = join(input.getPageSelection(), ',');
            LOG.debug("Setting pages selection");
            reader.selectPages(selection);
            LOG.trace("Pages selection set to {}", selection);
        }

        copier.addAllPages(reader);

        if (parameters.isBlankPageIfOdd()) {
            LOG.debug("Adding blank page if required");
            copier.addBlankPageIfOdd(reader);
        }
        copier.freeReader(reader);

        notifyEvent(getNotifiableTaskMetadata()).stepsCompleted(++currentStep).outOf(totalSteps);
    }
    copier.setOutline(outlineMerger.getOutline());
    closeResources();
    outputWriter.setOutput(file(tmpFile).name(parameters.getOutputName()));
    parameters.getOutput().accept(outputWriter);
    LOG.debug("Input documents merged correctly and written to {}", parameters.getOutput());
}

From source file:watermarkpdf.FXMLDocumentController.java

@FXML
private void handleButtonAction(ActionEvent event) throws DocumentException, IOException {
    if (tfPhrase.getLength() > 0) {
        lbl_Result.setText("");
        PdfReader reader = new PdfReader(tf_PathFile.getText());
        Rectangle mediabox = reader.getPageSize(1);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(
                tf_PathFile.getText().substring(0, tf_PathFile.getLength() - 4) + "_out.pdf"));
        stamper.setRotateContents(false);
        BaseFont bf = BaseFont.createFont("TNR.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        Font font = new Font(bf);
        int iPos = tfPhrase.getText().indexOf('#');
        for (int i = 1; i <= reader.getNumberOfPages(); i++) {
            PdfContentByte canvas = stamper.getOverContent(i);
            if (iPos >= 0) {
                if (cbox_LU.isSelected()) {
                    switch (i) {
                    case 1:
                        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT,
                                new Phrase((tfPhrase.getText().substring(0, iPos - 5)
                                        + "? ? "
                                        + tfPhrase.getText().substring(iPos + 1)), font),
                                mediabox.getRight() / 3, mediabox.getTop() - 40, 0);
                        break;
                    case 2:
                        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT,
                                new Phrase((tfPhrase.getText().substring(0, iPos - 5)
                                        + " ? "
                                        + tfPhrase.getText().substring(iPos + 1)), font),
                                mediabox.getRight() / 3, mediabox.getTop() - 40, 0);
                        break;
                    default:
                        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT,
                                new Phrase((tfPhrase.getText().substring(0, iPos) + (i - 1)
                                        + tfPhrase.getText().substring(iPos + 1)), font),
                                mediabox.getRight() / 3, mediabox.getTop() - 40, 0);
                    }// ww w . j a  va2s .  co m
                } else {
                    if (i == 1)
                        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT,
                                new Phrase((tfPhrase.getText().substring(0, iPos - 5)
                                        + " ? "
                                        + tfPhrase.getText().substring(iPos + 1)), font),
                                mediabox.getRight() / 3, mediabox.getTop() - 40, 0);
                    else
                        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT,
                                new Phrase((tfPhrase.getText().substring(0, iPos) + (i)
                                        + tfPhrase.getText().substring(iPos + 1)), font),
                                mediabox.getRight() / 3, mediabox.getTop() - 40, 0);
                }

            } else {
                ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(tfPhrase.getText(), font),
                        mediabox.getRight() / 3, mediabox.getTop() - 40, 0);
            }
            ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(tf_append.getText(), font),
                    mediabox.getRight() * 2 / 3, mediabox.getTop() - 20, 0);
        }
        stamper.close();
        reader.close();
        if (tf_PagePrint.getLength() > 0) {
            reader = new PdfReader(
                    tf_PathFile.getText().substring(0, tf_PathFile.getLength() - 4) + "_out.pdf");
            reader.selectPages(tf_PagePrint.getText());
            stamper = new PdfStamper(reader, new FileOutputStream(
                    tf_PathFile.getText().substring(0, tf_PathFile.getLength() - 4) + "_out_cut.pdf"));
            stamper.close();
            reader.close();
        }
        lbl_Result.setText("  ");
    }
}