import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Locale;
+import java.util.Map;
import java.util.Vector;
import javax.swing.UIManager;
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;
throws FOPException, IOException {
boolean optionsParsed = true;
- foUserAgent = factory.newFOUserAgent();
-
try {
optionsParsed = parseOptions(args);
if (optionsParsed) {
}
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());
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;
}
}
} 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;
}
|| (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]);
}
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()) {
+ " 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;
}
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;
}