git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@686229 13f79535-47bb-0310-9956-ffa450edef68pull/17/head
@@ -35,6 +35,7 @@ import org.apache.avalon.framework.configuration.Configurable; | |||
import org.apache.avalon.framework.configuration.Configuration; | |||
import org.apache.avalon.framework.configuration.ConfigurationException; | |||
import org.apache.commons.io.IOUtils; | |||
import org.apache.fop.apps.FOUserAgent; | |||
import org.apache.fop.apps.Fop; | |||
import org.apache.fop.apps.FopFactory; | |||
@@ -70,11 +71,16 @@ public abstract class AbstractPSPDFBitmapProducer extends AbstractBitmapProducer | |||
private String converter; | |||
private boolean deleteTempFiles; | |||
/** the bitmap producer's target format */ | |||
protected String targetFormat; | |||
/** @see org.apache.avalon.framework.configuration.Configurable */ | |||
/** {@inheritDoc} */ | |||
public void configure(Configuration cfg) throws ConfigurationException { | |||
this.converter = cfg.getChild("converter").getValue(); | |||
this.deleteTempFiles = cfg.getChild("delete-temp-files").getValueAsBoolean(true); | |||
if (cfg.getChild("target-format", false) != null) { | |||
this.targetFormat = cfg.getChild("target-format").getValue(); | |||
} | |||
} | |||
/** | |||
@@ -106,19 +112,21 @@ public abstract class AbstractPSPDFBitmapProducer extends AbstractBitmapProducer | |||
/** | |||
* @return the output format for the FOP renderer, i.e. a MIME type. | |||
*/ | |||
protected abstract String getTargetFormat(); | |||
protected String getTargetFormat() { | |||
return this.targetFormat; | |||
} | |||
/** @see org.apache.fop.visual.BitmapProducer */ | |||
public BufferedImage produce(File src, ProducerContext context) { | |||
/** {@inheritDoc} */ | |||
public BufferedImage produce(File src, int index, ProducerContext context) { | |||
try { | |||
FOUserAgent userAgent = fopFactory.newFOUserAgent(); | |||
userAgent.setTargetResolution(context.getTargetResolution()); | |||
userAgent.setBaseURL(src.getParentFile().toURL().toString()); | |||
File tempOut = new File(context.getTargetDir(), | |||
src.getName() + "." + getTargetExtension()); | |||
src.getName() + "." + index + "." + getTargetExtension()); | |||
File tempPNG = new File(context.getTargetDir(), | |||
src.getName() + "." + getTargetExtension() + ".png"); | |||
src.getName() + "." + index + "." + getTargetExtension() + ".png"); | |||
try { | |||
OutputStream out = new FileOutputStream(tempOut); | |||
out = new BufferedOutputStream(out); |
@@ -176,7 +176,7 @@ public class BatchDiffer { | |||
final BufferedImage[] bitmaps = new BufferedImage[producers.length]; | |||
for (int j = 0; j < producers.length; j++) { | |||
times[j] = System.currentTimeMillis(); | |||
bitmaps[j] = producers[j].produce(f, context); | |||
bitmaps[j] = producers[j].produce(f, j, context); | |||
times[j] = System.currentTimeMillis() - times[j]; | |||
} | |||
if (log.isDebugEnabled()) { |
@@ -31,9 +31,10 @@ public interface BitmapProducer { | |||
* Produces a BufferedImage from the source file by invoking the FO processor and | |||
* converting the generated output file to a bitmap image if necessary. | |||
* @param src the source FO or XML file | |||
* @param index the index of the producer inside the test set | |||
* @param context context information for the conversion | |||
* @return the generated BufferedImage | |||
*/ | |||
BufferedImage produce(File src, ProducerContext context); | |||
BufferedImage produce(File src, int index, ProducerContext context); | |||
} |
@@ -33,6 +33,7 @@ import org.apache.avalon.framework.configuration.Configurable; | |||
import org.apache.avalon.framework.configuration.Configuration; | |||
import org.apache.avalon.framework.configuration.ConfigurationException; | |||
import org.apache.commons.io.IOUtils; | |||
import org.apache.fop.apps.FOUserAgent; | |||
import org.apache.fop.apps.Fop; | |||
import org.apache.fop.apps.FopFactory; | |||
@@ -64,13 +65,14 @@ public class BitmapProducerJava2D extends AbstractBitmapProducer implements Conf | |||
} | |||
/** @see org.apache.fop.visual.BitmapProducer */ | |||
public BufferedImage produce(File src, ProducerContext context) { | |||
public BufferedImage produce(File src, int index, ProducerContext context) { | |||
try { | |||
FOUserAgent userAgent = fopFactory.newFOUserAgent(); | |||
userAgent.setTargetResolution(context.getTargetResolution()); | |||
userAgent.setBaseURL(src.getParentFile().toURL().toString()); | |||
File outputFile = new File(context.getTargetDir(), src.getName() + ".java2d.png"); | |||
File outputFile = new File(context.getTargetDir(), | |||
src.getName() + "." + index + ".java2d.png"); | |||
OutputStream out = new FileOutputStream(outputFile); | |||
out = new BufferedOutputStream(out); | |||
try { |
@@ -29,14 +29,16 @@ import org.apache.fop.apps.MimeConstants; | |||
*/ | |||
public class BitmapProducerPDF extends AbstractPSPDFBitmapProducer { | |||
/** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetExtension() */ | |||
protected String getTargetExtension() { | |||
return "pdf"; | |||
/** | |||
* Default constructor. | |||
*/ | |||
public BitmapProducerPDF() { | |||
this.targetFormat = MimeConstants.MIME_PDF; | |||
} | |||
/** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetFormat() */ | |||
protected String getTargetFormat() { | |||
return MimeConstants.MIME_PDF; | |||
/** {@inheritDoc} */ | |||
protected String getTargetExtension() { | |||
return "pdf"; | |||
} | |||
} |
@@ -29,15 +29,16 @@ import org.apache.fop.apps.MimeConstants; | |||
*/ | |||
public class BitmapProducerPS extends AbstractPSPDFBitmapProducer { | |||
/** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetExtension() */ | |||
protected String getTargetExtension() { | |||
return "ps"; | |||
/** | |||
* Default constructor. | |||
*/ | |||
public BitmapProducerPS() { | |||
this.targetFormat = MimeConstants.MIME_POSTSCRIPT; | |||
} | |||
/** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetFormat() */ | |||
protected String getTargetFormat() { | |||
return MimeConstants.MIME_POSTSCRIPT; | |||
/** {@inheritDoc} */ | |||
protected String getTargetExtension() { | |||
return "ps"; | |||
} | |||
} |
@@ -51,7 +51,7 @@ public class ReferenceBitmapLoader extends AbstractBitmapProducer implements Con | |||
} | |||
/** @see org.apache.fop.visual.BitmapProducer */ | |||
public BufferedImage produce(File src, ProducerContext context) { | |||
public BufferedImage produce(File src, int index, ProducerContext context) { | |||
try { | |||
File bitmap = new File(bitmapDirectory, src.getName() + ".png"); | |||
if (bitmap.exists()) { |