blob: a118e3d46d4ae7153edb03bfbb4a3f40cb78e59a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
import com.artifex.mupdf.fitz.*;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Button;
import java.awt.Panel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
public class Viewer extends Frame implements WindowListener, ActionListener
{
protected Document doc;
protected Panel toolbar;
protected PageCanvas pageCanvas;
protected Label pageLabel;
protected Button firstButton, prevButton, nextButton, lastButton;
protected int pageCount;
protected int pageNumber;
public Viewer(Document doc_) {
super("MuPDF");
this.doc = doc_;
pageCount = doc.countPages();
pageNumber = 0;
setSize(600, 900);
setTitle("MuPDF: " + doc.getMetaData(Document.META_INFO_TITLE));
toolbar = new Panel();
toolbar.setLayout(new FlowLayout(FlowLayout.LEFT));
firstButton = new Button("|<");
firstButton.addActionListener(this);
prevButton = new Button("<");
prevButton.addActionListener(this);
nextButton = new Button(">");
nextButton.addActionListener(this);
lastButton = new Button(">|");
lastButton.addActionListener(this);
pageLabel = new Label();
toolbar.add(firstButton);
toolbar.add(prevButton);
toolbar.add(nextButton);
toolbar.add(lastButton);
toolbar.add(pageLabel);
add(toolbar, BorderLayout.NORTH);
addWindowListener(this);
stuff();
}
public void stuff() {
pageLabel.setText("Page " + (pageNumber + 1) + " / " + pageCount);
if (pageCanvas != null)
remove(pageCanvas);
pageCanvas = new PageCanvas(doc.loadPage(pageNumber));
add(pageCanvas, BorderLayout.CENTER);
validate();
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
int oldPageNumber = pageNumber;
if (source == firstButton)
pageNumber = 0;
if (source == lastButton)
pageNumber = pageCount - 1;
if (source == prevButton) {
pageNumber = pageNumber - 1;
if (pageNumber < 0)
pageNumber = 0;
}
if (source == nextButton) {
pageNumber = pageNumber + 1;
if (pageNumber >= pageCount)
pageNumber = pageCount - 1;
}
if (pageNumber != oldPageNumber)
stuff();
}
public void windowClosing(WindowEvent event) {
System.exit(0);
}
public void windowActivated(WindowEvent event) { }
public void windowDeactivated(WindowEvent event) { }
public void windowIconified(WindowEvent event) { }
public void windowDeiconified(WindowEvent event) { }
public void windowOpened(WindowEvent event) { }
public void windowClosed(WindowEvent event) { }
public static void main(String[] args) {
Document doc = new Document("pdfref17.pdf");
Viewer app = new Viewer(doc);
app.setVisible(true);
}
}
|