Hi,
to my knowledge, neither the Velocity-engine nor the Template currently have
capabilities to count lines and do something ever x-lines. But you could device
some workarounds.
a) Pass all lines through a macro that counts the lines and inserts the header
information. (untested code)
#set( $pageNr = 1 )
#set( $lineNr = 0 )
#macro( println $text )
#if( $lineNr % 80 )
Page $pageNr
#set( $pageNr= $pageNr+ 1 )
#end
## emit the text
$text
#set( $lineNr = $lineNr + 1 )
## or do something more sophisticated to count the lines...
#end
...
## use the macro
#println("some data")
#println("more data")
...
b) Use a custom Writer class passed to the velocity rendering which does the
line handling.
c) Use velocity to generate FOP content post-rendered to pages
I would do b) or c).
Just 2cents of ideas...
Christoph
Petermair Patrick wrote:
> Hi!
>
> We are using Velocity to create some reports that will be printed out. One
> report gets a list of customers and prints some data about them. I¹m now
> faced with the problem of writing a page header at the beginning of every
> page (that gets printed out). Something like:
>
> ³Page 23²
>
> and so on... Is there any support in Velocity to print some kind of header
> after a fixed amount of lines? I know how many lines a page can hold. The
> data per customer isn¹t static so I don¹t know how many lines each customer
> will take. So basically my textfile would look like this:
>
> Page 1
> <some data>
> <more data>
> Page 2
> <some more data>
> Page 3
> <even more data>
> <still more data>
> <more more data>
> Page 4
> ...
>
> Without the header I would simply output every customer in a ³for each²
> loop. But I need to tell Velocity somehow that it needs to print an extra
> line with some header data after every 80th line (for example).
>
> I was going through the documentation but I couldn¹t find anything that
> would help me do this ... any ideas?
>
> Thanks,
> Patrick
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]