List Info

Thread: PDF output of within lists




PDF output of <inlinemediaobject> within lists
user name
2007-06-28 01:21:04
I'm using FOP 0.93 and xsltproc.

The XML looks like this:

<orderedlist>
<listitem><para><inlinemediaobject/></p
ara></listitem>
...
</orderedlist>

This is what the output looks like:
http://img248.imageshack.us/my.php?image=inline
mediaobjectkl4.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=inlin
emediaobject2xl2.png

Thank you,
Joseph Caporale

-- 
View this message in context: http://www.nabb
le.com/PDF-output-of-%3Cinlinemediaobject%3E-within-lists-tf
3992649.html#a11337683
Sent from the docbook apps mailing list archive at
Nabble.com.


------------------------------------------------------------
---------
To unsubscribe, e-mail: docbook-apps-unsubscribelists.oasis-open.org
For additional commands, e-mail: docbook-apps-helplists.oasis-open.org


Re: PDF output of <inlinemediaobject> within lists
user name
2007-06-28 02:26:03
-----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/></p
ara></listitem>
> ...
> </orderedlist>
>
> This is what the output looks like:
> http://img248.imageshack.us/my.php?image=inline
mediaobjectkl4.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=inlin
emediaobject2xl2.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              | mpiatomistix.com       |
+---------------------------------+-------------------------
+
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


iD8DBQFGg2KLUiXEzEUa8LARAghtAJkBycuJx4rVKLctdWHP9+lgOE25GwCg
oIcD
ai9wDabaPYGdgmwDHg+SAfE=
=Bk9n
-----END PGP SIGNATURE-----


------------------------------------------------------------
---------
To unsubscribe, e-mail: docbook-apps-unsubscribelists.oasis-open.org
For additional commands, e-mail: docbook-apps-helplists.oasis-open.org


[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )