Search in sources :

Example 1 with DefaultResourceCache

use of org.apache.pdfbox.pdmodel.DefaultResourceCache in project syncope by apache.

the class BinaryPDFPreviewer method preview.

@Override
public Component preview(final byte[] uploadedBytes) {
    firstPage = null;
    try (InputStream bais = new ByteArrayInputStream(uploadedBytes);
        PDDocument document = PDDocument.load(bais, MemoryUsageSetting.setupTempFileOnly())) {
        document.setResourceCache(new DefaultResourceCache() {

            @Override
            public void put(final COSObject indirect, final PDXObject xobject) throws IOException {
            }
        });
        if (document.isEncrypted()) {
            LOG.info("Document is encrypted, no preview is possible");
        } else {
            firstPage = new PDFRenderer(document).renderImageWithDPI(0, DPI, IMAGE_TYPE);
        }
    } catch (IOException e) {
        LOG.error("While generating thumbnail from first page", e);
    }
    Fragment fragment;
    if (firstPage == null) {
        fragment = new Fragment("preview", "noPreviewFragment", this);
    } else {
        fragment = new Fragment("preview", "previewFragment", this);
        fragment.add(new NonCachingImage("previewImage", new ThumbnailImageResource(firstPage)));
    }
    WebMarkupContainer previewContainer = new WebMarkupContainer("previewContainer");
    previewContainer.setOutputMarkupId(true);
    previewContainer.add(fragment);
    return this.addOrReplace(previewContainer);
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) NonCachingImage(org.apache.wicket.markup.html.image.NonCachingImage) IOException(java.io.IOException) Fragment(org.apache.wicket.markup.html.panel.Fragment) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) DefaultResourceCache(org.apache.pdfbox.pdmodel.DefaultResourceCache) ByteArrayInputStream(java.io.ByteArrayInputStream) COSObject(org.apache.pdfbox.cos.COSObject) PDDocument(org.apache.pdfbox.pdmodel.PDDocument) PDFRenderer(org.apache.pdfbox.rendering.PDFRenderer) PDXObject(org.apache.pdfbox.pdmodel.graphics.PDXObject)

Aggregations

ByteArrayInputStream (java.io.ByteArrayInputStream)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 COSObject (org.apache.pdfbox.cos.COSObject)1 DefaultResourceCache (org.apache.pdfbox.pdmodel.DefaultResourceCache)1 PDDocument (org.apache.pdfbox.pdmodel.PDDocument)1 PDXObject (org.apache.pdfbox.pdmodel.graphics.PDXObject)1 PDFRenderer (org.apache.pdfbox.rendering.PDFRenderer)1 WebMarkupContainer (org.apache.wicket.markup.html.WebMarkupContainer)1 NonCachingImage (org.apache.wicket.markup.html.image.NonCachingImage)1 Fragment (org.apache.wicket.markup.html.panel.Fragment)1