OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] mediaobject with base64 encoded image data


Hi,
That customization looks fine to me.  What XSL-FO processor are you using?

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net


----- Original Message ----- From: "Dominik Psenner" <dpsenner@gmail.com>
To: <docbook-apps@lists.oasis-open.org>
Sent: Monday, April 02, 2012 12:30 AM
Subject: [docbook-apps] mediaobject with base64 encoded image data


Good morning,

We plan to XSL transform a dynamically generated docbook including images to
FO and subsequently process that to PDF. Therefore I'm digging only in the
docbook to FO stylesheets. While investigating that we had the idea to
base64 encode images and include them in the docbook because it enables us
to bypass image caching while generating PDF on the fly. To include a base64
image I had the idea to write it as:

-- quote --
       <docbook:figure>
         <docbook:title>Sample</docbook:title>
         <docbook:mediaobject>
           <docbook:imageobject>
             <fo:external-graphic src="data:image/jpeg;base64,XYZ"
width="auto" height="auto" content-width="auto" content-height="auto"
content-type="content-type:image/jpeg" />
           </docbook:imageobject>
         </docbook:mediaobject>
       </docbook:figure>
-- /quote --

But unfortunately the stylesheet (1.75.2 release) would wrap that within a
<fo:instream-foreign-object /> and that causes the FO processor to fail
including the base64 encoded image.

Therefore I changed the docbook xsl stylesheet (based on the 1.75.2 release)
in the file fo/graphics.xsl slightly:

-- diffquote --
<xsl:template match="imageobject">
 <xsl:choose>
   <xsl:when test="imagedata">
     <xsl:apply-templates select="imagedata"/>
   </xsl:when>
+    <xsl:when test="fo:external-graphic">
+      <xsl:apply-templates mode="copy-all" />
+    </xsl:when>
   <xsl:otherwise>
     <fo:instream-foreign-object>
       <xsl:apply-templates mode="copy-all"/>
     </fo:instream-foreign-object>
   </xsl:otherwise>
 </xsl:choose>
</xsl:template>
-- /diffquote --

This patch drops the <fo:instream-foreign-object /> tag when encountering
<fo:external-graphic />.

Does this patch break other things? Would you guys do it somehow different?

Cheers,
Dominik


---------------------------------------------------------------------
To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]