Example usage for javax.xml.transform Transformer setParameter

List of usage examples for javax.xml.transform Transformer setParameter

Introduction

In this page you can find the example usage for javax.xml.transform Transformer setParameter.

Prototype

public abstract void setParameter(String name, Object value);

Source Link

Document

Add a parameter for the transformation.

Usage

From source file:org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.java

protected Transformer addStylesheet(Source source, URIResolver resolver, Map parameters,
        Properties outputProperties) throws TransformerConfigurationException {
    if (tFactory == null)
        createTransformerFactory();//from  w  ww  . j  av  a 2s . c  o  m

    TransformerHandler newTh = tFactory.newTransformerHandler(source);
    Transformer transformer = newTh.getTransformer();

    if (resolver != null)
        transformer.setURIResolver(resolver);

    if (parameters != null) {
        for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) {
            Map.Entry entry = (Map.Entry) iter.next();
            String name = (String) entry.getKey();
            Object value = entry.getValue();
            log.info(Messages.getString("JAXPSAXProcessorInvoker.2") + name //$NON-NLS-1$
                    + Messages.getString("JAXPSAXProcessorInvoker.3") + value); //$NON-NLS-1$
            transformer.setParameter(name, value);
        }
    }
    if (outputProperties != null) {
        StringBuffer sb = new StringBuffer();
        for (Iterator iter = outputProperties.entrySet().iterator(); iter.hasNext();) {
            Map.Entry entry = (Map.Entry) iter.next();
            sb.append(entry.getKey()).append("=").append(entry.getValue()).append(" "); //$NON-NLS-1$ //$NON-NLS-2$
        }
        if (outputProperties.size() > 0) {
            log.info(Messages.getString("JAXPSAXProcessorInvoker.6") + sb.toString()); //$NON-NLS-1$
            transformer.setOutputProperties(outputProperties);
        }
    }

    if (th != null)
        th.setResult(new SAXResult(newTh));
    else {
        reader.setContentHandler(newTh);
        try {
            reader.setProperty("http://xml.org/sax/properties/lexical-handler", newTh); //$NON-NLS-1$
        } catch (SAXNotRecognizedException ex) {
            log.warn(Messages.getString("JAXPSAXProcessorInvoker_4")); //$NON-NLS-1$
        } catch (SAXNotSupportedException e) {
            log.warn(Messages.getString("JAXPSAXProcessorInvoker_5")); //$NON-NLS-1$
        }
    }
    th = newTh;
    return th.getTransformer();
}

From source file:org.ecoinformatics.export.HtmlToPdfTest.java

/**
 * Test HTML to PDF conversion//from   w ww .j  a v a2 s.  c  o  m
 */
public void testExport() {
    try {

        // transform EML to HTML

        String srcPath = "src/test/resources/";

        String workingPath = "build/";

        String emlFileName = "eml-sample";

        String emlFileExtension = ".xml";

        String emlFile = srcPath + emlFileName + emlFileExtension;

        String xslFile = "style/eml/eml.xsl";

        String htmlFile = workingPath + emlFileName + ".html";

        // set up the css file
        File cssDir = new File(workingPath + "default");
        if (!cssDir.exists()) {
            cssDir.mkdir();
        }
        File cssFile = new File("default.css");
        File targetCssFile = new File(cssDir, cssFile.getName());
        IOUtils.copy(new FileInputStream(cssFile), new FileOutputStream(targetCssFile));
        Transformer transformer = TransformerFactory.newInstance()
                .newTransformer(new StreamSource(new File(xslFile)));

        // add some property for style sheet
        transformer.clearParameters();
        transformer.setParameter("href_path_extension", ".html");
        transformer.setParameter("package_id", "test.1.1");
        transformer.setParameter("package_index_name", "metadata");
        transformer.setParameter("qformat", "default");
        transformer.setParameter("entitystyle", "default");
        transformer.setParameter("stylePath", ".");
        transformer.setParameter("displaymodule", "printall");

        transformer.transform(new StreamSource(new File(emlFile)), new StreamResult(new File(htmlFile)));

        // convert HTML to PDF
        String pdfFile = workingPath + emlFileName + ".pdf";

        HtmlToPdf.export(htmlFile, pdfFile);

        // TODO: check that it worked?

    } catch (Exception e) {
        // oops
        e.printStackTrace();
        fail(e.getMessage());
    }

}

From source file:org.fcrepo.server.rest.BaseRestResource.java

protected void transform(String xml, String xslt, Writer out)
        throws TransformerFactoryConfigurationError, TransformerConfigurationException, TransformerException {
    File xslFile = new File(m_server.getHomeDir(), xslt);
    TimestampedCacheEntry<Templates> entry = m_templates.get(xslt);
    if (entry == null || entry.timestamp() < xslFile.lastModified()) {
        Templates template = XmlTransformUtility.getTemplates(xslFile);
        entry = new TimestampedCacheEntry<Templates>(xslFile.lastModified(), template);
        m_templates.put(xslt, entry);/*from  w w  w.java 2s.  c o  m*/
    }
    Transformer transformer = entry.value().newTransformer();
    String appContext = getContext().getEnvironmentValue(Constants.FEDORA_APP_CONTEXT_NAME);
    transformer.setParameter("fedora", appContext);
    transformer.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
}

From source file:org.freeplane.features.export.mindmapmode.ExportWithXSLT.java

private boolean transformMapWithXslt(final String xsltFileName, final File saveFile, final String areaCode,
        final Mode mode, String[] parameters) throws IOException, TransformerFactoryConfigurationError {
    final String map = getMapXml(mode);
    final StringReader reader = new StringReader(map);
    ResourceController resourceController = ResourceController.getResourceController();
    final URL xsltUrl = resourceController.getResource(xsltFileName);
    if (xsltUrl == null) {
        LogUtils.severe("Can't find " + xsltFileName + " as resource.");
        throw new IllegalArgumentException("Can't find " + xsltFileName + " as resource.");
    }/*w  w  w  .j  a va2 s  .  c  o m*/
    final InputStream xsltFile = new BufferedInputStream(xsltUrl.openStream());
    final Source xsltSource = new StreamSource(xsltFile);
    final Result result = new StreamResult(saveFile);
    try {
        final TransformerFactory transFact = TransformerFactory.newInstance();
        final Transformer trans = transFact.newTransformer(xsltSource);
        trans.setParameter("destination_dir", saveFile.getName() + "_files/");
        trans.setParameter("area_code", areaCode);
        trans.setParameter("folding_type", resourceController.getProperty("html_export_folding"));
        StringBuilder sb = new StringBuilder();
        for (String p : parameters) {
            String value = resourceController.getProperty(p, null);
            if (value != null && !value.equals(resourceController.getDefaultProperty(p))) {
                sb.append(p);
                sb.append('=');
                sb.append(value);
                sb.append("$$$");
            }

        }
        trans.setParameter("propertyList", sb.toString());
        trans.transform(new StreamSource(reader), result);
    } catch (final Exception e) {
        LogUtils.warn(e);
        return false;
    } finally {
        FileUtils.silentlyClose(xsltFile);
    }
    return true;
}

From source file:org.jaggeryjs.hostobjects.xslt.XSLTHostObject.java

private static void setParams(Transformer transformer, NativeObject paramMap) {
    transformer.clearParameters();/* ww  w .  j  a v a2 s  . c  om*/
    Object[] ids = paramMap.getIds();
    for (Object id : ids) {
        String key = (String) id;
        Object obj = paramMap.get(key, paramMap);
        transformer.setParameter(key, HostObjectUtil.serializeObject(obj));
    }
}

From source file:org.jzkit.search.util.RecordConversion.XSLFragmentTransformer.java

public void performTransformation(javax.xml.transform.Source source, javax.xml.transform.Result result,
        Map trans_properties) {/* ww w.  j a v  a  2s . co  m*/
    try {
        checkStylesheetDatestamp();

        Transformer trans = t.newTransformer();

        // Transformer objects are transient stateful objects that track the application
        // of a specific transformation to a given source and the resulting output.
        // Will be cleaned up when it goes out of scope. N.B. We use the newTemplates
        // method of the TemplateFactory since we expect multithreaded execution of and
        // repeated use of specific transformations.

        // We pass in any params to the transformation
        trans.clearParameters();
        if (trans_properties != null) {
            Set<Map.Entry> entries = trans_properties.entrySet();
            for (java.util.Iterator i = entries.iterator(); i.hasNext();) {
                Map.Entry e = (Map.Entry) i.next();
                trans.setParameter(e.getKey().toString(), e.getValue().toString());
            }
        }

        trans.transform(source, result);
    } catch (javax.xml.transform.TransformerConfigurationException tce) {
        log.warn("TransformerConfigurationException exception finding template " + the_path, tce);
    } catch (javax.xml.transform.TransformerException te) {
        log.warn("TransformerException General exception finding template " + the_path, te);
    } catch (Exception e) {
        log.warn("General exception finding template " + the_path, e);
    }
}

From source file:org.kuali.coeus.common.impl.print.PrintingServiceImpl.java

protected void createPdfWithFOP(Map<String, byte[]> streamMap, Map<String, byte[]> pdfByteMap,
        FopFactory fopFactory, int xslCount, StreamSource xslt, String bookmark, Printable printableArtifact)
        throws FOPException, TransformerException {
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(xslt);
    String externalizableImagesUrl = getKualiConfigurationService()
            .getPropertyValueAsString(Constants.KRA_EXTERNALIZABLE_IMAGES_URI_KEY);
    transformer.setParameter("externalImagesUrl", externalizableImagesUrl);
    String applicationUrl = getKualiConfigurationService()
            .getPropertyValueAsString(KRADConstants.APPLICATION_URL_KEY);
    FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
    foUserAgent.setBaseURL(applicationUrl);
    for (Map.Entry<String, byte[]> xmlData : streamMap.entrySet()) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ByteArrayInputStream inputStream = new ByteArrayInputStream(xmlData.getValue());
        Source src = new StreamSource(inputStream);
        //Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, outputStream);
        Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, outputStream);
        Result res = new SAXResult(fop.getDefaultHandler());
        transformer.transform(src, res);
        byte[] pdfBytes = outputStream.toByteArray();
        if (pdfBytes != null && pdfBytes.length > 0) {
            String pdfMapKey = bookmark == null ? createBookMark(xslCount, xmlData.getKey()) : bookmark;
            pdfByteMap.put(pdfMapKey, pdfBytes);
        }/*ww w  . jav a  2 s. c o m*/
    }

}

From source file:org.kuali.rice.edl.impl.EDLControllerChain.java

private void transform(EDLContext edlContext, Document dom, HttpServletResponse response) throws Exception {
    if (StringUtils.isNotBlank(edlContext.getRedirectUrl())) {
        response.sendRedirect(edlContext.getRedirectUrl());
        return;//from w ww  .  j  ava2 s .  c  o  m
    }
    response.setContentType("text/html; charset=UTF-8");
    Transformer transformer = edlContext.getTransformer();

    transformer.setOutputProperty("indent", "yes");
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    String user = null;
    String loggedInUser = null;
    if (edlContext.getUserSession() != null) {
        Person wu = edlContext.getUserSession().getPerson();
        if (wu != null)
            user = wu.getPrincipalId();
        wu = edlContext.getUserSession().getPerson();
        if (wu != null)
            loggedInUser = wu.getPrincipalId();
    }
    transformer.setParameter("user", user);
    transformer.setParameter("loggedInUser", loggedInUser);
    if (LOG.isDebugEnabled()) {
        LOG.debug("Transforming dom " + XmlJotter.jotNode(dom, true));
    }
    transformer.transform(new DOMSource(dom), new StreamResult(response.getOutputStream()));
}

From source file:org.lareferencia.backend.indexer.IndexerImpl.java

public synchronized boolean index(NetworkSnapshot snapshot) {

    try {/*from w  w  w .  j a va 2 s .c om*/
        // Borrado de los docs del pas del snapshot

        MessageDigest md = MessageDigest.getInstance("MD5");
        String countryISO = snapshot.getNetwork().getCountryISO();

        this.sendUpdateToSolr(
                "<delete><query>country_iso:" + snapshot.getNetwork().getCountryISO() + "</query></delete>");

        // Update de los registros de a PAGE_SIZE
        Page<OAIRecord> page = recordRepository.findBySnapshotIdAndStatus(snapshot.getId(), RecordStatus.VALID,
                new PageRequest(0, PAGE_SIZE));
        int totalPages = page.getTotalPages();

        Long lastId = -1L; // Aqu se guarda el ultimo id de cada pgina para ser usado en el la query optimizada

        for (int i = 0; i < totalPages; i++) {

            Transformer trf = buildTransformer();
            trf.setParameter("country_iso", countryISO);
            trf.setParameter("country", snapshot.getNetwork().getName());

            //page = recordRepository.findBySnapshotIdAndStatusLimited(snapshot.getId(), RecordStatus.VALID, lastId, new PageRequest(0, PAGE_SIZE) );
            page = recordRepository.findBySnapshotIdAndStatus(snapshot.getId(), RecordStatus.VALID,
                    new PageRequest(i, PAGE_SIZE));

            System.out.println("Indexando Snapshot: " + snapshot.getId() + " de: "
                    + snapshot.getNetwork().getName() + " pgina: " + i + " de: " + totalPages);

            StringBuffer strBuf = new StringBuffer();

            List<OAIRecord> records = page.getContent();

            for (OAIRecord record : records) {

                OAIRecordMetadata domRecord = new OAIRecordMetadata(record.getIdentifier(),
                        record.getPublishedXML());
                StringWriter stringWritter = new StringWriter();
                Result output = new StreamResult(stringWritter);

                // id unico pero mutable para solr
                trf.setParameter("solr_id",
                        countryISO + "_" + snapshot.getId().toString() + "_" + record.getId().toString());
                // id permantente para vufind
                trf.setParameter("vufind_id", countryISO + "_" + DigestUtils.md5Hex(record.getPublishedXML()));
                // header id para staff
                trf.setParameter("header_id", record.getIdentifier());

                // Se transforma y genera el string del registro
                trf.transform(new DOMSource(domRecord.getDOMDocument()), output);
                strBuf.append(stringWritter.toString());

                // Se actualiza el lastID para permitir la paginacin con offset 0
                //lastId = records.get( records.size()-1 ).getId();

            }

            this.sendUpdateToSolr("<add>" + strBuf.toString() + "</add>");

            trf = null;
            page = null;
            strBuf = null;

        }

        // commit de los cambios
        this.sendUpdateToSolr("<commit/>");

    } catch (Exception e) {
        e.printStackTrace();
        try {
            this.sendUpdateToSolr("<rollback/>");
        } catch (SolrServerException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        return false;
    }

    return true;
}

From source file:org.lareferencia.backend.indexer.IntelligoIndexer.java

public synchronized boolean index(NetworkSnapshot snapshot) {

    try {//  www  .  ja  va2s  . co m
        // Borrado de los docs del pas del snapshot

        Page<OAIRecord> page = recordRepository.findBySnapshotIdAndStatus(snapshot.getId(), RecordStatus.VALID,
                new PageRequest(0, PAGE_SIZE));
        int totalPages = page.getTotalPages();

        String filepath = outputPath + "/" + snapshot.getNetwork().getName().replace(" ", "_") + "_"
                + snapshot.getId();

        boolean success = (new File(filepath)).mkdirs();
        if (!success) {
            // Directory creation failed
        }

        for (int i = 0; i < totalPages; i++) {

            Transformer trf = buildTransformer();

            //trf.setParameter("country", snapshot.getNetwork().getName() );

            page = recordRepository.findBySnapshotIdAndStatus(snapshot.getId(), RecordStatus.VALID,
                    new PageRequest(i, PAGE_SIZE));

            System.out.println("Indexando Snapshot: " + snapshot.getId() + " de: "
                    + snapshot.getNetwork().getName() + " pgina: " + i + " de: " + totalPages);

            StringBuffer strBuf = new StringBuffer();
            List<OAIRecord> records = page.getContent();

            strBuf.append("<add>");

            for (OAIRecord record : records) {

                OAIRecordMetadata metadata = new OAIRecordMetadata(record.getIdentifier(),
                        record.getPublishedXML());
                StringWriter stringWritter = new StringWriter();
                Result output = new StreamResult(stringWritter);

                // id unico pero mutable para solr
                trf.setParameter("solr_id", snapshot.getId() + "." + record.getId().toString());

                /////// DC:DESCRIPTION - Deteccin y divisin de idiomas 
                String ab_es = "";
                String ab_en = "";
                String ab_pt = "";

                //System.out.println(  metadata.getFieldOcurrences("dc:description") );

                for (String ab : metadata.getFieldOcurrences("dc:description")) {
                    String lang = detectLang(ab);
                    switch (lang) {
                    case "es":
                        ab_es += ab;
                        break;
                    case "en":
                        ab_en += ab;
                        break;
                    case "pt":
                        ab_pt += ab;
                        break;
                    }
                }
                trf.setParameter("ab_es", ab_es);
                trf.setParameter("ab_en", ab_en);
                trf.setParameter("ab_pt", ab_pt);
                /////////////////////////////////////////////////////////////

                /////// DC:title - Deteccin y divisin de idiomas 
                String ti_es = "";
                String ti_en = "";
                String ti_pt = "";
                for (String ti : metadata.getFieldOcurrences("dc:title")) {
                    String lang = detectLang(ti);
                    switch (lang) {
                    case "es":
                        ti_es += ti;
                        break;
                    case "en":
                        ti_en += ti;
                        break;
                    case "pt":
                        ti_pt += ti;
                        break;
                    }
                }
                trf.setParameter("ti_es", ti_es);
                trf.setParameter("ti_en", ti_en);
                trf.setParameter("ti_pt", ti_pt);
                /////////////////////////////////////////////////////////////

                // Se transforma y genera el string del registro
                trf.transform(new DOMSource(metadata.getDOMDocument()), output);
                strBuf.append(stringWritter.toString());
            }

            strBuf.append("</add>");

            BufferedWriter out = new BufferedWriter(new FileWriter(filepath + "/" + i + ".solr.xml"));
            out.write(strBuf.toString());
            out.close();
        }

    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }

    return true;
}