Ignore:
Timestamp:
10/22/08 13:05:00 (4 years ago)
Author:
jharrop
Message:

Use org.docx4j.convert.out.xmlPackage.XmlPackage? to create pkg format, now that we have it, rather than duplicated functionality in a local method.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/docx4j/src/main/java/org/docx4j/openpackaging/packages/WordprocessingMLPackage.java

    r495 r557  
    3535 
    3636import org.apache.log4j.Logger; 
     37import org.docx4j.convert.out.xmlPackage.XmlPackage; 
    3738import org.docx4j.fonts.Substituter; 
    3839import org.docx4j.fonts.FontUtils; 
     
    172173        } 
    173174         
    174          
    175  
    176      
    177     /* Output in pck:package/pck:part format, as emitted by Word 2007. 
    178          *  
    179          */ 
    180     public org.docx4j.wml.Package exportPkgXml() { 
    181                 // so, put the 2 parts together into a single document  
    182         // The JAXB object org.docx4j.wml.Package is 
    183         // custom built for this purpose. 
    184          
    185         // TODO - this method currently only puts the main document 
    186         // part and the styles part into the pkg.   
    187         // Extend it so that it can optionally do the others as well. 
    188         // Likewise, the converse. 
    189          
    190         // Create a org.docx4j.wml.Package object 
    191         org.docx4j.wml.ObjectFactory factory = new org.docx4j.wml.ObjectFactory(); 
    192         org.docx4j.wml.Package pkg = factory.createPackage(); 
    193          
    194         // Set its parts 
    195          
    196         // .. the main document part 
    197         org.docx4j.wml.Package.Part pkgPartDocument = factory.createPackagePart(); 
    198                  
    199                 MainDocumentPart documentPart = getMainDocumentPart();  
    200                  
    201                 if (documentPart==null) { 
    202                         log.warn("Main document part missing!"); 
    203                 } else { 
    204                  
    205                 pkgPartDocument.setName(documentPart.getPartName().getName()); 
    206                 pkgPartDocument.setContentType(documentPart.getContentType() ); 
    207                          
    208                 org.docx4j.wml.Package.Part.XmlData XmlDataDoc = factory.createPackagePartXmlData(); 
    209                  
    210                         org.docx4j.wml.Document wmlDocumentEl = (org.docx4j.wml.Document)documentPart.getJaxbElement(); 
    211                          
    212                         XmlDataDoc.setDocument(wmlDocumentEl); 
    213                         pkgPartDocument.setXmlData(XmlDataDoc); 
    214                         pkg.getPart().add(pkgPartDocument); 
    215                 } 
    216                                  
    217         // .. the style part 
    218         org.docx4j.wml.Package.Part pkgPartStyles = factory.createPackagePart(); 
    219  
    220         org.docx4j.openpackaging.parts.WordprocessingML.StyleDefinitionsPart stylesPart = documentPart.getStyleDefinitionsPart(); 
    221  
    222                 if (stylesPart==null) { 
    223                         log.warn("Style definitions part missing!"); 
    224                 } else { 
    225          
    226                 pkgPartStyles.setName(stylesPart.getPartName().getName()); 
    227                 pkgPartStyles.setContentType(stylesPart.getContentType() ); 
    228                  
    229                 org.docx4j.wml.Package.Part.XmlData XmlDataStyles = factory.createPackagePartXmlData(); 
    230                  
    231                 org.docx4j.wml.Styles styles = (org.docx4j.wml.Styles)stylesPart.getJaxbElement(); 
    232                  
    233                         XmlDataStyles.setStyles(styles); 
    234                         pkgPartStyles.setXmlData(XmlDataStyles); 
    235                         pkg.getPart().add(pkgPartStyles); 
    236                 } 
    237                  
    238                 return pkg; 
    239          
    240     } 
    241      
    242175     
    243176    /** 
     
    254187 
    255188        // Prepare in the input document 
    256         org.docx4j.wml.Package pkg = exportPkgXml(); 
    257                 JAXBContext jc = Context.jc; 
     189         
     190                XmlPackage worker = new XmlPackage(this); 
     191                org.docx4j.xmlPackage.Package pkg = worker.get(); 
     192         
     193                JAXBContext jc = Context.jcXmlPackage; 
    258194                Marshaller marshaller=jc.createMarshaller(); 
    259195                org.w3c.dom.Document doc = org.docx4j.XmlUtils.neww3cDomDocument(); 
     
    343279         *  
    344280         */      
    345         org.docx4j.wml.Package pkg = exportPkgXml(); 
    346                  
    347          
    348         // Now marshall it 
    349                 JAXBContext jc = Context.jc; 
     281                XmlPackage worker = new XmlPackage(this); 
     282                org.docx4j.xmlPackage.Package pkg = worker.get(); 
     283         
     284                JAXBContext jc = Context.jcXmlPackage; 
    350285                Marshaller marshaller=jc.createMarshaller(); 
    351286                org.w3c.dom.Document doc = org.docx4j.XmlUtils.neww3cDomDocument(); 
     
    434369         * our main document and style definition parts. 
    435370         *  
    436          * For now, I've just edited it a little to accept our parts wrapped 
    437          * in a <w:wordDocument> element.  Since that's a completely 
    438          * arbitrary format, it may be better in due course to process 
    439          * pck:package/pck:part 
     371         * it processes pck:package/pck:part 
    440372         *  
    441373         */ 
Note: See TracChangeset for help on using the changeset viewer.