OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Rotate Region Body for Landscape Pages


OK, your landscape page-masters are working, as indicated by the results 
when you put the attribute on the root element.

The problem is that a page-master is applied at the page-sequence level, but 
an appendix inside an article does not generate its own page-sequence.  The 
default assumption was that in an article, you don't want a page break when 
you start an appendix.  To get your appendix to be landscaped, you'll need 
to change the behavior of the article template and the article/appendix 
template.  Use something like this (untested) in a customization layer:

At the end of the template with match="article" in fo/component.xsl, change

   <xsl:apply-templates/>
  </fo:flow>
 </fo:page-sequence>

to:

     <xsl:apply-templates select="node()[not(self::appendix)]"/>
    </fo:flow>
  </fo:page-sequence>

  <xsl:apply-templates select="appendix"/>

That excludes each appendix from the article's page-sequence and processes 
them after the article page-sequence ends.

In the template with match="article/appendix", put all the content inside a 
variable, and then pass that as a parameter to the template named 
"page.sequence":

<xsl:template match="article/appendix">
  <xsl:variable name="id">
    <xsl:call-template name="object.id"/>
  </xsl:variable>

  <xsl:variable name="title">
    <xsl:apply-templates select="." mode="object.title.markup"/>
  </xsl:variable>

  <xsl:variable name="titleabbrev">
    <xsl:apply-templates select="." mode="titleabbrev.markup"/>
  </xsl:variable>

  <variable name="appendix.content">  <!-- <<========= Add this line 
here -->
    <fo:block id='{$id}'>
       <xsl:if test="$axf.extensions != 0">
         <xsl:attribute name="axf:outline-level">
      ...
      <xsl:apply-templates/>
    </fo:block>
  </variable>  <!-- <<==============Add this line here after all the 
content -->

  <!-- And then add this template call -->
  <xsl:call-template name="page-sequence">
    <xsl:with-param name="content" select="$appendix.content"/>
  </xsl:call-template>

That will put the appendix into its own page-sequence.

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net


----- Original Message ----- 
From: "Leeloo5e" <leeloo5e79-docbook@yahoo.de>
To: <docbook-apps@lists.oasis-open.org>
Sent: Friday, July 04, 2008 12:44 AM
Subject: Re: [docbook-apps] Rotate Region Body for Landscape Pages


>
> Hi,
>
> thanks. I changed it and processed again. The appendix is still in 
> portrait
> not in landscape.
>
> First processed it with FOP 0.95 beta on Windows-System.
> Then processed it with xsltproc to generate a fo and have a look at this.
> Finding the page-master-sequence in the fo file
>
> <fo:page-sequence-master
> master-name="landscape"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference
> master-reference="blank"
> blank-or-not-blank="blank"/><fo:conditional-page-master-reference
> master-reference="landscape-first"
> page-position="first"/><fo:conditional-page-master-reference
> master-reference="landscape-odd"
> odd-or-even="odd"/><fo:conditional-page-master-reference 
> odd-or-even="even"
> master-reference="landscape-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master>
>
> But the PDF-Output is still in portrait also when I processed the FO file
> again with the latest build of FOP.
>
> Just add role="landscape" to my root article and processed again. Now the
> whole pdf output is in landscape ... header and footer still portrait -
> thats fine.
>
> The appendix I would like to output in landscape format is inside the root
> article and this is still in normal format portrait ... Could be this the
> reason? Should I create a separat appendix-file?
>
> Thank you very much.
> Best Regards,
> Lee
>
>
> Bob Stayton wrote:
>>
>> Hi,
>> Your customization worked for me.  I copied and pasted this into a short
>> customization (with one correction: your page-sequence-master was using
>> body-odd instead of landscape-odd), and processed it with xsltproc and 
>> fop
>> 0.95beta.  When I put role="landscape" on chapter or appendix, they came
>> out
>> landscape in the PDF.
>>
>> You might take a peek inside your fo file to see if you are getting
>> "landscape" on the page-sequence.  That will tell you if something is
>> going
>> wrong with the stylesheet instead of fop.
>>
>> Bob Stayton
>> Sagehill Enterprises
>> bobs@sagehill.net
>>
>>
>> ----- Original Message ----- 
>> From: <leeloo5e79-docbook@yahoo.de>
>> To: <docbook-apps@lists.oasis-open.org>
>> Sent: Thursday, July 03, 2008 7:11 AM
>> Subject: [docbook-apps] Rotate Region Body for Landscape Pages
>>
>>
>> Hello List,
>>
>> tried to set up a customized page sequence to rotate a region body. This
>> Guide
>> (http://www.sagehill.net/docbookxsl/PageDesign.html#LandscapePageSequence)
>> was very helpful. So here my customizations:
>>
>> <xsl:template name="select.user.pagemaster">
>>   <xsl:param name="element"/>
>>   <xsl:param name="pageclass"/>
>>   <xsl:param name="default-pagemaster"/>
>>
>>   <xsl:choose>
>>     <xsl:when test="@role = 'landscape'">landscape</xsl:when>
>>     <xsl:otherwise>
>>       <xsl:value-of select="$default-pagemaster"/>
>>     </xsl:otherwise>
>>   </xsl:choose>
>> </xsl:template>
>>
>> <xsl:template name="user.pagemasters">
>> <fo:simple-page-master master-name="landscape-first"
>>                            page-width="{$page.width}"
>>                            page-height="{$page.height}"
>>                            margin-top="{$page.margin.top}"
>>                            margin-bottom="{$page.margin.bottom}"
>>                            margin-left="{$margin.left.inner}"
>>                            margin-right="{$page.margin.outer}">
>>       <xsl:if test="$axf.extensions != 0">
>>         <xsl:call-template name="axf-page-master-properties">
>>           <xsl:with-param name="page.master">body-first</xsl:with-param>
>>         </xsl:call-template>
>>       </xsl:if>
>>       <fo:region-body margin-bottom="{$body.margin.bottom}"
>>                       margin-top="{$body.margin.top}"
>>   reference-orientation="90"
>>                       column-gap="{$column.gap.body}"
>>                       column-count="{$column.count.body}">
>>       </fo:region-body>
>>       <fo:region-before region-name="xsl-region-before-first"
>>                         extent="{$region.before.extent}"
>>                         display-align="before"/>
>>       <fo:region-after region-name="xsl-region-after-first"
>>                        extent="{$region.after.extent}"
>>                        display-align="after"/>
>>     </fo:simple-page-master>
>>
>>     <fo:simple-page-master master-name="landscape-odd"
>>                            page-width="{$page.width}"
>>                            page-height="{$page.height}"
>>                            margin-top="{$page.margin.top}"
>>                            margin-bottom="{$page.margin.bottom}"
>>                            margin-left="{$margin.left.inner}"
>>                            margin-right="{$page.margin.outer}">
>>       <xsl:if test="$axf.extensions != 0">
>>         <xsl:call-template name="axf-page-master-properties">
>>           <xsl:with-param name="page.master">body-odd</xsl:with-param>
>>         </xsl:call-template>
>>       </xsl:if>
>>       <fo:region-body margin-bottom="{$body.margin.bottom}"
>>                       margin-top="{$body.margin.top}"
>>   reference-orientation="90"
>>                       column-gap="{$column.gap.body}"
>>                       column-count="{$column.count.body}">
>>       </fo:region-body>
>>       <fo:region-before region-name="xsl-region-before-odd"
>>                         extent="{$region.before.extent}"
>>                         display-align="before"/>
>>       <fo:region-after region-name="xsl-region-after-odd"
>>                        extent="{$region.after.extent}"
>>                        display-align="after"/>
>>     </fo:simple-page-master>
>>
>>     <fo:simple-page-master master-name="landscape-even"
>>                            page-width="{$page.width}"
>>                            page-height="{$page.height}"
>>                            margin-top="{$page.margin.top}"
>>                            margin-bottom="{$page.margin.bottom}"
>>                            margin-left="{$margin.left.outer}"
>>                            margin-right="{$page.margin.inner}">
>>       <xsl:if test="$axf.extensions != 0">
>>         <xsl:call-template name="axf-page-master-properties">
>>           <xsl:with-param name="page.master">body-even</xsl:with-param>
>>         </xsl:call-template>
>>       </xsl:if>
>>       <fo:region-body margin-bottom="{$body.margin.bottom}"
>>                       margin-top="{$body.margin.top}"
>>   reference-orientation="90"
>>                       column-gap="{$column.gap.body}"
>>                       column-count="{$column.count.body}">
>>       </fo:region-body>
>>       <fo:region-before region-name="xsl-region-before-even"
>>                         extent="{$region.before.extent}"
>>                         display-align="before"/>
>>       <fo:region-after region-name="xsl-region-after-even"
>>                        extent="{$region.after.extent}"
>>                        display-align="after"/>
>>     </fo:simple-page-master>
>>
>> <fo:page-sequence-master master-name="landscape">
>>       <fo:repeatable-page-master-alternatives>
>>         <fo:conditional-page-master-reference master-reference="blank"
>> 
>> blank-or-not-blank="blank"/>
>>         <fo:conditional-page-master-reference
>> master-reference="landscape-first"
>>                                               page-position="first"/>
>>         <fo:conditional-page-master-reference master-reference="body-odd"
>>                                               odd-or-even="odd"/>
>>         <fo:conditional-page-master-reference
>>                                               odd-or-even="even">
>>           <xsl:attribute name="master-reference">
>>             <xsl:choose>
>>               <xsl:when test="$double.sided !=
>> 0">landscape-even</xsl:when>
>>               <xsl:otherwise>landscape-odd</xsl:otherwise>
>>             </xsl:choose>
>>           </xsl:attribute>
>>         </fo:conditional-page-master-reference>
>>       </fo:repeatable-page-master-alternatives>
>>     </fo:page-sequence-master>
>> </xsl:template>
>>
>> Then I set in my Input-Docbook-XML-File the attribute role to landscape 
>> in
>> the appendix tag like this
>>
>>  <appendix role="landscape">
>>
>> Next step was to generate output PDF with FOP 0.95 beta under Win and
>> docbook-xsl-1.74.0. Result: Nothing. The appendix and integrated
>> informaltable are still in portrait format.
>> What is wrong?
>>
>> The very simplest way is to set orient=land to informaltable and this 
>> will
>> rotate on page but with overfloating the page border ... :-(
>>
>>  <informaltable orient="land">
>>
>> Next step is using the PSMI from here
>> http://www.cranesoftwrights.com/resources/psmi/index.htm. This changed
>> last
>> in 2003. Couldn't this included in the Docbook-XSL-Stylesheet?
>>
>> Any suggestions?
>>
>> Thanks.
>> Best Regards,
>> Lee
>>
>>
>>
>>       __________________________________________________________
>> Gesendet von Yahoo! Mail.
>> Dem pfiffigeren Posteingang.
>> http://de.overview.mail.yahoo.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>>
>>
>>
>
> -- 
> View this message in context: 
> http://www.nabble.com/Rotate-Region-Body-for-Landscape-Pages-tp18260338p18274560.html
> Sent from the docbook apps mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>
>
> 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]