[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