From: Mathieu Baudier Date: Mon, 9 May 2022 04:49:24 +0000 (+0200) Subject: Introduce PDF viewer X-Git-Tag: v2.3.8~113 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=05d635c8f0f9031721ad8cb53b8c9010857c46f2 Introduce PDF viewer --- 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(); + } +}