Example usage for org.apache.pdfbox.pdmodel PDDocument getDocumentCatalog

List of usage examples for org.apache.pdfbox.pdmodel PDDocument getDocumentCatalog

Introduction

In this page you can find the example usage for org.apache.pdfbox.pdmodel PDDocument getDocumentCatalog.

Prototype

public PDDocumentCatalog getDocumentCatalog() 

Source Link

Document

This will get the document CATALOG.

Usage

From source file:de.uzk.hki.da.convert.PdfService.java

License:Open Source License

/**
 * Generates a new PDF which only contains certainPages of the original document.
 * Users can choose if they wish to reduce to a number of pages (beginning from the first page)
 * or to a certain set of pages. Both options can be used at the same time. 
 * By setting one of the parameters to either "" or null any of the options the according 
 * option will not be used./*from  w w w.  j a  v a  2 s  .  c o m*/
 *
 * @param numberOfPagesText null or empty if unused or "n" (e.g. "2" for two pages from the beginning of the document).
 * @param certainPagesText white space separated list of numbers that mark pages which should be part of the target document.
 * 
 * @throws IOException 
 * @author Jens Peters
 * @author Sebastian Cuy
 * @author Daniel M. de Oliveira
 */
public void reduceToCertainPages(String numberOfPagesText, String certainPagesText) throws IOException {

    PDDocument srcPdf = null;
    PDDocument targetPdf = null;
    if (srcPdfFile == null)
        throw new IllegalStateException("srcFile not set");

    srcPdf = PDDocument.load(srcPdfFile);
    targetPdf = new PDDocument();

    @SuppressWarnings("rawtypes")
    List srcPages = srcPdf.getDocumentCatalog().getAllPages();

    int numberOfPages = 0;

    if (numberOfPagesText != null && !numberOfPagesText.isEmpty()) {
        numberOfPages = Integer.parseInt(numberOfPagesText);
        for (int i = 0; i < Math.min(numberOfPages, srcPages.size()); i++)
            targetPdf.addPage((PDPage) srcPages.get(i));
    }

    if (StringUtilities.isNotSet(numberOfPagesText) && StringUtilities.isNotSet(certainPagesText)) {
        for (int i = 0; i < srcPages.size(); i++)
            targetPdf.addPage((PDPage) srcPages.get(i));
    }

    if (certainPagesText != null && !certainPagesText.isEmpty()) {
        String[] certainPagesTexts = certainPagesText.split(" ");
        int[] certainPages = new int[certainPagesTexts.length];
        for (int i = 0; i < certainPagesTexts.length; i++) {
            certainPages[i] = Integer.parseInt(certainPagesTexts[i]);
        }
        Arrays.sort(certainPages);
        for (int i = 0; i < certainPages.length; i++) {
            if (certainPages[i] > numberOfPages && srcPages.size() > certainPages[i] - 1)
                targetPdf.addPage((PDPage) srcPages.get(certainPages[i] - 1));
        }
    }

    try {
        targetPdf.save(targetPdfFile);
    } catch (Exception e) {
        throw new RuntimeException("Unable to create PDF!", e);
    } finally {
        targetPdf.close();
        srcPdf.close();
    }

}

From source file:de.uzk.hki.da.convert.PublishPDFConversionStrategyTests.java

License:Open Source License

/**
 * Test.//from   w ww  .  ja v  a 2s . c  o m
 *
 * @throws IOException Signals that an I/O exception has occurred.
 */
@Test
public void test() throws IOException {

    o = TESTHelper.setUpObject("1", new RelativePath(workAreaRootPath));
    WorkArea wa = new WorkArea(n, o);
    PublicationRight right = new PublicationRight();
    right.setAudience(Audience.PUBLIC);
    right.setTextRestriction(new TextRestriction());
    right.getTextRestriction().setCertainPages(new int[] { 1, 2, 7, 10, 12, 14, 15 });
    o.getRights().getPublicationRights().add(right);

    DAFile sourceFile = new DAFile("a", "filename.pdf");

    ConversionInstruction ci = new ConversionInstruction();
    ci.setSource_file(sourceFile);
    ci.setTarget_folder("target/");

    ConversionRoutine cr = new ConversionRoutine();
    cr.setTarget_suffix("pdf");
    ci.setConversion_routine(cr);

    cs.setObject(o);
    List<Event> events = cs.convertFile(new WorkArea(n, o), ci);

    File targetFile = wa.toFile(events.get(0).getTarget_file());
    assertTrue(targetFile.exists());
    assertEquals("filename.pdf", targetFile.getName());

    // contract states that the PDF should have 7 pages
    PDDocument targetDoc = PDDocument.load(targetFile);
    assertEquals(7, targetDoc.getDocumentCatalog().getAllPages().size());

    targetFile = wa.toFile(events.get(1).getTarget_file());
    assertTrue(targetFile.exists());
    assertEquals("filename.pdf", targetFile.getName());

    // contract has no restrictions for institution, PDF should have
    targetDoc = PDDocument.load(targetFile);
    assertEquals(227, targetDoc.getDocumentCatalog().getAllPages().size());

}

From source file:de.uzk.hki.da.format.PdfService.java

License:Open Source License

/**
 * Generates a new PDF which only contains certainPages of the original document.
 * Users can choose if they wish to reduce to a number of pages (beginning from the first page)
 * or to a certain set of pages. Both options can be used at the same time. 
 * By setting one of the parameters to either "" or null any of the options the according 
 * option will not be used.//from w w  w .  jav a  2 s .co m
 *
 * @param numberOfPagesText null or empty if unused or "n" (e.g. "2" for two pages from the beginning of the document).
 * @param certainPagesText white space separated list of numbers that mark pages which should be part of the target document.
 * 
 * @throws IOException 
 * @author Jens Peters
 * @author Sebastian Cuy
 * @author Daniel M. de Oliveira
 */
public void reduceToCertainPages(String numberOfPagesText, String certainPagesText) throws IOException {

    PDDocument srcPdf = null;
    PDDocument targetPdf = null;
    if (srcPdfFile == null)
        throw new IllegalStateException("srcFile not set");

    srcPdf = PDDocument.load(srcPdfFile);
    targetPdf = new PDDocument();

    @SuppressWarnings("rawtypes")
    List srcPages = srcPdf.getDocumentCatalog().getAllPages();

    int numberOfPages = 0;
    if (numberOfPagesText != null && !numberOfPagesText.isEmpty()) {
        numberOfPages = Integer.parseInt(numberOfPagesText);
        for (int i = 0; i < Math.min(numberOfPages, srcPages.size()); i++)
            targetPdf.addPage((PDPage) srcPages.get(i));
    }

    if (certainPagesText != null && !certainPagesText.isEmpty()) {
        String[] certainPagesTexts = certainPagesText.split(" ");
        int[] certainPages = new int[certainPagesTexts.length];
        for (int i = 0; i < certainPagesTexts.length; i++) {
            certainPages[i] = Integer.parseInt(certainPagesTexts[i]);
        }
        Arrays.sort(certainPages);
        for (int i = 0; i < certainPages.length; i++) {
            if (certainPages[i] > numberOfPages && srcPages.size() > certainPages[i] - 1)
                targetPdf.addPage((PDPage) srcPages.get(certainPages[i] - 1));
        }
    }

    try {
        targetPdf.save(targetPdfFile);
    } catch (Exception e) {
        throw new RuntimeException("Unable to create PDF!", e);
    } finally {
        targetPdf.close();
    }

}

From source file:de.uzk.hki.da.format.PublishPDFConversionStrategyTests.java

License:Open Source License

/**
 * Test.//from   w w  w.jav  a 2 s  .  c o m
 *
 * @throws IOException Signals that an I/O exception has occurred.
 */
@Test
public void test() throws IOException {

    o = TESTHelper.setUpObject("1", new RelativePath(workAreaRootPath));
    PublicationRight right = new PublicationRight();
    right.setAudience(Audience.PUBLIC);
    right.setTextRestriction(new TextRestriction());
    right.getTextRestriction().setCertainPages(new int[] { 1, 2, 7, 10, 12, 14, 15 });
    o.getRights().getPublicationRights().add(right);

    DAFile sourceFile = new DAFile(o.getLatestPackage(), "a", "filename.pdf");

    ConversionInstruction ci = new ConversionInstruction();
    ci.setSource_file(sourceFile);
    ci.setTarget_folder("target/");

    ConversionRoutine cr = new ConversionRoutine();
    cr.setTarget_suffix("pdf");
    ci.setConversion_routine(cr);

    cs.setObject(o);
    List<Event> events = cs.convertFile(ci);

    File targetFile = events.get(0).getTarget_file().toRegularFile();
    assertTrue(targetFile.exists());
    assertEquals("filename.pdf", targetFile.getName());

    // contract states that the PDF should have 7 pages
    PDDocument targetDoc = PDDocument.load(targetFile);
    assertEquals(7, targetDoc.getDocumentCatalog().getAllPages().size());

    targetFile = events.get(1).getTarget_file().toRegularFile();
    assertTrue(targetFile.exists());
    assertEquals("filename.pdf", targetFile.getName());

    // contract has no restrictions for institution, PDF should have
    targetDoc = PDDocument.load(targetFile);
    assertEquals(227, targetDoc.getDocumentCatalog().getAllPages().size());

}

From source file:dev.ztgnrw.ExtractEmbeddedFiles.java

License:Apache License

/**
 * This is the main method./*from  w w w  .j  ava2 s  . c om*/
 *
 * @param args The command line arguments.
 *
 * @throws IOException If there is an error parsing the document.
 */
public static void extractEmbeddedFiles(String file) throws IOException {

    PDDocument document = null;
    try {
        File pdfFile = new File(file);
        String filePath = pdfFile.getParent() + System.getProperty("file.separator");
        document = PDDocument.load(pdfFile);
        PDDocumentNameDictionary namesDictionary = new PDDocumentNameDictionary(document.getDocumentCatalog());
        PDEmbeddedFilesNameTreeNode efTree = namesDictionary.getEmbeddedFiles();
        if (efTree != null) {
            Map<String, PDComplexFileSpecification> names = efTree.getNames();
            if (names != null) {
                extractFiles(names, filePath);
            } else {
                List<PDNameTreeNode<PDComplexFileSpecification>> kids = efTree.getKids();
                for (PDNameTreeNode<PDComplexFileSpecification> node : kids) {
                    names = node.getNames();
                    extractFiles(names, filePath);
                }
            }
        }

        // extract files from annotations
        for (PDPage page : document.getPages()) {
            for (PDAnnotation annotation : page.getAnnotations()) {
                if (annotation instanceof PDAnnotationFileAttachment) {
                    PDAnnotationFileAttachment annotationFileAttachment = (PDAnnotationFileAttachment) annotation;
                    PDComplexFileSpecification fileSpec = (PDComplexFileSpecification) annotationFileAttachment
                            .getFile();
                    PDEmbeddedFile embeddedFile = getEmbeddedFile(fileSpec);
                    extractFile(filePath, fileSpec.getFilename(), embeddedFile);
                }
            }
        }

    } finally {
        if (document != null) {
            document.close();
        }
    }

}

From source file:diagramextractor.DiagramExtractor.java

/**
 * @param args the command line arguments
 *//*from  w  w w  .ja va  2s .co m*/
public static void main(String[] args) throws IOException, COSVisitorException {

    if (args.length < 2) {
        showHelp();
        System.exit(-1);
    }

    List<Integer> diagramOptionsList = new LinkedList<>();
    diagramOptionsList = parseOptions(args);

    List<String> diagramNameList = new LinkedList<>();
    diagramNameList = getDiagramNames(diagramOptionsList);

    File inputDir = new File(args[0]);
    File[] reports = inputDir.listFiles();
    String diagramName = args[1];

    PDDocument outputDocument = new PDDocument();

    PDFMergerUtility merger = new PDFMergerUtility();
    merger.setDestinationFileName("output.pdf");

    for (File report : reports) {

        PDDocument doc = PDDocument.load(report);
        System.out.println("LOADED FILE: " + report.getName());

        int pageNumber = 0;

        System.out.println("NUMBER OF PAGES: " + doc.getNumberOfPages());

        for (int i = 0; i <= doc.getNumberOfPages(); i++) {
            PDFTextStripper stripper = new PDFTextStripper();
            stripper.setStartPage(i);
            stripper.setEndPage(i);

            String contents = stripper.getText(doc);

            boolean containsDiagram = false;

            for (String diagram : diagramNameList) {
                if (contents.contains(diagram)) {
                    containsDiagram = true;
                }
            }

            if (containsDiagram && !contents.contains("Table of Contents")
                    && !contents.contains("Table of Figures") && !contents.contains("Obsah")
                    && !contents.contains("Tabulka ?sel")) {
                pageNumber = i;
                System.out.println("Diagram found on page: " + pageNumber);

                PageExtractor extractor = new PageExtractor(doc, pageNumber, pageNumber);
                PDDocument extractedPage = extractor.extract();

                PDPage page = (PDPage) extractedPage.getDocumentCatalog().getAllPages().get(0);
                PDPageContentStream contentStream = new PDPageContentStream(extractedPage, page, true, true,
                        true);
                contentStream.beginText();
                contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
                contentStream.moveTextPositionByAmount(100, 50);
                contentStream.drawString(report.getName());
                contentStream.endText();
                contentStream.close();

                merger.appendDocument(outputDocument, extractedPage);

            }

        }

        if (pageNumber == 0) {
            System.out.println("The diagram " + diagramName + " was not found in file " + report.getName());
        }
        doc.close();
    }

    merger.mergeDocuments();

    System.out.println();
    System.out.println("Diagrams have been merged.");

    String outputFileName = generateFilename(inputDir.getCanonicalPath(), "output.pdf");
    outputDocument.save(outputFileName);
    outputDocument.close();

    System.out.println("Output file saved as: " + outputFileName);
}

From source file:dpfmanager.shell.modules.report.util.ReportPDF.java

License:Open Source License

/**
 * Parse a global report to PDF format.//from w  ww .  j  ava2  s.  c om
 *
 * @param pdffile the file name.
 * @param gr      the global report.
 */
public void parseGlobal(String pdffile, GlobalReport gr) {
    try {
        PDFParams pdfParams = new PDFParams();
        pdfParams.init(PDPage.PAGE_SIZE_A4);

        PDFont font = PDType1Font.HELVETICA_BOLD;
        int pos_x = 200;
        pdfParams.y = 700;
        int font_size = 18;
        // Logo
        PDXObjectImage ximage = new PDJpeg(pdfParams.getDocument(),
                getFileStreamFromResources("images/logo.jpg"));
        float scale = 3;
        pdfParams.getContentStream().drawXObject(ximage, pos_x, pdfParams.y, 645 / scale, 300 / scale);

        // Report Title
        pdfParams.y -= 30;
        pdfParams = writeText(pdfParams, "MULTIPLE REPORT", pos_x, font, font_size);
        pdfParams.y -= 30;
        font_size = 15;
        pdfParams = writeText(pdfParams, "Processed files: " + gr.getIndividualReports().size(), pos_x, font,
                font_size, Color.cyan);

        // Summary table
        pos_x = 100;
        pdfParams.y -= 15;
        font_size = 8;
        Color col;
        for (String iso : gr.getCheckedIsos()) {
            if (gr.getIsos().contains(iso) || gr.getReportsOk(iso) == gr.getReportsCount()) {
                String name = ImplementationCheckerLoader.getIsoName(iso);
                pdfParams.y -= 15;
                col = gr.getReportsOk(iso) == gr.getReportsCount() ? Color.green : Color.red;
                pdfParams = writeText(pdfParams, gr.getReportsOk(iso) + " files conforms to " + name, pos_x,
                        font, font_size, col);
            }
        }

        // Pie chart
        pdfParams.y += 10;
        if (pdfParams.y > 565)
            pdfParams.y = 565;
        pos_x += 200;
        int graph_size = 40;
        BufferedImage image = new BufferedImage(graph_size * 10, graph_size * 10, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = image.createGraphics();
        Double doub = (double) gr.getAllReportsOk() / gr.getReportsCount();
        double extent = 360d * doub;
        g2d.setColor(Color.green);
        g2d.fill(new Arc2D.Double(0, 0, graph_size * 10, graph_size * 10, 90, 360, Arc2D.PIE));
        g2d.setColor(Color.red);
        g2d.fill(new Arc2D.Double(0, 0, graph_size * 10, graph_size * 10, 90, 360 - extent, Arc2D.PIE));
        ximage = new PDJpeg(pdfParams.getDocument(), image);
        pdfParams.getContentStream().drawXObject(ximage, pos_x, pdfParams.y, graph_size, graph_size);
        pdfParams.y += graph_size - 10;
        font_size = 7;
        pdfParams = writeText(pdfParams, gr.getAllReportsOk() + " passed", pos_x + 50, font, font_size,
                Color.green);
        pdfParams.y -= 10;
        pdfParams = writeText(pdfParams, gr.getAllReportsKo() + " failed", pos_x + 50, font, font_size,
                Color.red);
        pdfParams.y -= 10;
        pdfParams = writeText(pdfParams, "Global score " + (int) (doub * 100) + "%", pos_x + 50, font,
                font_size, Color.black);

        /**
         * Individual Tiff images list
         */
        pos_x = 100;
        pdfParams.y -= 50;
        for (IndividualReport ir : gr.getIndividualReports()) {
            int image_height = 65;
            int image_width = 100;

            // Draw image
            String imgPath = pdffile + "img.jpg";
            int ids = 0;
            while (new File(imgPath).exists())
                imgPath = pdffile + "img" + ids++ + ".jpg";
            boolean check = tiff2Jpg(ir.getFilePath(), imgPath);
            BufferedImage bimg;
            if (!check) {
                bimg = ImageIO.read(getFileStreamFromResources("html/img/noise.jpg"));
            } else {
                bimg = ImageIO.read(new File(imgPath));
            }
            image_width = image_height * bimg.getWidth() / bimg.getHeight();
            if (image_width > 100) {
                image_width = 100;
                image_height = image_width * bimg.getHeight() / bimg.getWidth();
            }

            // Check if we need new page before draw image
            int maxHeight = getMaxHeight(ir, image_height);
            if (newPageNeeded(pdfParams.y - maxHeight)) {
                pdfParams.setContentStream(newPage(pdfParams.getContentStream(), pdfParams.getDocument()));
                pdfParams.y = init_posy;
            }

            int initialy = pdfParams.y;
            int initialx = 100;

            pdfParams.y -= maxHeight;
            int maxy = pdfParams.y;

            ximage = new PDJpeg(pdfParams.getDocument(), bimg);
            pdfParams.getContentStream().drawXObject(ximage, pos_x, pdfParams.y, image_width, image_height);
            if (check)
                new File(imgPath).delete();

            // Values
            image_width = initialx;
            pdfParams.y = initialy;
            if (maxHeight == 65) {
                pdfParams.y -= 10;
            }
            pdfParams = writeText(pdfParams, ir.getFileName(), pos_x + image_width + 10, font, font_size,
                    Color.gray);
            font_size = 6;
            pdfParams.y -= 10;
            pdfParams = writeText(pdfParams, "Conformance Checker", pos_x + image_width + 10, font, font_size,
                    Color.black);
            pdfParams.getContentStream().drawLine(pos_x + image_width + 10, pdfParams.y - 5, image_width + 150,
                    pdfParams.y - 5);
            pdfParams.y -= 2;

            // Isos table
            for (String iso : ir.getCheckedIsos()) {
                if (ir.hasValidation(iso) || ir.getNErrors(iso) == 0) {
                    String name = ImplementationCheckerLoader.getIsoName(iso);
                    pdfParams.y -= 10;
                    pdfParams = writeText(pdfParams, name, pos_x + image_width + 10, font, font_size,
                            Color.black);
                    pdfParams = writeText(pdfParams, ir.getNErrors(iso) + " errors", pos_x + image_width + 110,
                            font, font_size, ir.getNErrors(iso) > 0 ? Color.red : Color.black);
                    pdfParams = writeText(pdfParams, ir.getNWarnings(iso) + " warnings",
                            pos_x + image_width + 140, font, font_size,
                            ir.getNWarnings(iso) > 0 ? Color.orange : Color.black);
                }
            }
            if (pdfParams.y < maxy)
                maxy = pdfParams.y;

            // Chart
            pdfParams.y = initialy;
            pdfParams.y -= 10;
            pdfParams.y -= 10;
            graph_size = 25;
            image = new BufferedImage(graph_size * 10, graph_size * 10, BufferedImage.TYPE_INT_ARGB);
            g2d = image.createGraphics();
            doub = (double) ir.calculatePercent();
            extent = 360d * doub / 100.0;
            g2d.setColor(Color.gray);
            g2d.fill(new Arc2D.Double(0, 0, graph_size * 10, graph_size * 10, 90, 360, Arc2D.PIE));
            g2d.setColor(Color.red);
            g2d.fill(new Arc2D.Double(0, 0, graph_size * 10, graph_size * 10, 90, 360 - extent, Arc2D.PIE));
            ximage = new PDJpeg(pdfParams.getDocument(), image);
            pdfParams.getContentStream().drawXObject(ximage, pos_x + image_width + 180,
                    pdfParams.y - graph_size, graph_size, graph_size);
            pdfParams.y += graph_size - 10;
            if (doub < 100) {
                pdfParams.y = pdfParams.y - 10 - graph_size / 2;
                pdfParams = writeText(pdfParams, "Failed", pos_x + image_width + 180 + graph_size + 10, font,
                        font_size, Color.red);
            }
            pdfParams.y = pdfParams.y - 10 - graph_size / 2;
            pdfParams = writeText(pdfParams, "Score " + doub + "%", pos_x + image_width + 180 + graph_size + 10,
                    font, font_size, Color.gray);
            if (pdfParams.y < maxy)
                maxy = pdfParams.y;

            pdfParams.y = maxy - 10;
        }

        // Full individual reports
        ArrayList<PDDocument> toClose = new ArrayList<PDDocument>();
        for (IndividualReport ir : gr.getIndividualReports()) {

            if (!ir.containsData())
                continue;
            PDDocument doc = null;
            if (ir.getPDF() != null)
                doc = ir.getPDF();
            else if (ir.getPDFDocument() != null)
                doc = PDDocument.load(ir.getPDFDocument());
            if (doc != null) {
                List<PDPage> l = doc.getDocumentCatalog().getAllPages();
                for (PDPage pag : l) {
                    pdfParams.getDocument().addPage(pag);
                }
                toClose.add(doc);
            }
        }

        pdfParams.getContentStream().close();

        pdfParams.getDocument().save(pdffile);
        pdfParams.getDocument().close();

        for (PDDocument doc : toClose) {
            doc.close();
        }
    } catch (Exception tfe) {
        context.send(BasicConfig.MODULE_MESSAGE, new ExceptionMessage("Exception in ReportPDF", tfe));
    }
}

From source file:editorframework.pdfbox.testes.MyPDFBox.java

private void init() {
    JFrame jFrame = new JFrame();
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    try {//from  w  ww. j a  v  a2s  . c  om
        final PDDocument doc = PDDocument.load(new File("./simple.pdf"));
        List<PDPage> allPages = doc.getDocumentCatalog().getAllPages();
        PDPage page = (PDPage) allPages.get(1);
        setPage(page);
        jFrame.setBackground(Color.DARK_GRAY);
        setLayout(new FlowLayout());
        jFrame.add(this);
        jFrame.setBounds(40, 40, getWidth() + 100, getHeight() + 50);
        jFrame.setVisible(true);
        jFrame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                try {
                    doc.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        });
    } catch (IOException e) {
        System.out.println(e.toString());
    }
    //doc.close();
}

From source file:editorframework.pdfbox.testes.TestesComPDFBox.java

public static void transformarPDFemImagem() throws IOException {

    //OPCAO 1 transformar o pdfpage em bufered image, e exibir no JFrame normal
    PDDocument document = PDDocument.load(new File("./simple.pdf"));
    List<PDPage> allPages = document.getDocumentCatalog().getAllPages();

    PDPage firstPage = allPages.get(0);/* ww  w.jav a  2 s  .  c o m*/
    BufferedImage bi = firstPage.convertToImage();
    File outputfile = new File("image.jpg");
    ImageIO.write(bi, "jpg", outputfile);

}

From source file:editorframework.pdfbox.testes.TestesComPDFBox.java

public static void exibirPDFEmUmJFrame() throws IOException {
    File PDFPath = new File("./simple.pdf");
    PDDocument inputPDF = PDDocument.load(PDFPath);
    List<PDPage> allPages = inputPDF.getDocumentCatalog().getAllPages();

    PDPage testPage = (PDPage) allPages.get(0);

    JFrame testFrame = new JFrame();
    testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    PDFPagePanel pdfPanel = new PDFPagePanel();
    pdfPanel.setPage(testPage);/*from   w  ww.  j a v  a 2 s .c  o m*/
    testFrame.add(pdfPanel);
    testFrame.setBounds(40, 40, pdfPanel.getWidth(), pdfPanel.getHeight());
    testFrame.setVisible(true);
    pdfPanel.validate();
    //        inputPDF.close();

}