xsl-list
[Top] [All Lists]

Re: crossing out an image in fo?

2003-12-01 06:28:00
Hello!

Thanks a lot for your help! This works well when i know the height of the
images (in some cases i know it, but there are also cases where i don't know
the image height...)

But i think XSL is not as powerful to solve this issue (getting the height
of the image) - isn't it?

Thanks!

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(_at_)isogen(_dot_)com
www.isogen.com


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


-- 
Neu bei GMX: Preissenkung für MMS-Versand und FreeMMS!

Ideal für alle, die gerne MMS verschicken:
25 FreeMMS/Monat mit GMX TopMail.
http://www.gmx.net/de/cgi/produktemail

+++ GMX - die erste Adresse für Mail, Message, More! +++


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



<Prev in Thread] Current Thread [Next in Thread>
  • Re: crossing out an image in fo?, Markus Gamperl <=