You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2013/03/10 18:23:16 UTC

svn commit: r1454883 - /pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/EmbeddedFiles.java

Author: lehmi
Date: Sun Mar 10 17:23:16 2013
New Revision: 1454883

URL: http://svn.apache.org/r1454883
Log:
PDFBOX-811: all embedded files have to be added as new child tree node of the root node

Modified:
    pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/EmbeddedFiles.java

Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/EmbeddedFiles.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/EmbeddedFiles.java?rev=1454883&r1=1454882&r2=1454883&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/EmbeddedFiles.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/EmbeddedFiles.java Sun Mar 10 17:23:16 2013
@@ -18,10 +18,10 @@ package org.apache.pdfbox.examples.pdmod
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.GregorianCalendar;
-import java.util.SortedMap;
-import java.util.TreeMap;
+import java.util.List;
 
 import org.apache.pdfbox.exceptions.COSVisitorException;
 
@@ -85,7 +85,6 @@ public class EmbeddedFiles
             //embedded files are stored in a named tree
             PDEmbeddedFilesNameTreeNode efTree = new PDEmbeddedFilesNameTreeNode();
 
-
             //first create the file specification, which holds the embedded file
             PDComplexFileSpecification fs = new PDComplexFileSpecification();
             fs.setFile( "Test.txt" );
@@ -100,8 +99,14 @@ public class EmbeddedFiles
             ef.setCreationDate( new GregorianCalendar() );
             fs.setEmbeddedFile( ef );
 
-            //now add the entry to the embedded file tree and set in the document.
-            efTree.setNames( Collections.singletonMap( "My first attachment",  fs ) );
+            // create a new tree node and add the embedded file 
+            PDEmbeddedFilesNameTreeNode treeNode = new PDEmbeddedFilesNameTreeNode();
+            treeNode.setNames( Collections.singletonMap( "My first attachment",  fs ) );
+            // add the new node as kid to the root node
+            List<PDEmbeddedFilesNameTreeNode> kids = new ArrayList<PDEmbeddedFilesNameTreeNode>();
+            kids.add(treeNode);
+            efTree.setKids(kids);
+            // add the tree to the document catalog
             PDDocumentNameDictionary names = new PDDocumentNameDictionary( doc.getDocumentCatalog() );
             names.setEmbeddedFiles( efTree );
             doc.getDocumentCatalog().setNames( names );