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

From: Nikolai Grigoriev (grig@renderx.com)
Date: Wed Feb 12 2003 - 02:22:27 PST

  • Next message: Michael Scott: "RE: [xep-support] Extend table with empty rows on last page of report"

    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@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



    This archive was generated by hypermail 2.1.5 : Wed Feb 12 2003 - 02:17:05 PST