mszupke
mszupke

Reputation: 31

PDFReactor: Images as base64 in xslt

I would like to use PDFReactor to generate pdf from xslt but I have one problem: PDFReactor doesn't attach base64 image to pdf

(...)
<img>
  <xsl:attribute name="src">
    data:image/png;base64,<xsl:value-of select="ksx:image"/>
  </xsl:attribute>
</img>
(...)

Is PDFReactor support attaching images inside xslt file?

Upvotes: 0

Views: 633

Answers (1)

realobjects
realobjects

Reputation: 301

This should actually work in PDFreactor. Here is a simple test case:

XML:

<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<ksx:root xmlns:ksx="http://www.ksx.com/ns">
    <ksx:image>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</ksx:image>
</ksx:root>

XSL:

<xsl:stylesheet version="1.0" xmlns:ksx="http://www.ksx.com/ns" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="ksx:root">
        <html>
            <body>
                <img>
                    <xsl:attribute name="src">
                        data:image/png;base64,<xsl:value-of select="ksx:image"/>
                    </xsl:attribute>
                </img>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

If you do not produce a complete HTML document with your XSL, you need to set the postTransformationDocumentType so that PDFreactor knows you are producing HTML. You can set it like this:

pdfReactor.setPostTransformationDocumentType(PDFreactor.DOCTYPE_HTML5);

Also remember to enable XSLT processing like this:

pdfReactor.setXSLTMode(true);

Upvotes: 0

Related Questions