Ignore:
Timestamp:
03/29/09 20:13:04 (3 years ago)
Author:
jharrop
Message:

Add error listeners for javax.xml.transform
Static initializers now create Templates object (not InputStream? or Source!)
transform methods take a Templates object instead as well.

File:
1 edited

Legend:

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

    r742 r743  
    3333import javax.xml.bind.Unmarshaller; 
    3434import javax.xml.parsers.DocumentBuilderFactory; 
     35import javax.xml.transform.Source; 
     36import javax.xml.transform.Templates; 
     37import javax.xml.transform.stream.StreamSource; 
    3538 
    3639import org.apache.log4j.Logger; 
     40import org.docx4j.XmlUtils; 
    3741import org.docx4j.convert.out.xmlPackage.XmlPackageCreator; 
    3842import org.docx4j.fonts.BestMatchingMapper; 
     
    195199     * pck:package/pck:part format, as emitted by Word 2007. 
    196200     *  
    197      * @param xslt 
     201     * @param is 
    198202     * @param transformParameters 
    199203     * @throws Exception 
    200204     */     
    201     public void transform(java.io.InputStream xslt,  
     205    public void transform(Templates xslt, 
    202206                          Map<String, Object> transformParameters) throws Exception { 
    203207 
     
    211215                org.w3c.dom.Document doc = org.docx4j.XmlUtils.neww3cDomDocument(); 
    212216                marshaller.marshal(pkg, doc); 
    213          
     217                         
    214218                javax.xml.bind.util.JAXBResult result = new javax.xml.bind.util.JAXBResult(jc ); 
    215219                 
    216                 // Perform the transformation 
     220                // Perform the transformation            
    217221                org.docx4j.XmlUtils.transform(doc, xslt, transformParameters, result); 
    218222                 
     
    248252    public void filter( FilterSettings filterSettings ) throws Exception { 
    249253 
    250                 java.io.InputStream xslt  
    251                         = org.docx4j.utils.ResourceUtils.getResource( 
    252                                         "org/docx4j/openpackaging/packages/filter.xslt"); 
    253          
    254         transform(xslt, filterSettings.getSettings() ); 
     254        if (filterTemplate==null) { // first use 
     255                        Source xsltSource = new StreamSource( 
     256                                org.docx4j.utils.ResourceUtils.getResource( 
     257                                                "org/docx4j/openpackaging/packages/filter.xslt")); 
     258                        filterTemplate = XmlUtils.getTransformerTemplate(xsltSource); 
     259        } 
     260        transform(filterTemplate, filterSettings.getSettings() ); 
    255261         
    256262    } 
    257263 
    258      
     264    static Templates filterTemplate; 
    259265     
    260266/* There should be a mapper per document, 
Note: See TracChangeset for help on using the changeset viewer.