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);
}
Aggregations