Re: [xsl] crossing out an image in fo?

Subject: Re: [xsl] crossing out an image in fo?
From: "W. Eliot Kimber" <eliot@xxxxxxxxxx>
Date: Sun, 23 Nov 2003 09:01:19 -0600
Markus Gamperl wrote:
image?

You can try a block as overlay, using relative positioning.

Could you please give me further more information? - What do you mean with
relative positioning?

You need to use block-container or inline-container. For block-container, the basic pattern is:


<fo:block-container>
<fo:block-container position="absolute">
<fo:block>This is the first block</fo:block>
</fo:block-container>
<fo:block-container position="absolute">
<fo:block>This is the second block. It should overprint the first</fo:block>
</fo:block-container>
</fo:block-container>


The reason this works is that the outer block-container establishes a new "reference area", that is, an area within which other areas are positioned.

The two inner block-containers use position="absolute" to indicate that they are absolutely positioned relative to the boundaries of their containing reference area. Because both inner block containers are positioned at the same place (the default position is aligned with the top and left of the containing reference areas) they overlay each other.

By default, the Z-order (vertical stacking) is determined by source order, so the second inner block-container has a higher Z-order than the first block container.

The same basic approach works with inline-container, the difference being that the outer inline-container will be positioned within a sequence of inline areas rather than as a block, as in the example above. Here is a sample that works with XSL Formatter 2.5 (in my data set, the graphic is a little icon about 10pt square):

    <fo:block space-before="12pt"
        font-size="12pt"
    >this is before the inline graphic
    <fo:inline-container
        alignment-adjust="10pt"
        inline-progression-dimension="12pt"
    >
      <fo:block-container position="absolute">
        <fo:block>
          <fo:external-graphic src="url(graphics/menu-icon.eps)"/>
        </fo:block>
      </fo:block-container>
      <fo:block-container position="absolute">
        <fo:block>
          <fo:leader
              color="red"
              alignment-adjust="middle"
              rule-thickness="1pt"
              leader-length="12pt"
              leader-alignment="reference-area"
              leader-pattern="rule"/>
        </fo:block>
      </fo:block-container>
    </fo:inline-container>
    this is after the inline graphic.
    </fo:block>

[It may not work with XEP--I believe XEP implements all absolutely-positioned blocks relative to the page's reference area. I would be very surprised if it works with FOP.]

Cheers,

Eliot
--
W. Eliot Kimber
Innodata Isogen
eliot@xxxxxxxxxx
www.isogen.com


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread