]> source.dussan.org Git - poi.git/commitdiff
add bookmarks dump feature to HWPFLister
authorSergey Vladimirov <sergey@apache.org>
Mon, 25 Jul 2011 09:00:31 +0000 (09:00 +0000)
committerSergey Vladimirov <sergey@apache.org>
Mon, 25 Jul 2011 09:00:31 +0000 (09:00 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1150593 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/dev/HWPFLister.java

index 751081abdfe5efa00199fdcdcffc18564e6cf580..dbf085f18d41ea64ca7f2f14c602ec24d58c8310 100644 (file)
@@ -45,6 +45,8 @@ import org.apache.poi.hwpf.model.StyleSheet;
 import org.apache.poi.hwpf.model.TextPiece;
 import org.apache.poi.hwpf.sprm.SprmIterator;
 import org.apache.poi.hwpf.sprm.SprmOperation;
+import org.apache.poi.hwpf.usermodel.Bookmark;
+import org.apache.poi.hwpf.usermodel.Bookmarks;
 import org.apache.poi.hwpf.usermodel.Field;
 import org.apache.poi.hwpf.usermodel.Paragraph;
 import org.apache.poi.hwpf.usermodel.Picture;
@@ -102,7 +104,7 @@ public final class HWPFLister
                             + "\t\t[--chpx] [--chpxProperties] [--chpxSprms]\n"
                             + "\t\t[--papx] [--papxProperties]\n"
                             + "\t\t[--paragraphs] [--paragraphsSprms] [--paragraphsText]\n"
-                            + "\t\t[--fields]\n" + "\t\t[--pictures]\n"
+                            + "\t\t[--bookmarks]\n" +"\t\t[--fields]\n" + "\t\t[--pictures]\n"
                             + "\t\t[--writereadback]\n" );
             System.exit( 1 );
         }
@@ -121,6 +123,7 @@ public final class HWPFLister
         boolean outputPapx = false;
         boolean outputPapxProperties = false;
 
+        boolean outputBookmarks = false;
         boolean outputFields = false;
         boolean outputPictures = false;
 
@@ -152,6 +155,8 @@ public final class HWPFLister
             if ( "--papxProperties".equals( arg ) )
                 outputPapxProperties = true;
 
+            if ( "--bookmarks".equals( arg ) )
+                outputBookmarks = true;
             if ( "--fields".equals( arg ) )
                 outputFields = true;
             if ( "--pictures".equals( arg ) )
@@ -196,6 +201,12 @@ public final class HWPFLister
                     outputParagraphsText );
         }
 
+        if ( outputBookmarks )
+        {
+            System.out.println( "== BOOKMARKS ==" );
+            lister.dumpBookmarks();
+        }
+
         if ( outputFields )
         {
             System.out.println( "== FIELDS ==" );
@@ -275,6 +286,24 @@ public final class HWPFLister
         this.text = builder.toString();
     }
 
+    private void dumpBookmarks()
+    {
+        if ( !( _doc instanceof HWPFDocument ) )
+        {
+            System.out.println( "Word 95 not supported so far" );
+            return;
+        }
+
+        HWPFDocument document = (HWPFDocument) _doc;
+        Bookmarks bookmarks = document.getBookmarks();
+        for ( int b = 0; b < bookmarks.getBookmarksCount(); b++ )
+        {
+            Bookmark bookmark = bookmarks.getBookmark( b );
+            System.out.println( "[" + bookmark.getStart() + "; "
+                    + bookmark.getEnd() + "): " + bookmark.getName() );
+        }
+    }
+
     public void dumpChpx( boolean withProperties, boolean withSprms )
     {
         for ( CHPX chpx : _doc.getCharacterTable().getTextRuns() )