[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] PDF output of <inlinemediaobject> within lists
Thank you very much for your quick response. Your customization improved it,
but I'm still having problems.
<imagedata valign="bottom"/> is the only option that still seems to keep the
list label aligned with the list text. If I use valign="top" or
valign="center", the list text is lower than the list label. Also, it won't
align at all unless I adjust the DPI of the icon to make it much smaller.
Here's what it looks like:
http://img329.imageshack.us/img329/2944/closerzi5.png
Any ideas? Thanks again for your quick response.
Joseph Caporale
Mads Ipsen-2 wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> caporale wrote:
>> I'm using FOP 0.93 and xsltproc.
>>
>> The XML looks like this:
>>
>> <orderedlist>
>> <listitem><para><inlinemediaobject/></para></listitem>
>> ...
>> </orderedlist>
>>
>> This is what the output looks like:
>> http://img248.imageshack.us/my.php?image=inlinemediaobjectkl4.png
>>
>> Is there any way I can get the list label in line with the rest of it?
> HTML
>> output looks fine, and this is what I want it to look like:
>>
>> http://img519.imageshack.us/my.php?image=inlinemediaobject2xl2.png
>>
>> Thank you,
>> Joseph Caporale
>>
> I was struggling with this issue as well. You'd expect setting
>
> valign="middle"
>
> to do the job, i.e something like
>
> <inlinemediaobject>
> <imageobject>
> <imagedata fileref = "icon.png"
> valign = "middle"
> />
> </imageobject>
> </inlinemediaobject>
>
> But it does not, since the FO xsl stylesheets does insert the right
> attributes into the <fo:inline> element.
>
> Below I include a changed definition of the template <xsl:template
> name="process.image"> to get it to work (add this chunk to your
> customization layer). It might have other unexpetcted consequences,
> but solved the issue. The important part is the setting for the
> <xsl:if test="@valign"> attribute.
>
> Best, Mads
>
> <!-- ********************************************************************
> Redefine valign such that inline icons get vertical center.
>
> ******************************************************************** -->
> <xsl:template name="process.image">
> <xsl:variable name="scalefit">
> <xsl:choose>
> <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
> <xsl:when test="@contentwidth">0</xsl:when>
> <xsl:when test="@contentdepth and
> @contentdepth != '100%'">0</xsl:when>
> <xsl:when test="@scale">0</xsl:when>
> <xsl:when test="@scalefit"><xsl:value-of
> select="@scalefit"/></xsl:when>
> <xsl:when test="@width or @depth">1</xsl:when>
> <xsl:otherwise>0</xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> <xsl:variable name="scale">
> <xsl:choose>
> <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
> <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when>
> <xsl:when test="@scale">
> <xsl:value-of select="@scale div 100.0"/>
> </xsl:when>
> <xsl:otherwise>1.0</xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> <xsl:variable name="filename">
> <xsl:choose>
> <xsl:when test="local-name(.) = 'graphic'
> or local-name(.) = 'inlinegraphic'">
> <!-- handle legacy graphic and inlinegraphic by new template -->
> <xsl:call-template name="mediaobject.filename">
> <xsl:with-param name="object" select="."/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>
> <!-- imagedata, videodata, audiodata -->
> <xsl:call-template name="mediaobject.filename">
> <xsl:with-param name="object" select=".."/>
> </xsl:call-template>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> <xsl:variable name="content-type">
> <xsl:if test="@format">
> <xsl:call-template name="graphic.format.content-type">
> <xsl:with-param name="format" select="@format"/>
> </xsl:call-template>
> </xsl:if>
> </xsl:variable>
>
> <xsl:variable name="bgcolor">
> <xsl:call-template name="dbfo-attribute">
> <xsl:with-param name="pis"
> select="../processing-instruction('dbfo')"/>
> <xsl:with-param name="attribute" select="'background-color'"/>
> </xsl:call-template>
> </xsl:variable>
>
> <fo:external-graphic>
> <xsl:attribute name="src">
> <xsl:call-template name="fo-external-image">
> <xsl:with-param name="filename">
> <xsl:if test="$img.src.path != '' and
> not(starts-with($filename, '/')) and
> not(contains($filename, '://'))">
> <xsl:value-of select="$img.src.path"/>
> </xsl:if>
> <xsl:value-of select="$filename"/>
> </xsl:with-param>
> </xsl:call-template>
> </xsl:attribute>
>
> <xsl:attribute name="width">
> <xsl:choose>
> <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
> <xsl:when test="contains(@width,'%')">
> <xsl:value-of select="@width"/>
> </xsl:when>
> <xsl:when test="@width and not(@width = '')">
> <xsl:call-template name="length-spec">
> <xsl:with-param name="length" select="@width"/>
> <xsl:with-param name="default.units" select="'px'"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:when test="not(@depth) and $default.image.width != ''">
> <xsl:call-template name="length-spec">
> <xsl:with-param name="length" select="$default.image.width"/>
> <xsl:with-param name="default.units" select="'px'"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>auto</xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
>
> <xsl:attribute name="height">
> <xsl:choose>
> <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
> <xsl:when test="contains(@depth,'%')">
> <xsl:value-of select="@depth"/>
> </xsl:when>
> <xsl:when test="@depth">
> <xsl:call-template name="length-spec">
> <xsl:with-param name="length" select="@depth"/>
> <xsl:with-param name="default.units" select="'px'"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>auto</xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
>
> <xsl:attribute name="content-width">
> <xsl:choose>
> <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
> <xsl:when test="contains(@contentwidth,'%')">
> <xsl:value-of select="@contentwidth"/>
> </xsl:when>
> <xsl:when test="@contentwidth">
> <xsl:call-template name="length-spec">
> <xsl:with-param name="length" select="@contentwidth"/>
> <xsl:with-param name="default.units" select="'px'"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:when test="number($scale) != 1.0">
> <xsl:value-of select="$scale * 100"/>
> <xsl:text>%</xsl:text>
> </xsl:when>
> <xsl:when test="$scalefit = 1">scale-to-fit</xsl:when>
> <xsl:otherwise>auto</xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
>
> <xsl:attribute name="content-height">
> <xsl:choose>
> <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
> <xsl:when test="contains(@contentdepth,'%')">
> <xsl:value-of select="@contentdepth"/>
> </xsl:when>
> <xsl:when test="@contentdepth">
> <xsl:call-template name="length-spec">
> <xsl:with-param name="length" select="@contentdepth"/>
> <xsl:with-param name="default.units" select="'px'"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:when test="number($scale) != 1.0">
> <xsl:value-of select="$scale * 100"/>
> <xsl:text>%</xsl:text>
> </xsl:when>
> <xsl:when test="$scalefit = 1">scale-to-fit</xsl:when>
> <xsl:otherwise>auto</xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
>
> <xsl:if test="$content-type != ''">
> <xsl:attribute name="content-type">
> <xsl:value-of select="concat('content-type:',$content-type)"/>
> </xsl:attribute>
> </xsl:if>
>
> <xsl:if test="$bgcolor != ''">
> <xsl:attribute name="background-color">
> <xsl:value-of select="$bgcolor"/>
> </xsl:attribute>
> </xsl:if>
>
> <xsl:if test="@align">
> <xsl:attribute name="text-align">
> <xsl:value-of select="@align"/>
> </xsl:attribute>
> </xsl:if>
>
> <xsl:if test="@valign">
> <xsl:attribute name="vertical-align">
> <xsl:choose>
> <xsl:when test="@valign = 'top'">super</xsl:when>
> <xsl:when test="@valign = 'middle'">middle</xsl:when>
> <xsl:when test="@valign = 'bottom'">sub</xsl:when>
> <xsl:otherwise>auto</xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
> </xsl:if>
> </fo:external-graphic>
> </xsl:template>
> </xsl:stylesheet>
>
> - --
> +---------------------------------+-------------------------+
> | Mads Ipsen | |
> | Product Support Specialist | phone: +45-35320630 |
> | Atomistix A/S | fax: +45-35320635 |
> | Juliane Maries Vej 30 | |
> | DK-2100 Copenhagen | mpi@atomistix.com |
> +---------------------------------+-------------------------+
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFGg2KLUiXEzEUa8LARAghtAJkBycuJx4rVKLctdWHP9+lgOE25GwCgoIcD
> ai9wDabaPYGdgmwDHg+SAfE=
> =Bk9n
> -----END PGP SIGNATURE-----
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>
>
>
--
View this message in context: http://www.nabble.com/PDF-output-of-%3Cinlinemediaobject%3E-within-lists-tf3992649.html#a11344580
Sent from the docbook apps mailing list archive at Nabble.com.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]