You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/04/12 22:50:52 UTC
svn commit: r1586898 - in
/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools: PDFReader.java
gui/PDFPagePanel.java gui/PageWrapper.java
Author: tilman
Date: Sat Apr 12 20:50:51 2014
New Revision: 1586898
URL: http://svn.apache.org/r1586898
Log:
PDFBOX-2024: use new renderPageToGraphics() method so that rotation is correct; fixed bug introduced in rev 1339076 that -nonSeq wouldn't work
Modified:
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFPagePanel.java
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PageWrapper.java
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java?rev=1586898&r1=1586897&r2=1586898&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java Sat Apr 12 20:50:51 2014
@@ -58,8 +58,8 @@ public class PDFReader extends JFrame
private JMenu viewMenu;
private JMenuItem nextPageItem;
private JMenuItem previousPageItem;
- private JPanel documentPanel = new JPanel();
- private ReaderBottomPanel bottomStatusPanel = new ReaderBottomPanel();
+ private final JPanel documentPanel = new JPanel();
+ private final ReaderBottomPanel bottomStatusPanel = new ReaderBottomPanel();
private PDFRenderer renderer;
private PDDocument document = null;
@@ -97,6 +97,7 @@ public class PDFReader extends JFrame
setTitle("PDFBox - PDF Reader");
addWindowListener(new java.awt.event.WindowAdapter()
{
+ @Override
public void windowClosing(java.awt.event.WindowEvent evt)
{
exitApplication();
@@ -114,6 +115,7 @@ public class PDFReader extends JFrame
openMenuItem.setToolTipText("Open PDF file");
openMenuItem.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
openMenuItemActionPerformed(evt);
@@ -125,6 +127,7 @@ public class PDFReader extends JFrame
printMenuItem.setText("Print");
printMenuItem.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
try
@@ -164,6 +167,7 @@ public class PDFReader extends JFrame
exitMenuItem.setText("Exit");
exitMenuItem.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
exitApplication();
@@ -179,6 +183,7 @@ public class PDFReader extends JFrame
nextPageItem.setAccelerator(KeyStroke.getKeyStroke('+'));
nextPageItem.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
nextPage();
@@ -190,6 +195,7 @@ public class PDFReader extends JFrame
previousPageItem.setAccelerator(KeyStroke.getKeyStroke('-'));
previousPageItem.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
previousPage();
@@ -331,7 +337,7 @@ public class PDFReader extends JFrame
try
{
PageWrapper wrapper = new PageWrapper(this);
- wrapper.displayPage(renderer, pages.get(pageNumber));
+ wrapper.displayPage(renderer, pages.get(pageNumber), pageNumber);
if (documentPanel.getComponentCount() > 0)
{
documentPanel.remove(0);
@@ -349,7 +355,6 @@ public class PDFReader extends JFrame
{
try
{
- PDFRenderer renderer = new PDFRenderer(document);
BufferedImage pageAsImage = renderer.renderImage(currentPage);
String imageFilename = currentFilename;
if (imageFilename.toLowerCase().endsWith(".pdf"))
@@ -375,18 +380,18 @@ public class PDFReader extends JFrame
else
{
document = PDDocument.load(file);
- renderer = new PDFRenderer(document);
- if (document.isEncrypted())
+ }
+ renderer = new PDFRenderer(document);
+ if (document.isEncrypted())
+ {
+ try
{
- try
- {
- StandardDecryptionMaterial sdm = new StandardDecryptionMaterial(password);
- document.openProtection(sdm);
- }
- catch (InvalidPasswordException e)
- {
- System.err.println("Error: The document is encrypted.");
- }
+ StandardDecryptionMaterial sdm = new StandardDecryptionMaterial(password);
+ document.openProtection(sdm);
+ }
+ catch (InvalidPasswordException e)
+ {
+ System.err.println("Error: The document is encrypted.");
}
}
}
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFPagePanel.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFPagePanel.java?rev=1586898&r1=1586897&r2=1586898&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFPagePanel.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFPagePanel.java Sat Apr 12 20:50:51 2014
@@ -25,7 +25,6 @@ import java.io.IOException;
import javax.swing.JPanel;
import org.apache.pdfbox.rendering.PDFRenderer;
-import org.apache.pdfbox.rendering.PageDrawer;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
@@ -42,18 +41,23 @@ public class PDFPagePanel extends JPanel
private PDFRenderer renderer;
private PDPage page;
+ private int pageNum;
private Dimension pageDimension = null;
private Dimension drawDimension = null;
/**
* This will set the page that should be displayed in this panel.
*
- * @param page The page to draw.
+ * @param renderer The renderer to render the page.
+ * @param page The PDF page to display.
+ * @param pageNum The number of the page.
+ * @throws IOException if something goes wrong.
*/
- public void setPage( PDFRenderer renderer, PDPage page ) throws IOException
+ public void setPage(PDFRenderer renderer, PDPage page, int pageNum) throws IOException
{
this.renderer = renderer;
this.page = page;
+ this.pageNum = pageNum;
PDRectangle cropBox = page.findCropBox();
drawDimension = cropBox.createDimension();
@@ -66,33 +70,23 @@ public class PDFPagePanel extends JPanel
{
pageDimension = drawDimension;
}
- setSize( pageDimension );
- setBackground( java.awt.Color.white );
+ setSize(pageDimension);
+ setBackground(java.awt.Color.white);
}
/**
* {@inheritDoc}
*/
- public void paint(Graphics g )
+ @Override
+ public void paint(Graphics g)
{
try
{
- PageDrawer drawer = new PageDrawer(renderer);
-
- g.setColor( getBackground() );
- g.fillRect( 0, 0, getWidth(), getHeight() );
-
- int rotation = page.findRotation();
- if (rotation == 90 || rotation == 270)
- {
- Graphics2D g2D = (Graphics2D)g;
- g2D.translate(pageDimension.getWidth(), 0.0f);
- g2D.rotate(Math.toRadians(rotation));
- }
- PDRectangle pageSize = new PDRectangle((float)drawDimension.getWidth(), (float)drawDimension.getHeight());
- drawer.drawPage( g, page, pageSize );
+ g.setColor(getBackground());
+ g.fillRect(0, 0, getWidth(), getHeight());
+ renderer.renderPageToGraphics(pageNum, (Graphics2D) g);
}
- catch( IOException e )
+ catch (IOException e)
{
e.printStackTrace();
}
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PageWrapper.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PageWrapper.java?rev=1586898&r1=1586897&r2=1586898&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PageWrapper.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PageWrapper.java Sat Apr 12 20:50:51 2014
@@ -35,7 +35,7 @@ import java.io.IOException;
*/
public class PageWrapper implements MouseMotionListener
{
- private JPanel pageWrapper = new JPanel();
+ private final JPanel pageWrapper = new JPanel();
private PDFPagePanel pagePanel = null;
private PDFReader reader = null;
@@ -58,12 +58,16 @@ public class PageWrapper implements Mous
}
/**
+ *
* This will display the PDF page in this component.
+ * @param renderer The renderer to render the page.
* @param page The PDF page to display.
+ * @param pageNum The number of the page.
+ * @throws IOException if something goes wrong.
*/
- public void displayPage(PDFRenderer renderer, PDPage page) throws IOException
+ public void displayPage(PDFRenderer renderer, PDPage page, int pageNum) throws IOException
{
- pagePanel.setPage(renderer, page);
+ pagePanel.setPage(renderer, page, pageNum);
pagePanel.setPreferredSize(pagePanel.getSize());
Dimension d = pagePanel.getSize();
d.width+=(SPACE_AROUND_DOCUMENT*2);