FopFactoryBuilder fopFactoryBuilder; if (userConfigFile == null) { fopFactoryBuilder = new FopFactoryBuilder(baseURI); fopFactoryBuilder.setStrictFOValidation(strictValidation); fopFactoryBuilder.setTargetResolution(targetResolution); fopFactoryBuilder.setComplexScriptFeatures(useComplexScriptFeatures); } else { try { fopFactoryBuilder = fopConfParser.getFopFactoryBuilder(); if (this.overrideTargetResolution) { fopFactoryBuilder.setTargetResolution(targetResolution); fopFactoryBuilder.setStrictFOValidation(strictValidation); fopFactoryBuilder.setComplexScriptFeatures(useComplexScriptFeatures); factory = fopFactoryBuilder.build(); if (cacheName != null) { factory.getFontManager().setCacheFile(URI.create(cacheName));
/** * Returns the {@link FopFactoryConfig} which is needed to get an instance of * {@link FopFactory}. * * @return build the {@link FopFactoryConfig} * @deprecated Exposing the {@link FopFactoryConfig} is only to maintain backwards compatibility */ public FopFactoryConfig buildConfig() { return buildConfiguration(); }
/** * Returns a new FopFactory instance that is configured only by the default configuration * parameters. * * @param baseURI the base URI to resolve resource URIs against * @return the requested FopFactory instance. */ public static FopFactory newInstance(URI baseURI) { return new FopFactoryBuilder(baseURI).build(); }
try { boolean strict = cfg.getChild("strict-validation").getValueAsBoolean(); fopFactoryBuilder.setStrictFOValidation(strict); } catch (ConfigurationException e) { LogUtil.handleException(log, e, false); try { strict = cfg.getChild("strict-configuration").getValueAsBoolean(); fopFactoryBuilder.setStrictUserConfigValidation(strict); } catch (ConfigurationException e) { LogUtil.handleException(log, e, false); fopFactoryBuilder.setAccessibility(cfg.getChild("accessibility").getValueAsBoolean()); } catch (ConfigurationException e) { LogUtil.handleException(log, e, false); try { URI confUri = InternalResourceResolver.getBaseURI(cfg.getChild("base").getValue(null)); fopFactoryBuilder.setBaseURI(baseURI.resolve(confUri)); } catch (URISyntaxException use) { LogUtil.handleException(log, use, strict); float srcRes = cfg.getChild("source-resolution").getValueAsFloat( FopFactoryConfig.DEFAULT_SOURCE_RESOLUTION); fopFactoryBuilder.setSourceResolution(srcRes); if (log.isDebugEnabled()) { log.debug("source-resolution set to: " + srcRes + "dpi"); float targetRes = cfg.getChild("target-resolution").getValueAsFloat(
FopFactory fopFactory = new FopFactoryBuilder(baseURI).setConfiguration(cfg) .build(); final String mimeType = Constants.APPLICATION_PDF; Fop fop = fopFactory.newFop(mimeType, stream);
public FopConfParser(InputStream fopConfStream, URI baseURI, EnvironmentProfile enviro) throws SAXException, IOException { DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder(); Configuration cfg; try { cfg = cfgBuilder.build(fopConfStream); } catch (ConfigurationException e) { throw new FOPException(e); } // The default base URI is taken from the directory in which the fopConf resides fopFactoryBuilder = new FopFactoryBuilder(enviro).setConfiguration(cfg); configure(baseURI, enviro.getResourceResolver(), cfg); }
FOPTaskStarter(Fop task) throws SAXException, IOException { this.task = task; //Set base directory if (task.getBasedir() != null) { this.baseUri = task.getBasedir().toURI(); } else { if (task.getFofile() != null) { this.baseUri = task.getFofile().getParentFile().toURI(); } } if (task.getUserconfig() != null) { FopFactoryBuilder confBuilder = new FopConfParser( task.getUserconfig()).getFopFactoryBuilder(); confBuilder.setBaseURI(baseUri); fopFactory = confBuilder.build(); } else { fopFactory = FopFactory.newInstance(baseUri); } }
/** * Returns a new FopFactory instance that is configured using the {@link FopFactoryConfig} object that * is created when the fopConf is parsed. * * @param fopConf the fop conf configuration file to parse * @return the requested FopFactory instance. * @throws IOException * @throws SAXException */ public static FopFactory newInstance(File fopConf) throws SAXException, IOException { return new FopConfParser(fopConf).getFopFactoryBuilder().build(); }
private void setHyphenationBase(Configuration cfg, ResourceResolver resourceResolver, URI baseURI, FopFactoryBuilder fopFactoryBuilder) throws FOPException { if (cfg.getChild("hyphenation-base", false) != null) { try { URI fontBase = InternalResourceResolver.getBaseURI(cfg.getChild("hyphenation-base").getValue(null)); fopFactoryBuilder.setHyphenBaseResourceResolver( ResourceResolverFactory.createInternalResourceResolver( baseURI.resolve(fontBase), resourceResolver)); } catch (URISyntaxException use) { LogUtil.handleException(log, use, true); } } else { fopFactoryBuilder.setHyphenBaseResourceResolver( ResourceResolverFactory.createInternalResourceResolver( fopFactoryBuilder.getBaseURI(), resourceResolver)); } }
private void configureImageLoading(Configuration parent, boolean strict) throws FOPException { if (parent == null) { return; } ImageImplRegistry registry = fopFactoryBuilder.getImageManager().getRegistry(); Configuration[] penalties = parent.getChildren("penalty"); try { for (Configuration penaltyCfg : penalties) { String className = penaltyCfg.getAttribute("class"); String value = penaltyCfg.getAttribute("value"); Penalty p = null; if (value.toUpperCase(Locale.getDefault()).startsWith("INF")) { p = Penalty.INFINITE_PENALTY; } else { try { p = Penalty.toPenalty(Integer.parseInt(value)); } catch (NumberFormatException nfe) { LogUtil.handleException(log, nfe, strict); } } if (p != null) { registry.setAdditionalPenalty(className, p); } } } catch (ConfigurationException e) { LogUtil.handleException(log, e, strict); } }
/** * {@inheritDoc} */ public void init() throws ServletException { this.uriResolver = new ServletContextURIResolver(getServletContext()); this.transFactory = TransformerFactory.newInstance(); transFactory.setAttribute("http://javax.xml.XMLConstants/property/accessExternalDTD", ""); transFactory.setAttribute("http://javax.xml.XMLConstants/property/accessExternalStylesheet", ""); this.transFactory.setURIResolver(this.uriResolver); //Configure FopFactory as desired // TODO: Double check this behaves properly!! ResourceResolver resolver = new ResourceResolver() { public OutputStream getOutputStream(URI uri) throws IOException { URL url = getServletContext().getResource(uri.toASCIIString()); return url.openConnection().getOutputStream(); } public Resource getResource(URI uri) throws IOException { return new Resource(getServletContext().getResourceAsStream(uri.toASCIIString())); } }; FopFactoryBuilder builder = new FopFactoryBuilder(new File(".").toURI(), resolver); configureFopFactory(builder); fopFactory = builder.build(); }
/** * Returns a new FopFactory instance that is configured using the {@link FopFactoryConfig} object that * is created when the fopConf is parsed. * * @param baseURI the base URI to resolve resource URIs against * @param confStream the fop conf configuration stream to parse * @return the requested FopFactory instance. * @throws SAXException * @throws IOException */ public static FopFactory newInstance(URI baseURI, InputStream confStream) throws SAXException, IOException { return new FopConfParser(confStream, baseURI).getFopFactoryBuilder().build(); }
/** * Generate a document, given an initialized Fop object * @param userAgent the user agent * @param outputFormat the output format to generate (MIME type, see MimeConstants) * @param out the output stream to write the generated output to (may be null if not applicable) * @throws FOPException in case of an error during processing */ public void renderTo(FOUserAgent userAgent, String outputFormat, OutputStream out) throws FOPException { String baseURL = null; try { baseURL = new File(sourcefile.getAbsolutePath()) .getParentFile().toURI().toURL().toExternalForm(); } catch (Exception e) { baseURL = ""; } FopFactory factory = new FopFactoryBuilder(URI.create(baseURL)) .build(); Fop fop; if (out != null) { fop = factory.newFop(outputFormat, userAgent, out); } else { fop = factory.newFop(outputFormat, userAgent); } // Resulting SAX events (the generated FO) must be piped through to FOP Result res = new SAXResult(fop.getDefaultHandler()); transformTo(res); }
/** * Builds an instance of the the {@link FopFactory}. * * @return the FopFactory instance */ public FopFactory build() { return FopFactory.newInstance(buildConfiguration()); }