Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XSL FO region rotation

Tags:

xsl-fo

I'm trying to rotate one region of my page. My header/footer are normal portrait, but my main text flow is landscape.

I tried posting an image, but I don't have enough reputation yet.

I have the following page definition, but it's not rotating at all (using Antenna House Formatter 6.2)

   <?xml version="1.0" encoding="iso-8859-1"?>
   <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
      <fo:simple-page-master master-name="LandPage" >
         <fo:region-body reference-orientation="90" margin-top="37pt" border-style="solid" border-color="black" border-width="1pt" margin-bottom="30mm" margin-left="30mm" margin-right="30mm"/>
         <fo:region-before region-name="progress-odd-header" extent="10mm" />
      </fo:simple-page-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="LandPage">
      <fo:flow flow-name="xsl-region-body">
         <fo:block>TEST TEXT</fo:block>
      </fo:flow>
   </fo:page-sequence>
</fo:root>

Am I missing something, or is there another way of doing it? I looked at just rotating a block container, but I don't know the size of it, because it will flow from page to page.

like image 903
user3198443 Avatar asked Nov 28 '25 11:11

user3198443


1 Answers

Add reference-orientation="from-page-master-region()" to your fo:page-sequence.

From http://www.w3.org/TR/xsl11/#fo_page-sequence:


The reference-orientation and writing-mode of the region-viewport-areas are determined by the values of the "reference-orientation" and "writing-mode" properties of the fo:page-sequence.

Note:

The value may be given as an explicit value or the from-page-master-region function may be used to obtain the value specified on the layout formatting object being used to generate the region viewport/reference area pair.


The initial value of reference-orientation is 0, and setting an angle value on fo:page-sequence would set it for all regions on the page. As the function name suggests, using reference-orientation="from-page-master-region()" sets it individually for each region, so that's how you'd pick up the reference-orientation="90" from the fo:region-body.

like image 87
Tony Graham Avatar answered Nov 30 '25 06:11

Tony Graham