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] 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]