You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2009/07/05 13:20:38 UTC
svn commit: r791220 -
/incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java
Author: lehmi
Date: Sun Jul 5 11:20:38 2009
New Revision: 791220
URL: http://svn.apache.org/viewvc?rev=791220&view=rev
Log:
PDFBOX-489: PDFReader now shows one page after the other
Modified:
incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java
Modified: incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java
URL: http://svn.apache.org/viewvc/incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java?rev=791220&r1=791219&r2=791220&view=diff
==============================================================================
--- incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java (original)
+++ incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java Sun Jul 5 11:20:38 2009
@@ -17,18 +17,16 @@
package org.apache.pdfbox;
import org.apache.pdfbox.exceptions.InvalidPasswordException;
-
import org.apache.pdfbox.pdfviewer.PageWrapper;
import org.apache.pdfbox.pdfviewer.ReaderBottomPanel;
-
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
-
import org.apache.pdfbox.util.ExtensionFileFilter;
import javax.swing.JFileChooser;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
+import javax.swing.KeyStroke;
import java.awt.print.PrinterException;
import java.io.File;
@@ -49,24 +47,24 @@
private File currentDir=new File(".");
private javax.swing.JMenuItem aboutMenuItem;
private javax.swing.JMenuItem contentsMenuItem;
- private javax.swing.JMenuItem copyMenuItem;
- private javax.swing.JMenuItem cutMenuItem;
- private javax.swing.JMenuItem deleteMenuItem;
- private javax.swing.JMenu editMenu;
private javax.swing.JMenuItem exitMenuItem;
private javax.swing.JMenu fileMenu;
private javax.swing.JMenu helpMenu;
private javax.swing.JMenuBar menuBar;
private javax.swing.JMenuItem openMenuItem;
- private javax.swing.JMenuItem pasteMenuItem;
- private javax.swing.JMenuItem saveAsMenuItem;
- private javax.swing.JMenuItem saveMenuItem;
private javax.swing.JMenuItem printMenuItem;
+ private javax.swing.JMenu viewMenu;
+ private javax.swing.JMenuItem nextPageItem;
+ private javax.swing.JMenuItem previousPageItem;
private JPanel documentPanel = new JPanel();
private ReaderBottomPanel bottomStatusPanel = new ReaderBottomPanel();
private PDDocument document = null;
-
+ private List pages= null;
+
+ private int currentPage = 0;
+ private int numberOfPages = 0;
+
/**
* Constructor.
*/
@@ -86,18 +84,14 @@
menuBar = new javax.swing.JMenuBar();
fileMenu = new javax.swing.JMenu();
openMenuItem = new javax.swing.JMenuItem();
- saveMenuItem = new javax.swing.JMenuItem();
- saveAsMenuItem = new javax.swing.JMenuItem();
exitMenuItem = new javax.swing.JMenuItem();
- editMenu = new javax.swing.JMenu();
- cutMenuItem = new javax.swing.JMenuItem();
- copyMenuItem = new javax.swing.JMenuItem();
- pasteMenuItem = new javax.swing.JMenuItem();
- deleteMenuItem = new javax.swing.JMenuItem();
helpMenu = new javax.swing.JMenu();
contentsMenuItem = new javax.swing.JMenuItem();
aboutMenuItem = new javax.swing.JMenuItem();
printMenuItem = new javax.swing.JMenuItem();
+ viewMenu = new javax.swing.JMenu();
+ nextPageItem = new javax.swing.JMenuItem();
+ previousPageItem = new javax.swing.JMenuItem();
setTitle("PDFBox - PDF Reader");
@@ -137,7 +131,10 @@
{
try
{
- document.print();
+ if (document != null)
+ {
+ document.print();
+ }
}
catch( PrinterException e )
{
@@ -147,12 +144,6 @@
});
fileMenu.add( printMenuItem );
- saveMenuItem.setText("Save");
- //fileMenu.add(saveMenuItem);
-
- saveAsMenuItem.setText("Save As ...");
- //fileMenu.add(saveAsMenuItem);
-
exitMenuItem.setText("Exit");
exitMenuItem.addActionListener(new java.awt.event.ActionListener()
{
@@ -166,21 +157,6 @@
menuBar.add(fileMenu);
- editMenu.setText("Edit");
- cutMenuItem.setText("Cut");
- editMenu.add(cutMenuItem);
-
- copyMenuItem.setText("Copy");
- editMenu.add(copyMenuItem);
-
- pasteMenuItem.setText("Paste");
- editMenu.add(pasteMenuItem);
-
- deleteMenuItem.setText("Delete");
- editMenu.add(deleteMenuItem);
-
- //menuBar.add(editMenu);
-
helpMenu.setText("Help");
contentsMenuItem.setText("Contents");
helpMenu.add(contentsMenuItem);
@@ -190,12 +166,58 @@
//menuBar.add(helpMenu);
+ viewMenu.setText("View");
+ nextPageItem.setText("Next page");
+ nextPageItem.setAccelerator(KeyStroke.getKeyStroke('+'));
+ nextPageItem.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ nextPage();
+ }
+ });
+ viewMenu.add(nextPageItem);
+
+ previousPageItem.setText("Previous page");
+ previousPageItem.setAccelerator(KeyStroke.getKeyStroke('-'));
+ previousPageItem.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(java.awt.event.ActionEvent evt)
+ {
+ previousPage();
+ }
+ });
+ viewMenu.add(previousPageItem);
+
+ menuBar.add(viewMenu);
+
setJMenuBar(menuBar);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-700)/2, (screenSize.height-600)/2, 700, 600);
- }//GEN-END:initComponents
+ }
+
+
+ private void nextPage()
+ {
+ System.out.println("nextPage");
+ if (currentPage < numberOfPages-1)
+ {
+ currentPage++;
+ showPage(currentPage);
+ }
+ }
+
+ private void previousPage()
+ {
+ System.out.println("previousPage");
+ if (currentPage > 0 )
+ {
+ currentPage--;
+ showPage(currentPage);
+ }
+ }
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt)
{
@@ -264,13 +286,28 @@
input = new FileInputStream(f);
document = parseDocument( input );
setTitle( "PDFBox - " + f.getAbsolutePath() );
-
- List pages = document.getDocumentCatalog().getAllPages();
- for( int i=0; i<pages.size(); i++ )
+ pages = document.getDocumentCatalog().getAllPages();
+ numberOfPages = pages.size();
+ currentPage = 0;
+ showPage(0);
+ }
+
+ private void showPage(int pageNumber)
+ {
+ try
{
PageWrapper wrapper = new PageWrapper( this );
- wrapper.displayPage( (PDPage)pages.get(i) );
+ wrapper.displayPage( (PDPage)pages.get(pageNumber) );
+ if (documentPanel.getComponentCount() > 0)
+ {
+ documentPanel.remove(0);
+ }
documentPanel.add( wrapper.getPanel() );
+ pack();
+ }
+ catch (IOException exception)
+ {
+ exception.printStackTrace();
}
}
/**