aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/pdfbox/PDFDebugger.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/pdfbox/PDFDebugger.java')
-rw-r--r--src/main/java/org/pdfbox/PDFDebugger.java420
1 files changed, 0 insertions, 420 deletions
diff --git a/src/main/java/org/pdfbox/PDFDebugger.java b/src/main/java/org/pdfbox/PDFDebugger.java
deleted file mode 100644
index 0ccf2fe..0000000
--- a/src/main/java/org/pdfbox/PDFDebugger.java
+++ /dev/null
@@ -1,420 +0,0 @@
-/**
- * Copyright (c) 2004-2005, www.pdfbox.org
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of pdfbox; nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * http://www.pdfbox.org
- *
- */
-package org.pdfbox;
-
-import org.pdfbox.exceptions.InvalidPasswordException;
-
-import org.pdfbox.pdfviewer.PDFTreeModel;
-import org.pdfbox.pdfviewer.PDFTreeCellRenderer;
-import org.pdfbox.pdfviewer.ArrayEntry;
-import org.pdfbox.pdfviewer.MapEntry;
-
-import org.pdfbox.pdmodel.PDDocument;
-
-import org.pdfbox.util.DefaultFileFilter;
-
-import org.pdfbox.cos.COSBoolean;
-import org.pdfbox.cos.COSFloat;
-import org.pdfbox.cos.COSInteger;
-import org.pdfbox.cos.COSName;
-import org.pdfbox.cos.COSNull;
-import org.pdfbox.cos.COSStream;
-import org.pdfbox.cos.COSString;
-
-//import javax.swing.tree.*;
-import javax.swing.tree.TreeModel;
-import javax.swing.tree.TreePath;
-import javax.swing.JFileChooser;
-import javax.swing.JScrollPane;
-import javax.swing.JPanel;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- *
- * @author wurtz
- * @author Ben Litchfield (ben@csh.rit.edu)
- * @version $Revision: 1.1 $
- */
-public class PDFDebugger extends javax.swing.JFrame
-{
- private File currentDir=new File(".");
-
- /**
- * Constructor.
- */
- public PDFDebugger()
- {
- initComponents();
- }
-
- /**
- * This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
- */
- private void initComponents()
- {
- jSplitPane1 = new javax.swing.JSplitPane();
- jScrollPane1 = new javax.swing.JScrollPane();
- jTree1 = new javax.swing.JTree();
- jScrollPane2 = new javax.swing.JScrollPane();
- jTextPane1 = new javax.swing.JTextPane();
- 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();
-
- jTree1.setCellRenderer( new PDFTreeCellRenderer() );
- jTree1.setModel( null );
-
- setTitle("PDFBox - PDF Viewer");
- addWindowListener(new java.awt.event.WindowAdapter()
- {
- public void windowClosing(java.awt.event.WindowEvent evt)
- {
- exitForm(evt);
- }
- });
-
-
- jScrollPane1.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED));
- jScrollPane1.setPreferredSize(new java.awt.Dimension(300, 500));
- jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener()
- {
- public void valueChanged(javax.swing.event.TreeSelectionEvent evt)
- {
- jTree1ValueChanged(evt);
- }
- });
-
- jScrollPane1.setViewportView(jTree1);
-
- jSplitPane1.setRightComponent(jScrollPane2);
-
- jScrollPane2.setPreferredSize(new java.awt.Dimension(300, 500));
- jScrollPane2.setViewportView(jTextPane1);
-
- jSplitPane1.setLeftComponent(jScrollPane1);
-
- JScrollPane documentScroller = new JScrollPane();
- //documentScroller.setPreferredSize( new Dimension( 300, 500 ) );
- documentScroller.setViewportView( documentPanel );
-
- getContentPane().add( jSplitPane1, java.awt.BorderLayout.CENTER );
-
- fileMenu.setText("File");
- openMenuItem.setText("Open");
- openMenuItem.setToolTipText("Open PDF file");
- openMenuItem.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt)
- {
- openMenuItemActionPerformed(evt);
- }
- });
-
- fileMenu.add(openMenuItem);
-
- saveMenuItem.setText("Save");
- //fileMenu.add(saveMenuItem);
-
- saveAsMenuItem.setText("Save As ...");
- //fileMenu.add(saveAsMenuItem);
-
- exitMenuItem.setText("Exit");
- exitMenuItem.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt)
- {
- exitMenuItemActionPerformed(evt);
- }
- });
-
- fileMenu.add(exitMenuItem);
-
- 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);
-
- aboutMenuItem.setText("About");
- helpMenu.add(aboutMenuItem);
-
- //menuBar.add(helpMenu);
-
- 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 openMenuItemActionPerformed(java.awt.event.ActionEvent evt)
- {
- JFileChooser chooser = new JFileChooser();
- chooser.setCurrentDirectory(currentDir);
-
- DefaultFileFilter pdfFilter = new DefaultFileFilter(new String[] {"pdf", "PDF"}, "PDF Files");
- chooser.setFileFilter(pdfFilter);
- int result = chooser.showOpenDialog(PDFDebugger.this);
- if (result == JFileChooser.APPROVE_OPTION)
- {
- String name = chooser.getSelectedFile().getPath();
- currentDir = new File(name).getParentFile();
- try
- {
- readPDFFile(name);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }//GEN-LAST:event_openMenuItemActionPerformed
-
- private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt)
- {
- TreePath path = jTree1.getSelectionPath();
- if (path != null)
- {
- try
- {
- Object selectedNode = path.getLastPathComponent();
- String data=convertToString(selectedNode);
-
-
-
- if (data != null)
- {
- jTextPane1.setText(data);
- }
- else
- {
- jTextPane1.setText( "" );
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }//GEN-LAST:event_jTree1ValueChanged
-
- private String convertToString( Object selectedNode )
- {
- String data = null;
- if(selectedNode instanceof COSBoolean)
- {
- data = "" + ((COSBoolean)selectedNode).getValue();
- }
- else if( selectedNode instanceof COSFloat )
- {
- data = "" + ((COSFloat)selectedNode).floatValue();
- }
- else if( selectedNode instanceof COSNull )
- {
- data = "null";
- }
- else if( selectedNode instanceof COSInteger )
- {
- data = "" + ((COSInteger)selectedNode).intValue();
- }
- else if( selectedNode instanceof COSName )
- {
- data = "" + ((COSName)selectedNode).getName();
- }
- else if( selectedNode instanceof COSString )
- {
- data = "" + ((COSString)selectedNode).getString();
- }
- else if( selectedNode instanceof COSStream )
- {
- try
- {
- COSStream stream = (COSStream)selectedNode;
- InputStream ioStream = stream.getUnfilteredStream();
- ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int amountRead = 0;
- while( (amountRead = ioStream.read( buffer, 0, buffer.length ) ) != -1 )
- {
- byteArray.write( buffer, 0, amountRead );
- }
- data = byteArray.toString();
- }
- catch( IOException e )
- {
- e.printStackTrace();
- }
- }
- else if( selectedNode instanceof MapEntry )
- {
- data = convertToString( ((MapEntry)selectedNode).getValue() );
- }
- else if( selectedNode instanceof ArrayEntry )
- {
- data = convertToString( ((ArrayEntry)selectedNode).getValue() );
- }
- return data;
- }
-
- private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt)
- {
- System.exit(0);
- }
-
- /**
- * Exit the Application.
- */
- private void exitForm(java.awt.event.WindowEvent evt)
- {
- System.exit(0);
- }
-
- /**
- * @param args the command line arguments
- *
- * @throws Exception If anything goes wrong.
- */
- public static void main(String[] args) throws Exception
- {
- PDFDebugger viewer = new PDFDebugger();
- if( args.length >0 )
- {
- viewer.readPDFFile( args[0] );
- }
- viewer.show();
- }
-
- private void readPDFFile(String file) throws Exception
- {
- InputStream input = null;
- File f = new File( file );
- input = new FileInputStream(f);
- PDDocument document = parseDocument( input );
- TreeModel model=new PDFTreeModel(document);
- jTree1.setModel(model);
- setTitle( "PDFBox - " + f.getAbsolutePath() );
- /*
- List pages = document.getDocumentCatalog().getAllPages();
- for( int i=0; i<pages.size(); i++ )
- {
- PageWrapper wrapper = new PageWrapper();
- wrapper.displayPage( (PDPage)pages.get(i) );
- documentPanel.add( wrapper.getPanel() );
- }*/
- }
- /**
- * This will parse a document.
- *
- * @param input The input stream for the document.
- *
- * @return The document.
- *
- * @throws IOException If there is an error parsing the document.
- */
- private static PDDocument parseDocument( InputStream input )throws IOException
- {
- PDDocument document = PDDocument.load( input );
- if( document.isEncrypted() )
- {
- try
- {
- document.decrypt( "" );
- }
- catch( InvalidPasswordException e )
- {
- System.err.println( "Error: The document is encrypted." );
- }
- catch( org.pdfbox.exceptions.CryptographyException e )
- {
- e.printStackTrace();
- }
- }
-
- return document;
- }
- // Variables declaration - do not modify//GEN-BEGIN:variables
- 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.JScrollPane jScrollPane1;
- private javax.swing.JScrollPane jScrollPane2;
- private javax.swing.JSplitPane jSplitPane1;
- private javax.swing.JTextPane jTextPane1;
- private javax.swing.JTree jTree1;
- 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 JPanel documentPanel = new JPanel();
- // End of variables declaration//GEN-END:variables
-
-} \ No newline at end of file