public class PDFDebugger
extends javax.swing.JFrame
Modifier and Type | Class and Description |
---|---|
(package private) class |
PDFDebugger.DocumentOpener
Internal class to avoid double code in password entry loop.
|
javax.swing.JFrame.AccessibleJFrame
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
Modifier and Type | Field and Description |
---|---|
static javax.swing.JCheckBoxMenuItem |
allowSubsampling |
private java.lang.String |
currentFilePath |
private PDDocument |
document |
private javax.swing.JPanel |
documentPanel |
private javax.swing.JMenu |
findMenu |
private javax.swing.JMenuItem |
findMenuItem |
private javax.swing.JMenuItem |
findNextMenuItem |
private javax.swing.JMenuItem |
findPreviousMenuItem |
private static boolean |
IS_MAC_OS |
private boolean |
isPageMode |
private javax.swing.JScrollPane |
jScrollPaneRight |
private javax.swing.JSplitPane |
jSplitPane |
private javax.swing.JTextPane |
jTextPane |
private static java.lang.String |
OS_NAME |
private static java.util.Set<COSName> |
OTHERCOLORSPACES |
private static java.lang.String |
PASSWORD |
private javax.swing.JMenuItem |
printMenuItem |
private RecentFiles |
recentFiles |
private javax.swing.JMenu |
recentFilesMenu |
private javax.swing.JMenuItem |
reopenMenuItem |
private javax.swing.JMenuItem |
saveAsMenuItem |
private javax.swing.JMenuItem |
saveMenuItem |
private static int |
SHORCUT_KEY_MASK |
private static java.util.Set<COSName> |
SPECIALCOLORSPACES |
private ReaderBottomPanel |
statusBar |
private TreeStatusPane |
statusPane |
private Tree |
tree |
private static java.lang.String |
VIEW_STRUCTURE |
private javax.swing.JMenuItem |
viewModeItem |
private WindowPrefs |
windowPrefs |
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
PDFDebugger()
Constructor.
|
PDFDebugger(boolean viewPages)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private void |
addRecentFileItems() |
private java.lang.String |
convertToString(java.lang.Object selectedNode) |
private javax.swing.JMenu |
createEditMenu() |
private javax.swing.JMenu |
createFileMenu() |
private javax.swing.JMenu |
createFindMenu() |
private javax.swing.JMenu |
createViewMenu() |
private void |
exitMenuItemActionPerformed(java.awt.event.ActionEvent ignored) |
javax.swing.JMenu |
getFindMenu()
Returns the File menu.
|
javax.swing.JMenuItem |
getFindMenuItem()
Returns the Edit > Find > Find menu item.
|
javax.swing.JMenuItem |
getFindNextMenuItem()
Returns the Edit > Find > Find Next menu item.
|
javax.swing.JMenuItem |
getFindPreviousMenuItem()
Returns the Edit > Find > Find Previous menu item.
|
private COSName |
getNodeKey(java.lang.Object selectedNode) |
static java.lang.String |
getPageLabel(PDDocument document,
int pageIndex)
Convenience method to get the page label if available.
|
private java.lang.Object |
getUnderneathObject(java.lang.Object selectedNode) |
private void |
initComponents()
This method is called from within the constructor to initialize the form.
|
protected void |
initGlobalEventHandlers()
Initialize application global event handlers.
|
private void |
initTree() |
private boolean |
isAnnot(java.lang.Object obj) |
private boolean |
isCIDFont(COSDictionary dic) |
private boolean |
isEncrypt(java.lang.Object obj) |
private boolean |
isFlagNode(java.lang.Object selectedNode,
java.lang.Object parentNode) |
private boolean |
isFont(java.lang.Object selectedNode) |
private boolean |
isFontDescriptor(java.lang.Object obj) |
private boolean |
isOtherColorSpace(java.lang.Object selectedNode) |
private boolean |
isPage(java.lang.Object selectedNode) |
private boolean |
isSpecialColorSpace(java.lang.Object selectedNode) |
private boolean |
isStream(java.lang.Object selectedNode) |
private boolean |
isString(java.lang.Object selectedNode) |
private void |
jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) |
static void |
main(java.lang.String[] args)
Entry point.
|
private void |
openMenuItemActionPerformed(java.awt.event.ActionEvent evt) |
private void |
osxOpenFiles(java.lang.String filename)
This method is called via reflection on Mac OS X.
|
private void |
osxQuit()
This method is called via reflection on Mac OS X.
|
protected void |
performApplicationExit()
Exit the application after the window is closed.
|
private void |
printMenuItemActionPerformed(java.awt.event.ActionEvent evt) |
private void |
readPDFFile(java.io.File file,
java.lang.String password) |
private void |
readPDFFile(java.lang.String filePath,
java.lang.String password) |
private void |
readPDFurl(java.lang.String urlString,
java.lang.String password) |
private void |
replaceRightComponent(java.awt.Component pane) |
private void |
showColorPane(java.lang.Object csNode)
Show a Panel describing color spaces in more detail and interactive way.
|
private void |
showFlagPane(java.lang.Object parentNode,
java.lang.Object selectedNode) |
private void |
showFont(java.lang.Object selectedNode,
javax.swing.tree.TreePath path) |
private void |
showPage(java.lang.Object selectedNode) |
private void |
showStream(COSStream stream,
javax.swing.tree.TreePath path) |
private void |
showString(java.lang.Object selectedNode) |
private static void |
usage()
This will print out a message telling how to use this utility.
|
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private static final java.util.Set<COSName> SPECIALCOLORSPACES
private static final java.util.Set<COSName> OTHERCOLORSPACES
private static final java.lang.String PASSWORD
private static final java.lang.String VIEW_STRUCTURE
private static final int SHORCUT_KEY_MASK
private TreeStatusPane statusPane
private RecentFiles recentFiles
private WindowPrefs windowPrefs
private boolean isPageMode
private PDDocument document
private java.lang.String currentFilePath
private static final java.lang.String OS_NAME
private static final boolean IS_MAC_OS
private javax.swing.JScrollPane jScrollPaneRight
private javax.swing.JSplitPane jSplitPane
private javax.swing.JTextPane jTextPane
private ReaderBottomPanel statusBar
private Tree tree
private final javax.swing.JPanel documentPanel
private javax.swing.JMenuItem saveAsMenuItem
private javax.swing.JMenuItem saveMenuItem
private javax.swing.JMenu recentFilesMenu
private javax.swing.JMenuItem printMenuItem
private javax.swing.JMenuItem reopenMenuItem
private javax.swing.JMenu findMenu
private javax.swing.JMenuItem findMenuItem
private javax.swing.JMenuItem findNextMenuItem
private javax.swing.JMenuItem findPreviousMenuItem
private javax.swing.JMenuItem viewModeItem
public static javax.swing.JCheckBoxMenuItem allowSubsampling
public PDFDebugger()
public PDFDebugger(boolean viewPages)
private void initComponents()
protected void initGlobalEventHandlers()
private javax.swing.JMenu createFileMenu()
private javax.swing.JMenu createEditMenu()
private javax.swing.JMenu createViewMenu()
private javax.swing.JMenu createFindMenu()
public javax.swing.JMenu getFindMenu()
public javax.swing.JMenuItem getFindMenuItem()
public javax.swing.JMenuItem getFindNextMenuItem()
public javax.swing.JMenuItem getFindPreviousMenuItem()
private void osxOpenFiles(java.lang.String filename)
private void osxQuit()
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt)
private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt)
private boolean isSpecialColorSpace(java.lang.Object selectedNode)
private boolean isOtherColorSpace(java.lang.Object selectedNode)
private boolean isPage(java.lang.Object selectedNode)
private boolean isFlagNode(java.lang.Object selectedNode, java.lang.Object parentNode)
private boolean isEncrypt(java.lang.Object obj)
private boolean isFontDescriptor(java.lang.Object obj)
private boolean isAnnot(java.lang.Object obj)
private boolean isStream(java.lang.Object selectedNode)
private boolean isString(java.lang.Object selectedNode)
private boolean isFont(java.lang.Object selectedNode)
private boolean isCIDFont(COSDictionary dic)
private void showColorPane(java.lang.Object csNode)
csNode
- the special color space containing node.private void showPage(java.lang.Object selectedNode)
private void showFlagPane(java.lang.Object parentNode, java.lang.Object selectedNode)
private void showStream(COSStream stream, javax.swing.tree.TreePath path) throws java.io.IOException
java.io.IOException
private void showFont(java.lang.Object selectedNode, javax.swing.tree.TreePath path)
private void replaceRightComponent(java.awt.Component pane)
private void showString(java.lang.Object selectedNode)
private COSName getNodeKey(java.lang.Object selectedNode)
private java.lang.Object getUnderneathObject(java.lang.Object selectedNode)
private java.lang.String convertToString(java.lang.Object selectedNode)
private void exitMenuItemActionPerformed(java.awt.event.ActionEvent ignored)
protected void performApplicationExit()
private void printMenuItemActionPerformed(java.awt.event.ActionEvent evt)
public static void main(java.lang.String[] args) throws java.lang.Exception
args
- the command line argumentsjava.lang.Exception
- If anything goes wrong.private void readPDFFile(java.lang.String filePath, java.lang.String password) throws java.io.IOException
java.io.IOException
private void readPDFFile(java.io.File file, java.lang.String password) throws java.io.IOException
java.io.IOException
private void readPDFurl(java.lang.String urlString, java.lang.String password) throws java.io.IOException
java.io.IOException
private void initTree()
private void addRecentFileItems()
private static void usage()
public static java.lang.String getPageLabel(PDDocument document, int pageIndex)
document
- pageIndex
- 0-based page number.