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

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

Introduction

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

Prototype

public void setResourceCache(ResourceCache resourceCache) 

Source Link

Document

Sets the resource cache associated with this document.

Usage

From source file:de.redsix.pdfcompare.PdfComparator.java

License:Apache License

private void compare(final PDDocument expectedDocument, final PDDocument actualDocument) throws IOException {
    expectedDocument.setResourceCache(new ResourceCacheWithLimitedImages());
    PDFRenderer expectedPdfRenderer = new PDFRenderer(expectedDocument);

    actualDocument.setResourceCache(new ResourceCacheWithLimitedImages());
    PDFRenderer actualPdfRenderer = new PDFRenderer(actualDocument);

    final int minPageCount = Math.min(expectedDocument.getNumberOfPages(), actualDocument.getNumberOfPages());
    CountDownLatch latch = new CountDownLatch(minPageCount);
    for (int pageIndex = 0; pageIndex < minPageCount; pageIndex++) {
        drawImage(latch, pageIndex, expectedDocument, actualDocument, expectedPdfRenderer, actualPdfRenderer);
    }/* www . j a v  a  2 s. co  m*/
    Utilities.await(latch, "FullCompare");
    Utilities.shutdownAndAwaitTermination(drawExecutor, "Draw");
    Utilities.shutdownAndAwaitTermination(parrallelDrawExecutor, "Parallel Draw");
    Utilities.shutdownAndAwaitTermination(diffExecutor, "Diff");
    if (expectedDocument.getNumberOfPages() > minPageCount) {
        addExtraPages(expectedDocument, expectedPdfRenderer, minPageCount, MISSING_RGB, true);
    } else if (actualDocument.getNumberOfPages() > minPageCount) {
        addExtraPages(actualDocument, actualPdfRenderer, minPageCount, EXTRA_RGB, false);
    }
}