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 2015/07/08 18:36:59 UTC
svn commit: r1689917 -
/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java
Author: tilman
Date: Wed Jul 8 16:36:59 2015
New Revision: 1689917
URL: http://svn.apache.org/r1689917
Log:
PDFBOX-2530: improved flag checks, as done by Khyrul Bashar in GSoC2015
Modified:
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.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=1689917&r1=1689916&r2=1689917&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 Wed Jul 8 16:36:59 2015
@@ -441,7 +441,7 @@ public class PDFDebugger extends javax.s
showPage(selectedNode);
return;
}
- if (isFlagNode(selectedNode))
+ if (isFlagNode(selectedNode, path.getParentPath().getLastPathComponent()))
{
Object parentNode = path.getParentPath().getLastPathComponent();
showFlagPane(parentNode, selectedNode);
@@ -521,16 +521,39 @@ public class PDFDebugger extends javax.s
return false;
}
- private boolean isFlagNode(Object selectedNode)
+ private boolean isFlagNode(Object selectedNode, Object parentNode)
{
if (selectedNode instanceof MapEntry)
{
- Object key = ((MapEntry)selectedNode).getKey();
- return COSName.FLAGS.equals(key) || COSName.F.equals(key) || COSName.FF.equals(key)
+ Object key = ((MapEntry) selectedNode).getKey();
+ return (COSName.FLAGS.equals(key) && isFontDescriptor(parentNode))
+ || (COSName.F.equals(key) && isAnnot(parentNode)) || COSName.FF.equals(key)
|| COSName.PANOSE.equals(key);
}
return false;
}
+
+ private boolean isFontDescriptor(Object obj)
+ {
+ Object underneathObject = getUnderneathObject(obj);
+ if (underneathObject instanceof COSDictionary)
+ {
+ return ((COSDictionary) underneathObject).containsKey(COSName.TYPE)
+ && ((COSDictionary) underneathObject).getCOSName(COSName.TYPE).equals(COSName.FONT_DESC);
+ }
+ return false;
+ }
+
+ private boolean isAnnot(Object obj)
+ {
+ Object underneathObject = getUnderneathObject(obj);
+ if (underneathObject instanceof COSDictionary)
+ {
+ return ((COSDictionary) underneathObject).containsKey(COSName.TYPE)
+ && ((COSDictionary) underneathObject).getCOSName(COSName.TYPE).equals(COSName.ANNOT);
+ }
+ return false;
+ }
/**
* Show a Panel describing color spaces in more detail and interactive way.