[Yanel-commits] rev 26787 - in public/yanel/trunk/src/contributions/resources/pdf/src: build java/org/wyona/yanel/impl/resources

simon at wyona.com simon at wyona.com
Fri Aug 17 21:13:21 CEST 2007


Author: simon
Date: 2007-08-17 21:13:20 +0200 (Fri, 17 Aug 2007)
New Revision: 26787

Modified:
   public/yanel/trunk/src/contributions/resources/pdf/src/build/dependencies.xml
   public/yanel/trunk/src/contributions/resources/pdf/src/java/org/wyona/yanel/impl/resources/PDFResource.java
Log:
applied patch from jonathan addison. updates fop library. thanks very much.

Modified: public/yanel/trunk/src/contributions/resources/pdf/src/build/dependencies.xml
===================================================================
--- public/yanel/trunk/src/contributions/resources/pdf/src/build/dependencies.xml	2007-08-17 15:47:57 UTC (rev 26786)
+++ public/yanel/trunk/src/contributions/resources/pdf/src/build/dependencies.xml	2007-08-17 19:13:20 UTC (rev 26787)
@@ -17,7 +17,9 @@
     <artifact:dependencies pathId="maven2.resource.classpath" filesetId="maven2.resource.fileset">
       <remoteRepository refid="wyona.remote.repository"/>
       <dependency groupId="fop" artifactId="fop"
-                  version="0.20.5"/>
+                  version="0.93"/>
+      <!--<dependency groupId="fop" artifactId="fop"
+                  version="0.20.5"/>-->
       <!-- IMPORTANT: Fop 0.20.5 seems to depend on avalon-framework-4.0: ~/.m2/repository/fop/fop/0.20.5/fop-0.20.5.pom (One should comment avalon-framework-4.0 within pom file!) -->
       <dependency groupId="avalon-framework" artifactId="avalon-framework-api"
                   version="4.3"/>
@@ -25,6 +27,8 @@
                   version="4.3"/>
       <dependency groupId="batik" artifactId="batik-all"
                   version="1.6"/>
+      <dependency groupId="serializer" artifactId="serializer"
+                  version="2.7.0"/>
       <dependency groupId="xalan" artifactId="xalan"
                   version="2.7.0"/>
       <dependency groupId="xerces" artifactId="xercesImpl"
@@ -33,6 +37,8 @@
                   version="1.3.02"/>
       <dependency groupId="xml-resolver" artifactId="xml-resolver"
                   version="1.1"/>
+      <dependency groupId="xmlgraphics-commons" artifactId="xmlgraphics-commons"
+                  version="1.1"/>
     </artifact:dependencies>
 
     <property name="maven2.cp" refid="maven2.classpath"/>

Modified: public/yanel/trunk/src/contributions/resources/pdf/src/java/org/wyona/yanel/impl/resources/PDFResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/pdf/src/java/org/wyona/yanel/impl/resources/PDFResource.java	2007-08-17 15:47:57 UTC (rev 26786)
+++ public/yanel/trunk/src/contributions/resources/pdf/src/java/org/wyona/yanel/impl/resources/PDFResource.java	2007-08-17 19:13:20 UTC (rev 26787)
@@ -30,7 +30,9 @@
 
 import org.apache.log4j.Category;
 
-import org.apache.fop.apps.Driver;
+import org.apache.fop.apps.FopFactory;
+import org.apache.fop.apps.Fop;
+import org.apache.fop.apps.MimeConstants;
 //import org.apache.fop.configuration.Configuration;
 //import org.apache.fop.messaging.MessageHandler;
 
@@ -77,31 +79,18 @@
         try {
             Repository repo = getRealm().getRepository();            
             
-/*
-            Configuration.put("version", "FOP 0.20.5");
-            Configuration.put("stream-filter-list", "flate");
-            Configuration.put("stream-filter-list", "ascii-85");
-            java.util.List streamFilterList = new java.util.ArrayList();
-            streamFilterList.add("flate");
-            streamFilterList.add("ascii-85");
-            Configuration.put("stream-filter-list", streamFilterList, Configuration.PDF);
-*/
-            
-            Driver driver = new Driver();
-/*
-            Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
-            MessageHandler.setScreenLogger(logger);
-            driver.setLogger(logger);
-*/
-            driver.setRenderer(Driver.RENDER_PDF);
+            // Step 1: Construct a FopFactory
+            // (reuse if you plan to render multiple documents!)
+            FopFactory fopFactory = FopFactory.newInstance();
+
+            // Step 2: Construct fop with desired output format
+            Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, getResponse().getOutputStream());
         
             /* Only for debugging ...
             java.io.FileOutputStream fout = new java.io.FileOutputStream("/home/michi/Desktop/yanel.pdf");
             driver.setOutputStream(fout);
             */
 
-            driver.setOutputStream(getResponse().getOutputStream());
-
             // TODO: This doesn't seem to work properly (see below)
             //java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
             //driver.setOutputStream(baos);
@@ -112,7 +101,7 @@
             xmlReader.setEntityResolver(new org.apache.xml.resolver.tools.CatalogResolver());
             Source src = new SAXSource(xmlReader, new org.xml.sax.InputSource(repo.getInputStream(new Path(getPath()))));
             
-            Result res = new SAXResult(driver.getContentHandler());
+            Result res = new SAXResult(fop.getDefaultHandler());
             
             transformer.transform(src,res);
             



More information about the Yanel-commits mailing list