Re: FO - Adding Filler Pages for page count multiple of 16

2005-08-22 Thread Jeremias Maerki
I don't think such a thing is directly possible with XSL-FO. Your best
chance is probably to do a two-pass approach, noting the number of
generated pages in the first run and then injecting additional blank
pages in the second run.

On 20.08.2005 06:32:59 Prakash R wrote:
 Hi,
 
 I'm new to FO. I'm developing a FO document to
 generate a catalog which has multiple sections. I have
 a constraint on the length of each of these sections.
 It has to be a multiple of 16 pages. If the data for a
 particular section is less than a multiple of 16 pages
 then the extra pages need to be blank pages or notes
 pages with rules. eg. a section is 14 pages of data
 then it should be followed by 2 blank pages to make it
 16 pages. another section is 25 pages of data then it
 should be followed by 7 blank pages to make it 32
 pages. This is almost like force-page-count=16*x.
 
 First of all I would like to know if this is possible.
 If so, I would appreciate any pointers to get it done.



Jeremias Maerki


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FO - Adding Filler Pages for page count multiple of 16

2005-08-22 Thread Chris Bowditch

Jeremias Maerki wrote:


I don't think such a thing is directly possible with XSL-FO. Your best
chance is probably to do a two-pass approach, noting the number of
generated pages in the first run and then injecting additional blank
pages in the second run.


Jeremias is right, you can't do want you what with XSL-FO.
An alternative solution would be to post process the generated PDF using 
a tool like iText to insert the desired number of blank pages.


Chris


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FO - Adding Filler Pages for page count multiple of 16

2005-08-22 Thread Jeremias Maerki
No, you don't need an additional tool, only some custom Java code and
probably an extension to your stylesheet.

Step 1:
Use the Driver.getResults() method to determine the number of pages
generated during the first, normal run. See here for more info:
http://xml.apache.org/fop/embedding.html#render-info

Step 2:
You run FOP again with the same input file but now you set a parameter
to your XSLT stylesheet which generates the necessary number of blank
pages with normal XSL-FO means (page-sequences or page breaks or
whatever).

So you simply run FOP twice with the same input file and the same
stylesheet. You only need to extend your stylesheet so it can produce an
number of empty pages as specified through an XSLT parameter.

On 22.08.2005 15:39:11 Prakash R wrote:
 Jeremias,
 
 When you said a two-pass approach, would that be both
 through FO processor or would I have to do the second
 run with some other tool? At the end of the first run
 I would have a PDF. If I would be using FO Processor
 for the second run then how would I go about doing the
 second run? If not, what are some other tools which I
 can use to do the second run? 
 
 Thank you.
 Prakash
 
 --- Jeremias Maerki [EMAIL PROTECTED] wrote:
 
  I don't think such a thing is directly possible with
  XSL-FO. Your best
  chance is probably to do a two-pass approach, noting
  the number of
  generated pages in the first run and then injecting
  additional blank
  pages in the second run.
  
  On 20.08.2005 06:32:59 Prakash R wrote:
   Hi,
   
   I'm new to FO. I'm developing a FO document to
   generate a catalog which has multiple sections. I
  have
   a constraint on the length of each of these
  sections.
   It has to be a multiple of 16 pages. If the data
  for a
   particular section is less than a multiple of 16
  pages
   then the extra pages need to be blank pages or
  notes
   pages with rules. eg. a section is 14 pages of
  data
   then it should be followed by 2 blank pages to
  make it
   16 pages. another section is 25 pages of data then
  it
   should be followed by 7 blank pages to make it 32
   pages. This is almost like force-page-count=16*x.
   
   First of all I would like to know if this is
  possible.
   If so, I would appreciate any pointers to get it
  done.


Jeremias Maerki


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]