docbook-apps

  • 1.  Re: [docbook-apps] Landscape tables across multiple pages

    Posted 11-05-2008 18:17
    Hi,
    The easiest way is to use the Antenna House processor and put the table
    inside an fo:block-container with its reference-orientation="90". Antenna
    House has implemented an extension to the standard to flow such
    block-containers onto multiple pages. In fact, the current DocBook
    stylesheets do that already, in the template named 'table.container' in
    fo/table.xsl. So just setting orient="land" on a table should do it.

    If AH is not feasible, then PSMI is the only way I know to do it. It is not
    implemented in the DocBook stylesheets, so you'll have to implement it
    yourself. Because PSMI breaks a flow into multiple page sequences, it does
    require closing all open fo elements in the flow before the table. That
    would require additional customization because of the use of fo:block
    nesting around sections. You would need to customize the template with
    match="section" in fo/sections.xsl, removing the section block wrapper.
    When you do that, however, you lose the ability to place attributes on the
    container block, those attributes coming from section.level1.properties et
    al.

    Bob Stayton
    Sagehill Enterprises
    bobs@sagehill.net





  • 2.  Re: [docbook-apps] Landscape tables across multiple pages

    Posted 11-06-2008 12:10
    Hi Bob.

    I am not an XSL expert, let alone a DocBook XSL expert, and the
    customisation required to get PSMI to work for DocBook articles with
    nested sections looks quite involved, so I am going to investigate the
    Antenna House processor. Otherwise I'll just have to fall back to
    splitting such tables manually.

    Thank you for your reply.

    Paul

    2008/11/5 Bob Stayton <bobs@sagehill.net>:
    > Hi,
    > The easiest way is to use the Antenna House processor and put the table
    > inside an fo:block-container with its reference-orientation="90". Antenna
    > House has implemented an extension to the standard to flow such
    > block-containers onto multiple pages. In fact, the current DocBook
    > stylesheets do that already, in the template named 'table.container' in
    > fo/table.xsl. So just setting orient="land" on a table should do it.
    >
    > If AH is not feasible, then PSMI is the only way I know to do it. It is not
    > implemented in the DocBook stylesheets, so you'll have to implement it
    > yourself. Because PSMI breaks a flow into multiple page sequences, it does
    > require closing all open fo elements in the flow before the table. That
    > would require additional customization because of the use of fo:block
    > nesting around sections. You would need to customize the template with
    > match="section" in fo/sections.xsl, removing the section block wrapper. When
    > you do that, however, you lose the ability to place attributes on the
    > container block, those attributes coming from section.level1.properties et
    > al.
    >
    > Bob Stayton
    > Sagehill Enterprises
    > bobs@sagehill.net
    >
    >
    >


  • 3.  Re: [docbook-apps] Landscape tables across multiple pages

    Posted 11-06-2008 12:26
    Hi Paul,

    I recently had the very same requirement for a client. Rotating the
    page 90 degrees is certainly not a desirable solution.

    The problem was solved by pre-processing the DocBook document to
    flatten the section structure, and then group together the portrait
    and landscape parts (XSLT2 is excellent for this purpose!). Those
    different parts are then rendered as sequential fo:page-sequences.

    Let me know if you would like further information on this approach.

    Cheers,
    Steve Ball

    On 06/11/2008, at 11:10 PM, Paul Suckling wrote:

    > Hi Bob.
    >
    > I am not an XSL expert, let alone a DocBook XSL expert, and the
    > customisation required to get PSMI to work for DocBook articles with
    > nested sections looks quite involved, so I am going to investigate the
    > Antenna House processor. Otherwise I'll just have to fall back to
    > splitting such tables manually.
    >
    > Thank you for your reply.
    >
    > Paul
    >
    > 2008/11/5 Bob Stayton <bobs@sagehill.net>:
    >> Hi,
    >> The easiest way is to use the Antenna House processor and put the
    >> table
    >> inside an fo:block-container with its reference-orientation="90".
    >> Antenna
    >> House has implemented an extension to the standard to flow such
    >> block-containers onto multiple pages. In fact, the current DocBook
    >> stylesheets do that already, in the template named
    >> 'table.container' in
    >> fo/table.xsl. So just setting orient="land" on a table should do it.
    >>
    >> If AH is not feasible, then PSMI is the only way I know to do it.
    >> It is not
    >> implemented in the DocBook stylesheets, so you'll have to implement
    >> it
    >> yourself. Because PSMI breaks a flow into multiple page sequences,
    >> it does
    >> require closing all open fo elements in the flow before the table.
    >> That
    >> would require additional customization because of the use of fo:block
    >> nesting around sections. You would need to customize the template
    >> with
    >> match="section" in fo/sections.xsl, removing the section block
    >> wrapper. When
    >> you do that, however, you lose the ability to place attributes on the
    >> container block, those attributes coming from
    >> section.level1.properties et
    >> al.
    >>
    >> Bob Stayton
    >> Sagehill Enterprises
    >> bobs@sagehill.net
    >>
    >>
    >>