From 05d635c8f0f9031721ad8cb53b8c9010857c46f2 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 9 May 2022 06:49:24 +0200 Subject: [PATCH] Introduce PDF viewer --- .../org/argeo/app/ui/publish/PdfViewer.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 org.argeo.app.ui/src/org/argeo/app/ui/publish/PdfViewer.java diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/publish/PdfViewer.java b/org.argeo.app.ui/src/org/argeo/app/ui/publish/PdfViewer.java new file mode 100644 index 0000000..38d995f --- /dev/null +++ b/org.argeo.app.ui/src/org/argeo/app/ui/publish/PdfViewer.java @@ -0,0 +1,37 @@ +package org.argeo.app.ui.publish; + +import java.awt.image.BufferedImage; +import java.nio.file.Paths; + +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.rendering.PDFRenderer; +import org.argeo.eclipse.ui.specific.BufferedImageDisplay; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; + +public class PdfViewer { + public static void main(String[] args) throws Exception { + PDDocument doc = PDDocument.load(Paths.get(args[0]).toFile()); + PDFRenderer renderer = new PDFRenderer(doc); + + BufferedImage image = renderer.renderImageWithDPI(0, 300); + + Display display = new Display(); + Shell shell = new Shell(display); + shell.setLayout(new FillLayout()); + + shell.setSize(200, 200); + + BufferedImageDisplay imageDisplay = new BufferedImageDisplay(shell, SWT.NONE); + imageDisplay.setImage(image); + + shell.open(); + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) + display.sleep(); + } + display.dispose(); + } +} -- 2.30.2