Search in sources :

Example 1 with FopFactoryBuilder

use of org.apache.fop.apps.FopFactoryBuilder in project pcgen by PCGen.

the class FopTask method createFopFactory.

private static FopFactory createFopFactory() {
    // Allow optional customization with configuration file
    String configPath = ConfigurationSettings.getOutputSheetsDir() + File.separator + "fop.xconf";
    Logging.log(Logging.INFO, "FoPTask checking for config file at " + configPath);
    File userConfigFile = new File(configPath);
    FopFactoryBuilder builder;
    if (userConfigFile.exists()) {
        Logging.log(Logging.INFO, "FoPTask using config file " + configPath);
        FopConfParser parser;
        try {
            parser = new FopConfParser(userConfigFile);
        } catch (Exception e) {
            Logging.errorPrint("FoPTask encountered a problem with FOP configuration " + configPath + ": ", e);
            return null;
        }
        builder = parser.getFopFactoryBuilder();
    } else {
        Logging.log(Logging.INFO, "FoPTask using default config");
        builder = new FopFactoryBuilder(new File(".").toURI());
        builder.setStrictFOValidation(false);
    }
    return builder.build();
}
Also used : FopConfParser(org.apache.fop.apps.FopConfParser) FopFactoryBuilder(org.apache.fop.apps.FopFactoryBuilder) File(java.io.File) TransformerException(javax.xml.transform.TransformerException) FOPException(org.apache.fop.apps.FOPException) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException)

Example 2 with FopFactoryBuilder

use of org.apache.fop.apps.FopFactoryBuilder in project series-rest-api by 52North.

the class PDFReportGenerator method encodeAndWriteTo.

@Override
public void encodeAndWriteTo(DataCollection<QuantityData> data, OutputStream stream) throws IoParseException {
    try {
        generateOutput(data);
        DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
        Configuration cfg = cfgBuilder.build(document.newInputStream());
        FopFactory fopFactory = new FopFactoryBuilder(baseURI).setConfiguration(cfg).build();
        final String mimeType = MimeType.APPLICATION_PDF.getMimeType();
        Fop fop = fopFactory.newFop(mimeType, stream);
        //FopFactory fopFactory = FopFactory.newInstance(cfg);
        //Fop fop = fopFactory.newFop(APPLICATION_PDF.getMimeType(), stream);
        //FopFactory fopFactory = fopFactoryBuilder.build();
        //Fop fop = fopFactory.newFop(APPLICATION_PDF.getMimeType(), stream);
        // Create PDF via XSLT transformation
        TransformerFactory transFact = TransformerFactory.newInstance();
        StreamSource transformationRule = getTransforamtionRule();
        Transformer transformer = transFact.newTransformer(transformationRule);
        Source source = new StreamSource(document.newInputStream());
        Result result = new SAXResult(fop.getDefaultHandler());
        if (LOGGER.isDebugEnabled()) {
            try {
                File tempFile = File.createTempFile(TEMP_FILE_PREFIX, ".xml");
                StreamResult debugResult = new StreamResult(tempFile);
                transformer.transform(source, debugResult);
                String xslResult = XmlObject.Factory.parse(tempFile).xmlText();
                LOGGER.debug("xsl-fo input (locale '{}'): {}", i18n.getTwoDigitsLanguageCode(), xslResult);
            } catch (IOException | TransformerException | XmlException e) {
                LOGGER.error("Could not debug XSL result output!", e);
            }
        }
        // XXX debug, diagram is not embedded
        transformer.transform(source, result);
    } catch (FOPException e) {
        throw new IoParseException("Failed to create Formatting Object Processor (FOP)", e);
    } catch (SAXException | ConfigurationException | IOException e) {
        throw new IoParseException("Failed to read config for Formatting Object Processor (FOP)", e);
    } catch (TransformerConfigurationException e) {
        throw new IoParseException("Invalid transform configuration. Inspect xslt!", e);
    } catch (TransformerException e) {
        throw new IoParseException("Could not generate PDF report!", e);
    }
}
Also used : IoParseException(org.n52.io.IoParseException) DefaultConfigurationBuilder(org.apache.avalon.framework.configuration.DefaultConfigurationBuilder) TransformerFactory(javax.xml.transform.TransformerFactory) Transformer(javax.xml.transform.Transformer) Configuration(org.apache.avalon.framework.configuration.Configuration) StreamResult(javax.xml.transform.stream.StreamResult) TransformerConfigurationException(javax.xml.transform.TransformerConfigurationException) Fop(org.apache.fop.apps.Fop) StreamSource(javax.xml.transform.stream.StreamSource) FopFactory(org.apache.fop.apps.FopFactory) IOException(java.io.IOException) StreamSource(javax.xml.transform.stream.StreamSource) Source(javax.xml.transform.Source) StreamResult(javax.xml.transform.stream.StreamResult) Result(javax.xml.transform.Result) SAXResult(javax.xml.transform.sax.SAXResult) SAXException(org.xml.sax.SAXException) FopFactoryBuilder(org.apache.fop.apps.FopFactoryBuilder) FOPException(org.apache.fop.apps.FOPException) SAXResult(javax.xml.transform.sax.SAXResult) ConfigurationException(org.apache.avalon.framework.configuration.ConfigurationException) TransformerConfigurationException(javax.xml.transform.TransformerConfigurationException) XmlException(org.apache.xmlbeans.XmlException) File(java.io.File) TransformerException(javax.xml.transform.TransformerException)

Example 3 with FopFactoryBuilder

use of org.apache.fop.apps.FopFactoryBuilder in project xwiki-platform by xwiki.

the class FOPXSLFORenderer method initialize.

@Override
public void initialize() throws InitializationException {
    EnvironmentProfile environmentProfile = EnvironmentalProfileFactory.createDefault(new File(".").toURI(), this.resourceResolver);
    FopFactoryBuilder builder = new FopFactoryBuilder(environmentProfile);
    Configuration configuration = loadConfiguration();
    if (configuration != null) {
        builder.setConfiguration(configuration);
    }
    this.fopFactory = builder.build();
}
Also used : FopFactoryBuilder(org.apache.fop.apps.FopFactoryBuilder) DefaultConfiguration(org.apache.avalon.framework.configuration.DefaultConfiguration) Configuration(org.apache.avalon.framework.configuration.Configuration) EnvironmentProfile(org.apache.fop.apps.EnvironmentProfile) File(java.io.File)

Example 4 with FopFactoryBuilder

use of org.apache.fop.apps.FopFactoryBuilder in project xwiki-platform by xwiki.

the class XHTML2FOTest method setUp.

@BeforeClass
public static void setUp() throws Exception {
    EnvironmentProfile environmentProfile = EnvironmentalProfileFactory.createDefault(new File(".").toURI(), ResourceResolverFactory.createDefaultResourceResolver());
    FopFactoryBuilder builder = new FopFactoryBuilder(environmentProfile);
    fopFactory = builder.build();
    foUserAgent = fopFactory.newFOUserAgent();
    transformerFactory = TransformerFactory.newInstance();
}
Also used : FopFactoryBuilder(org.apache.fop.apps.FopFactoryBuilder) EnvironmentProfile(org.apache.fop.apps.EnvironmentProfile) File(java.io.File) BeforeClass(org.junit.BeforeClass)

Example 5 with FopFactoryBuilder

use of org.apache.fop.apps.FopFactoryBuilder in project series-rest-api by 52North.

the class PDFReportGenerator method encodeAndWriteTo.

@Override
public void encodeAndWriteTo(DataCollection<Data<QuantityValue>> data, OutputStream stream) throws IoHandlerException {
    try {
        generateOutput(data);
        DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
        Configuration cfg = cfgBuilder.build(document.newInputStream());
        URI baseURI = new File(".").toURI();
        FopFactory fopFactory = new FopFactoryBuilder(baseURI).setConfiguration(cfg).build();
        final String mimeType = Constants.APPLICATION_PDF;
        Fop fop = fopFactory.newFop(mimeType, stream);
        // FopFactory fopFactory = FopFactory.newInstance(cfg);
        // Fop fop = fopFactory.newFop(APPLICATION_PDF.getMimeType(), stream);
        // FopFactory fopFactory = fopFactoryBuilder.build();
        // Fop fop = fopFactory.newFop(APPLICATION_PDF.getMimeType(), stream);
        // Create PDF via XSLT transformation
        TransformerFactory transFact = TransformerFactory.newInstance();
        StreamSource transformationRule = getTransforamtionRule();
        Transformer transformer = transFact.newTransformer(transformationRule);
        Source source = new StreamSource(document.newInputStream());
        Result result = new SAXResult(fop.getDefaultHandler());
        if (LOGGER.isDebugEnabled()) {
            try {
                File tempFile = File.createTempFile(TEMP_FILE_PREFIX, ".xml");
                StreamResult debugResult = new StreamResult(tempFile);
                transformer.transform(source, debugResult);
                String xslResult = XmlObject.Factory.parse(tempFile).xmlText();
                LOGGER.debug("xsl-fo input (locale '{}'): {}", i18n.getTwoDigitsLanguageCode(), xslResult);
            } catch (IOException | TransformerException | XmlException e) {
                LOGGER.error("Could not debug XSL result output!", e);
            }
        }
        // XXX debug, diagram is not embedded
        transformer.transform(source, result);
    } catch (FOPException e) {
        throw new IoParseException("Failed to create Formatting Object Processor (FOP)", e);
    } catch (ConfigurationException e) {
        throw new IoParseException("Failed to read config for Formatting Object Processor (FOP)", e);
    } catch (TransformerConfigurationException e) {
        throw new IoParseException("Invalid transform configuration. Inspect xslt!", e);
    } catch (TransformerException e) {
        throw new IoParseException("Could not generate PDF report!", e);
    }
}
Also used : IoParseException(org.n52.io.IoParseException) DefaultConfigurationBuilder(org.apache.fop.configuration.DefaultConfigurationBuilder) TransformerFactory(javax.xml.transform.TransformerFactory) Transformer(javax.xml.transform.Transformer) Configuration(org.apache.fop.configuration.Configuration) StreamResult(javax.xml.transform.stream.StreamResult) TransformerConfigurationException(javax.xml.transform.TransformerConfigurationException) Fop(org.apache.fop.apps.Fop) StreamSource(javax.xml.transform.stream.StreamSource) FopFactory(org.apache.fop.apps.FopFactory) IOException(java.io.IOException) URI(java.net.URI) StreamSource(javax.xml.transform.stream.StreamSource) Source(javax.xml.transform.Source) StreamResult(javax.xml.transform.stream.StreamResult) Result(javax.xml.transform.Result) SAXResult(javax.xml.transform.sax.SAXResult) FopFactoryBuilder(org.apache.fop.apps.FopFactoryBuilder) FOPException(org.apache.fop.apps.FOPException) SAXResult(javax.xml.transform.sax.SAXResult) ConfigurationException(org.apache.fop.configuration.ConfigurationException) TransformerConfigurationException(javax.xml.transform.TransformerConfigurationException) XmlException(org.apache.xmlbeans.XmlException) File(java.io.File) TransformerException(javax.xml.transform.TransformerException)

Aggregations

File (java.io.File)5 FopFactoryBuilder (org.apache.fop.apps.FopFactoryBuilder)5 IOException (java.io.IOException)3 TransformerException (javax.xml.transform.TransformerException)3 FOPException (org.apache.fop.apps.FOPException)3 Result (javax.xml.transform.Result)2 Source (javax.xml.transform.Source)2 Transformer (javax.xml.transform.Transformer)2 TransformerConfigurationException (javax.xml.transform.TransformerConfigurationException)2 TransformerFactory (javax.xml.transform.TransformerFactory)2 SAXResult (javax.xml.transform.sax.SAXResult)2 StreamResult (javax.xml.transform.stream.StreamResult)2 StreamSource (javax.xml.transform.stream.StreamSource)2 Configuration (org.apache.avalon.framework.configuration.Configuration)2 EnvironmentProfile (org.apache.fop.apps.EnvironmentProfile)2 Fop (org.apache.fop.apps.Fop)2 FopFactory (org.apache.fop.apps.FopFactory)2 XmlException (org.apache.xmlbeans.XmlException)2 IoParseException (org.n52.io.IoParseException)2 FileNotFoundException (java.io.FileNotFoundException)1