Преглед на файлове

Made FOUserAgent.configure() protected again (not to tempt any users to play with it). Instead improved CommandLineOptions to properly build and adjust the FOUserAgent. Manuel's fix was ok, but I wasn't too comfortable with the public configure() method.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@420761 13f79535-47bb-0310-9956-ffa450edef68
pull/25/head
Jeremias Maerki преди 18 години
родител
ревизия
fb3a04efdc
променени са 2 файла, в които са добавени 19 реда и са изтрити 12 реда
  1. 1
    1
      src/java/org/apache/fop/apps/FOUserAgent.java
  2. 18
    11
      src/java/org/apache/fop/cli/CommandLineOptions.java

+ 1
- 1
src/java/org/apache/fop/apps/FOUserAgent.java Целия файл

@@ -282,7 +282,7 @@ public class FOUserAgent {
* Configures the FOUserAgent through the factory's configuration.
* @see org.apache.avalon.framework.configuration.Configurable
*/
public void configure(Configuration cfg) {
protected void configure(Configuration cfg) {
setBaseURL(FopFactory.getBaseURLfromConfig(cfg, "base"));
if (cfg.getChild("target-resolution", false) != null) {
this.targetResolution

+ 18
- 11
src/java/org/apache/fop/cli/CommandLineOptions.java Целия файл

@@ -23,6 +23,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Locale;
import java.util.Map;
import java.util.Vector;

import javax.swing.UIManager;
@@ -88,7 +89,11 @@ public class CommandLineOptions {
private int inputmode = NOT_SET;
/* output mode */
private String outputmode = null;

/* rendering options (for the user agent) */
private Map renderingOptions = new java.util.HashMap();
/* target resolution (for the user agent) */
private int targetResolution = 0;
private FopFactory factory = FopFactory.newInstance();
private FOUserAgent foUserAgent;

@@ -128,8 +133,6 @@ public class CommandLineOptions {
throws FOPException, IOException {
boolean optionsParsed = true;

foUserAgent = factory.newFOUserAgent();

try {
optionsParsed = parseOptions(args);
if (optionsParsed) {
@@ -138,8 +141,12 @@ public class CommandLineOptions {
}
checkSettings();
createUserConfig();
if (factory.getUserConfig() != null) {
foUserAgent.configure(factory.getUserConfig());
//Factory config is set up, now we can create the user agent
foUserAgent = factory.newFOUserAgent();
foUserAgent.getRendererOptions().putAll(renderingOptions);
if (targetResolution != 0) {
foUserAgent.setTargetResolution(targetResolution);
}
addXSLTParameter("fop-output-format", getOutputFormat());
addXSLTParameter("fop-version", Version.getVersion());
@@ -337,7 +344,7 @@ public class CommandLineOptions {
throw new FOPException(
"if you use '-dpi', you must specify a resolution (dots per inch)");
} else {
foUserAgent.setTargetResolution(Integer.parseInt(args[i + 1]));
this.targetResolution = Integer.parseInt(args[i + 1]);
return 1;
}
}
@@ -390,7 +397,7 @@ public class CommandLineOptions {
} else {
outfile = new File(args[i + 1]);
if (pdfAMode != null) {
foUserAgent.getRendererOptions().put("pdf-a-mode", pdfAMode);
renderingOptions.put("pdf-a-mode", pdfAMode);
}
return 1;
}
@@ -517,7 +524,7 @@ public class CommandLineOptions {
|| (args[i + 1].charAt(0) != '-')) {
mime = args[i + 1];
if ("list".equals(mime)) {
String[] mimes = foUserAgent.getRendererFactory().listSupportedMimeTypes();
String[] mimes = factory.getRendererFactory().listSupportedMimeTypes();
System.out.println("Supported MIME types:");
for (int j = 0; j < mimes.length; j++) {
System.out.println(" " + mimes[j]);
@@ -580,7 +587,7 @@ public class CommandLineOptions {
}

private PDFEncryptionParams getPDFEncryptionParams() throws FOPException {
PDFEncryptionParams params = (PDFEncryptionParams)foUserAgent.getRendererOptions().get(
PDFEncryptionParams params = (PDFEncryptionParams)renderingOptions.get(
PDFRenderer.ENCRYPTION_PARAMS);
if (params == null) {
if (!PDFEncryptionManager.checkAvailableAlgorithms()) {
@@ -588,7 +595,7 @@ public class CommandLineOptions {
+ " Please make sure MD5 and RC4 algorithms are available.");
}
params = new PDFEncryptionParams();
foUserAgent.getRendererOptions().put(PDFRenderer.ENCRYPTION_PARAMS, params);
renderingOptions.put(PDFRenderer.ENCRYPTION_PARAMS, params);
}
return params;
}
@@ -754,7 +761,7 @@ public class CommandLineOptions {
throw new FOPException("Renderer has not been set!");
}
if (outputmode.equals(MimeConstants.MIME_FOP_AREA_TREE)) {
foUserAgent.getRendererOptions().put("fineDetail", isCoarseAreaXml());
renderingOptions.put("fineDetail", isCoarseAreaXml());
}
return outputmode;
}

Loading…
Отказ
Запис