Changeset 1103


Ignore:
Timestamp:
03/21/10 02:00:47 (2 years ago)
Author:
jharrop
Message:

Better control over include/excludes. Option of XML output.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/docx4j/src/main/java/org/docx4j/samples/StripParts.java

    r1028 r1103  
    2222 
    2323 
    24 import java.io.FileInputStream; 
    2524import java.net.URI; 
    2625import java.util.ArrayList; 
    2726import java.util.List; 
    2827 
    29 import javax.xml.bind.JAXBContext; 
    30 import javax.xml.bind.JAXBElement; 
    31 import javax.xml.bind.JAXBException; 
    32 import javax.xml.bind.Unmarshaller; 
    33  
    3428import org.apache.log4j.Logger; 
    35 import org.docx4j.XmlUtils; 
    36 import org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator; 
    37 import org.docx4j.jaxb.Context; 
    3829import org.docx4j.openpackaging.URIHelper; 
    3930import org.docx4j.openpackaging.exceptions.Docx4JException; 
    40 import org.docx4j.openpackaging.io.LoadFromZipFile; 
    41 import org.docx4j.openpackaging.io.SaveToZipFile; 
    4231import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 
    4332import org.docx4j.openpackaging.parts.Part; 
    4433import org.docx4j.openpackaging.parts.PartName; 
    45 import org.docx4j.openpackaging.parts.WordprocessingML.DocumentSettingsPart; 
    46 import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart; 
    47 import org.docx4j.openpackaging.parts.relationships.Namespaces; 
    4834import org.docx4j.openpackaging.parts.relationships.RelationshipsPart; 
    4935import org.docx4j.relationships.Relationship; 
    50 import org.docx4j.wml.Body; 
    5136 
    5237 
     
    5944         */ 
    6045        public static void main(String[] args) throws Exception { 
     46 
     47                // Do we want to save output?  
     48                boolean save = true; 
     49                boolean flatOpcXmlOutput = true; 
    6150                 
    62         boolean save = false; 
    63  
    64                 String inputfilepath = System.getProperty("user.dir")  
    65                                 + "/sample-docs/test-docs/header-footer/header_first-and-odd-even.xml"; 
     51                String dir = System.getProperty("user.dir") + "/foo/"; 
     52                 
     53                String file = "bar"; 
     54                String inputfilepath = dir + file + ".docx"; 
     55                                 
     56                // If so, whereto? 
     57                String outputfilepath = null; 
     58                if (save) { 
     59                        if (flatOpcXmlOutput) { 
     60                                outputfilepath = dir + file + "_OUT.xml"; 
     61                        } else { 
     62                                outputfilepath = dir + file + "_OUT.docx";                               
     63                        } 
     64                } 
    6665                         
    6766                // Open a document from the file system 
     
    7877                 
    7978                if (save) { 
    80                         wordMLPackage.save(new java.io.File(inputfilepath)); 
     79                        wordMLPackage.save(new java.io.File(outputfilepath)); 
     80                        System.out.println("Saved stripped to " + outputfilepath); 
     81                } else { 
    8182                        System.out.println("Stripped parts from " + inputfilepath); 
    8283                } 
     
    9192                        StringBuilder sb, String indent) 
    9293         throws Docx4JException { 
     94                 
     95                boolean stripPropertiesParts = true; 
     96                boolean keepStyles = false; 
     97                boolean defaultToDelete = false; 
    9398                 
    9499                List<Relationship> deletions = new ArrayList<Relationship>(); 
     
    117122                                // Part p = rp.getPart(r); 
    118123                                 
     124                                // TEMP 
     125//                              if () 
     126 
     127                                if (part!=null) { 
     128                                        printInfo(part, sb, indent);                                     
     129                                } 
     130                                 
    119131                                if (part==null) { 
    120132                                        sb.append("Part " + resolvedPartUri + " not found! \n"); 
     133                                } else if ( part instanceof org.docx4j.openpackaging.parts.ThemePart 
     134                                                        || part instanceof org.docx4j.openpackaging.parts.WordprocessingML.NumberingDefinitionsPart 
     135                                                        || part instanceof org.docx4j.openpackaging.parts.WordprocessingML.FontTablePart) {                              
     136                                        deletions.add(r );                                               
     137                                        sb.append(".. DELETED" );                                                
     138                                } else if (part instanceof org.docx4j.openpackaging.parts.WordprocessingML.StyleDefinitionsPart) { 
     139                                         
     140                                        if (!keepStyles) { 
     141                                                deletions.add(r );                                               
     142                                                sb.append(".. DELETED" );                                                
     143                                        } else { 
     144                                                sb.append(".. KEEPING" );                                                
     145                                        } 
     146                                         
    121147                                } else {                                         
    122                                         printInfo(part, sb, indent); 
    123                                         if ( part instanceof org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart 
     148                                        if (stripPropertiesParts 
     149                                                        && ( part instanceof org.docx4j.openpackaging.parts.DocPropsExtendedPart 
     150                                                                        || part instanceof org.docx4j.openpackaging.parts.DocPropsCorePart 
     151                                                                        || part instanceof org.docx4j.openpackaging.parts.DocPropsCustomPart 
     152                                                                        || part instanceof org.docx4j.openpackaging.parts.WordprocessingML.WebSettingsPart 
     153                                                                        || part instanceof org.docx4j.openpackaging.parts.WordprocessingML.DocumentSettingsPart)) { 
     154                                                 
     155                                                deletions.add(r ); 
     156                                                sb.append(".. DELETED" );                                                
     157                                                 
     158                                        } else if ( part instanceof org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart 
    124159                                                        || part instanceof org.docx4j.openpackaging.parts.WordprocessingML.StyleDefinitionsPart 
    125160                                                        || part instanceof org.docx4j.openpackaging.parts.WordprocessingML.HeaderPart) { 
     
    130165                                                        traverseRelationships(wordMLPackage, part.getRelationshipsPart(), sb, indent + "    "); 
    131166                                                } 
    132                                         } else { 
     167                                        }  
     168                                        else if (defaultToDelete) { 
    133169                                                // Delete it 
    134170                                                deletions.add(r ); 
Note: See TracChangeset for help on using the changeset viewer.