From d54c3555e03f41f6e8559a4c842e7a106347751a Mon Sep 17 00:00:00 2001 From: Mehdi Houshmand Date: Fri, 6 Jul 2012 11:18:04 +0000 Subject: [PATCH] Fixed NPE with when outputting AreaTree also improved base URI handling for CLI git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1358130 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/fop/cli/CommandLineOptions.java | 10 +++++++++- .../apache/fop/render/PrintRendererConfigurator.java | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/java/org/apache/fop/cli/CommandLineOptions.java b/src/java/org/apache/fop/cli/CommandLineOptions.java index 5c561f9a5..313201abd 100644 --- a/src/java/org/apache/fop/cli/CommandLineOptions.java +++ b/src/java/org/apache/fop/cli/CommandLineOptions.java @@ -24,6 +24,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintStream; +import java.net.URI; import java.util.Locale; import java.util.Map; import java.util.Vector; @@ -137,6 +138,8 @@ public class CommandLineOptions { private boolean flushCache = false; + private URI baseURI = new File(".").toURI(); + /** * Construct a command line option object. */ @@ -465,6 +468,7 @@ public class CommandLineOptions { this.useStdIn = true; } else { fofile = new File(filename); + baseURI = fofile.toURI(); } return 1; } @@ -494,6 +498,7 @@ public class CommandLineOptions { this.useStdIn = true; } else { xmlfile = new File(filename); + baseURI = xmlfile.toURI(); } return 1; } @@ -783,6 +788,7 @@ public class CommandLineOptions { this.useStdIn = true; } else { areatreefile = new File(filename); + baseURI = areatreefile.toURI(); } return 1; } @@ -799,6 +805,7 @@ public class CommandLineOptions { this.useStdIn = true; } else { iffile = new File(filename); + baseURI = iffile.toURI(); } return 1; } @@ -815,6 +822,7 @@ public class CommandLineOptions { this.useStdIn = true; } else { imagefile = new File(filename); + baseURI = imagefile.toURI(); } return 1; } @@ -1030,7 +1038,7 @@ public class CommandLineOptions { private void setUserConfig() throws FOPException, IOException { FopFactoryBuilder fopFactoryBuilder; if (userConfigFile == null) { - fopFactoryBuilder = new FopFactoryBuilder(fofile.toURI()); + fopFactoryBuilder = new FopFactoryBuilder(baseURI); fopFactoryBuilder.setStrictFOValidation(strictValidation); fopFactoryBuilder.setTargetResolution(targetResolution); fopFactoryBuilder.setComplexScriptFeatures(useComplexScriptFeatures); diff --git a/src/java/org/apache/fop/render/PrintRendererConfigurator.java b/src/java/org/apache/fop/render/PrintRendererConfigurator.java index 8de2d1a92..96da591c1 100644 --- a/src/java/org/apache/fop/render/PrintRendererConfigurator.java +++ b/src/java/org/apache/fop/render/PrintRendererConfigurator.java @@ -36,6 +36,7 @@ import org.apache.fop.fonts.FontManager; import org.apache.fop.render.RendererConfig.RendererConfigParser; import org.apache.fop.render.intermediate.IFDocumentHandler; import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator; +import org.apache.fop.render.pdf.PDFRendererConfig.PDFRendererConfigParser; /** * Base Print renderer configurator (mostly handles font configuration) @@ -166,7 +167,9 @@ public abstract class PrintRendererConfigurator extends AbstractRendererConfigur } public static PrintRendererConfigurator createDefaultInstance(FOUserAgent userAgent) { - return new PrintRendererConfigurator(userAgent, null) { + // Since PDF is the default output is PDF, it makes sense for the default config parser + // to also be the PDF flavour + return new PrintRendererConfigurator(userAgent, new PDFRendererConfigParser()) { @Override protected List getDefaultFontCollection() { throw new UnsupportedOperationException(); -- 2.39.5