Author: jahewson Date: Mon Jun 22 21:16:18 2015 New Revision: 1686942 URL: http://svn.apache.org/r1686942 Log: PDFBOX-2530: Display unprintable strings as hex
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFTreeCellRenderer.java Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java?rev=1686942&r1=1686941&r2=1686942&view=diff ============================================================================== --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java Mon Jun 22 21:16:18 2015 @@ -458,7 +458,17 @@ public class PDFDebugger extends javax.s } else if( selectedNode instanceof COSString ) { - data = "" + ((COSString)selectedNode).getString(); + String text = ((COSString) selectedNode).getString(); + // display unprintable strings as hex + for (char c : text.toCharArray()) + { + if (Character.isISOControl(c)) + { + text = "<" + ((COSString) selectedNode).toHexString() + ">"; + break; + } + } + data = "" + text; } else if( selectedNode instanceof COSStream ) { Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFTreeCellRenderer.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFTreeCellRenderer.java?rev=1686942&r1=1686941&r2=1686942&view=diff ============================================================================== --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFTreeCellRenderer.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/gui/PDFTreeCellRenderer.java Mon Jun 22 21:16:18 2015 @@ -77,7 +77,17 @@ public class PDFTreeCellRenderer extends } else if (nodeValue instanceof COSString) { - result = ((COSString) nodeValue).getString(); + String text = ((COSString) nodeValue).getString(); + // display unprintable strings as hex + for (char c : text.toCharArray()) + { + if (Character.isISOControl(c)) + { + text = "<" + ((COSString) nodeValue).toHexString() + ">"; + break; + } + } + result = text; } else if (nodeValue instanceof COSName) {