[xep-support] Marginals in a multi-column document

Kevin Brown kevin at renderx.com
Mon Jun 8 09:48:12 PDT 2009


Gabriel:

Ah, I see now I misread the question. I am assuming that the marginalis do
not impact the flow of the column. If that is true then one way to solve
that problem is to use the XEP intermediate format and <rx:pinpoint>
objects. Bascially, you would format the whole document with special markers
and then using those markers, format a document that has only the marginalis
and join them. 

You can get the actual "X", "Y" and original value of an <rx:pinpoint> and
because the XEP intermediate format is an XML file, you can also know the
page. One could them develop an XSL that "reads" the XEP intermediate file
and creates a new XSL FO that just contains the marginals positioned
correctly. 

You would loop through all xep:document/xep:page then only call the marginal
template to place it at the known "Y" and the new "X". This second FO is
formatted to XEP intermediate format also. The two XEP intermediate files
can be joined with XSL and then finally processed to desired output. 

So ...

1) XML+XSL ------> RenderX ------> XEP W/O Marginalis 
You already have this, you need to hide marginallis and add <rx:pinpoints>,
just calling RenderX to produce XEP intermediate format and not final output

2) XEP W/O Marginalis+XSL -------> Marginals FO
We can send an example that does this step and creates special headers
instead of marginalis but the concept is exactly the same. You would only
need to place absolutely positioned block-containers at known places.

3) Marginals FO -> RenderX ------> XEP Marginals
This is just RenderX XEP. You end up with a document if formatted that
contains only the marginalis and nothing else.

4) XEP Marginals and XEP W/O marginals --> XEP Joined
This is pure XSL, we can send this to you. You join the two documents at the
XEP intermediate format stage, basically copying content for one into the
other.

5) XEP Joined -----> RenderX ------> PDF/PS
This is just RenderX XEP. You run the combined document.

All of the above can be in a simple program or even a single batch file that
does everything. You only pass the XML and XSL and get final output.

This is the exact solution we used for custom headers and custom advertising
in a recent book we are working on for a customer. We had to place custom
headers based on page content on left/right pages and also custom
advertising on top of the page that could not be determined using pure XSL
FO.

More information on the XEP intermediate format is here:

http://www.renderx.com/reference.html#IntermediateFormatSpecification

A good example of similar techniques for placing form fields on a page given
rx:pinpoints is here:

http://www.renderx.com/solutions/wp_itext_forms.html

I promised the xep-support list a new white paper on the similar solution
but in order to do this, I have to clean up the data as it is private.
Perhaps we can walk through the solution here for you.
         

Kevin Brown
RenderX, Inc.
(650) 327-1000 Direct
(650) 328-8008 Fax
(925) 395-1772 Mobile
skype:kbrown01
kevin at renderx.com






-----Original Message-----
From: owner-xep-support at renderx.com [mailto:owner-xep-support at renderx.com]
On Behalf Of Gabriel Flepp
Sent: Monday, June 08, 2009 12:51 AM
To: xep-support at renderx.com
Subject: Re: [xep-support] Marginals in a multi-column document

Hi,

Thanks but sorry, that's not it. I need to place marginalis in a
two-column document. The float="outside" places the marginals on the
outside for odd and even pages. It doesn't work with columns.

This is what I need:
	txttxttxt  txttxttxt
   mar	txttxttxt  txttxttxt
	txttxttxt  txttxttxt  mar
   mar	txttxttxt  txttxttxt
	txttxttxt  txttxttxt  mar
	txttxttxt  txttxttxt
	txttxttxt  txttxttxt

I either need to find out in wich column I am or I have to 
find a function like fo:change-bar wich has a "placement='alternate'"
parameter. But with fo:change-bar I only have bars and no text:(

Regards
Gabriel Flepp


Am Fri, 5 Jun 2009 08:57:08 -0700
schrieb "Kevin Brown" <kevin at renderx.com>:

> Isn't this what you want:
> 
> http://xep.xattic.com/xep/testsuite/usecases/marginalia.pdf
> 
> This uses <fo:float float="outside>...</fo:float>
> 
> It is on this page:
> 
> http://renderx.net/usecasestest.html
> 
> Under the heading "Creating marginalia using side floats".
> 
> -----Original Message-----
> From: owner-xep-support at renderx.com
> [mailto:owner-xep-support at renderx.com] On Behalf Of Gabriel Flepp
> Sent: Friday, June 05, 2009 7:54 AM
> To: xep-support at renderx.com
> Subject: Re: [xep-support] Marginals in a multi-column document
> 
> Am Wed, 20 May 2009 09:28:29 +0200
> schrieb Gabriel Flepp <gabriel at reichardt.ch>:
> 
> > Am Mon, 18 May 2009 13:16:44 +0200
> > schrieb Gabriel Flepp <gabriel at reichardt.ch>:
> > 
> > > Hi Everyone,
> > > 
> > > I need to place marginals in a two column document. That is, I
> > > have to place the marginals on the left side of the document for
> > > the left column and on the right side for the right column. How
> > > do i determine in which column I am at the time, when I have to
> > > place the marginal?
> > > 
> > > Regards
> > > Gabriel
> > > 
> > 
> > Hi,
> > 
> > I nearly found a solution. I managed to include the xalan classes.
> > There is a class called NodeInfo. And this class has a method
> > columnNumber(). That would be it. Now I have to set an attribute in
> > the TransformerFactory to get this thing to work. How/where do I set
> > the source_location attribute to true?? I didn't find any
> > instructions/tutorials/howtos/examples on how to do this. Can
> > anybody help?
> > 
> > Regards 
> > Gabriel
> > 
> > 
> Hi,
> 
> Still no solution. But I found out that there is a getColumnNumber()
> method in the saxon.jar as well. Can someone point to an example on
> how to use this? It seems, I have trouble to understand on how this
> whole xmlns/java classes/extention thing works :(
> 
> Regards 
> Gabriel
> 


-- 
Gabriel Flepp
Reichardt Informatik AG
Hoehenweg 22
CH-4142 Muenchenstein
gabriel at reichardt.ch
-------------------
(*) To unsubscribe, send a message with words 'unsubscribe xep-support'
in the body of the message to majordomo at renderx.com from the address
you are subscribed from.
(*) By using the Service, you expressly agree to these Terms of Service
http://www.renderx.com/terms-of-service.html

-------------------
(*) To unsubscribe, send a message with words 'unsubscribe xep-support'
in the body of the message to majordomo at renderx.com from the address
you are subscribed from.
(*) By using the Service, you expressly agree to these Terms of Service http://www.renderx.com/terms-of-service.html



More information about the Xep-support mailing list