[xep-support] Extend table with empty rows on last page of report

Nikolai Grigoriev grig at renderx.com
Wed Feb 12 02:22:27 PST 2003


Hi Agnes,

> Our customer uses a technical report like the attachment, basicly one long
> table with a footer on each page. Such a report can be several pages long.
> One of there questions is to extend the table on the last page with empty
> rows. I know (or I think to know) that this is not possible with basic
XSLT
> and XSL-FO because the creation of the number of table rows is seperated
> from the paging. So my question is it possible with XEP? I see two
possible
> options:
> * Add empty rows by XEP.
> * Add empty rows in the XSLT which will fill one page and cut these
> last pages in the FO-process.
>
> I think the second option maybe possible, because RenderX also removes
> information (complete empty pages) in the free trial. However I have no
clue
> how to do this. Can anybody help me?

This is relatively easy, but you have to leverage non-FO mechanisms
in XEP. Essentially, the trick is to intercept pages as they go from
the formatter to the output generator, and skip the last one. XEP Client
edition or better is required - you will need either an XML output
(area tree) producer, or API access.

Using command-line interfaces, the procedure would look like this:

1. Produce the layout in XML from your FO/XML+XSL:

xep -fo input.fo -at tmp.xml

2. Strip the last <page> element from tmp.xml. e.g. by applying
an identity XSL transformation with a disabling template for the
last page:

<xsl:template
       match="/|*|@*|text()|comment()|processing-instruction()">
  <xsl:copy>
    <xsl:apply-templates
           select="*|@*|text()|comment()|processing-instruction()"/>
  </xsl:copy>
</xsl:template>

<xsl:template priority="10"
   match="xep:page[not(following-sibling::xep:page)]"/>

3. Feed the result back, by invoking com.renderx.xep.Printer class:

java -cp [...] com.renderx.xep.Printer tmp_filtered.xml

If you have Server or Developer edition of XEP, you can do this
directly in the API, without saving files to disk. ConcatFormatter
sample from Java samples may be useful to figure out how to
plug a custom filter to XEP output.

Best regards,
Nikolai Grigoriev
RenderX

-------------------
(*) 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/tos.html



More information about the Xep-support mailing list