]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.ui/src/org/argeo/app/ui/publish/PdfViewer.java
Default edition layer supports SWT UI provider
[gpl/argeo-suite.git] / org.argeo.app.ui / src / org / argeo / app / ui / publish / PdfViewer.java
1 package org.argeo.app.ui.publish;
2
3 import java.awt.image.BufferedImage;
4 import java.nio.file.Paths;
5
6 import org.apache.pdfbox.pdmodel.PDDocument;
7 import org.apache.pdfbox.rendering.PDFRenderer;
8 import org.argeo.eclipse.ui.specific.BufferedImageDisplay;
9 import org.eclipse.swt.SWT;
10 import org.eclipse.swt.layout.FillLayout;
11 import org.eclipse.swt.widgets.Display;
12 import org.eclipse.swt.widgets.Shell;
13
14 public class PdfViewer {
15 public static void main(String[] args) throws Exception {
16 PDDocument doc = PDDocument.load(Paths.get(args[0]).toFile());
17 PDFRenderer renderer = new PDFRenderer(doc);
18
19 BufferedImage image = renderer.renderImageWithDPI(0, 300);
20
21 Display display = new Display();
22 Shell shell = new Shell(display);
23 shell.setLayout(new FillLayout());
24
25 shell.setSize(200, 200);
26
27 BufferedImageDisplay imageDisplay = new BufferedImageDisplay(shell, SWT.NONE);
28 imageDisplay.setImage(image);
29
30 shell.open();
31 while (!shell.isDisposed()) {
32 if (!display.readAndDispatch())
33 display.sleep();
34 }
35 display.dispose();
36 }
37 }