OASIS Open Document Format for Office Applications (OpenDocument) TC

 View Only
  • 1.  Proposal: Page Sequences

    Posted 10-24-2003 17:42
     MHonArc v2.5.0b2 -->
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    office message

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


    Subject: Proposal: Page Sequences


    Hi all,
    
    I have the action item to suggest a method for page sequences. I 
    understand the requirements derived from KWord to be:
    1) There can be arbitrary sequences of pages and page layouts.
    E.g., pages could alternate between landscape and portrait, or each page 
    can be 1cm wider than the previous. There can also be empty pages 
    without any text flow on them.
    2) Text frames can be anchored arbitrarily to pages.
    3) There is no main text flow; in particular, no pages are generated to 
    make space for the main text flow.
    4) The format should be similar to the existing documents, so that such 
    documents can be read reasonably well by other word processors, too.
    
    Current state:
    These requirements can be mostly emulated in the OOo base format. Item 
    2) is covered by frames anchored to pages. An empty main text flow (item 
    3) is allowed by the spec. There's no direct solution for item 1), 
    although it can be emulated by either creating one paragraph per page 
    and assigning each a page-break that uses a new master-page, or by 
    creating one master-page for each page and linking them through the 
    next-style-name feature. Both emulations would result in mostly similar 
    appearance, but different behaviour.
    
    A better solution would be to change the spec to
    1) explicitly mention this use-case,
    2) introduce a page sequence element, that solves item 3) properly.
    If those are the only changes, item 4) would be fulfilled as well. 
    Applications that don't know about page-sequence would ignore them. 
    Applications should at least preserve the page-sequence, even if they 
    don't interpret them.
    
    Basically, what I suggest we do is to add an optional element 
    <text:page-sequence> that is allowed in the beginning of text documents. 
    This element contains a sequence of <text:page> elements, each of which 
    has a text:style-name attribute which references a master page. The 
    semantics are that the document contains (at least) as many pages as the 
    <page-sequence> contains <page> elements, with these pages being 
    formatted as described in the corresponding master page. If there are 
    more pages than page elements, the remaining pages are formatted as 
    usual. If (e.g. through page-breaks -with-new-master-page in the main 
    text flow) other page formatting occurs, the page sequence takes precedence.
    
    As a result, a 'DTP' type document could look as follows:
    (It contains a limerick, with one line per page, placed differently on 
    each page, and the page formats matching the rhyme scheme.)
    <style:automatic-style>
      <style:page-master name="pm1"> <!-- portrait page --> </style:page-master>
      <style:page-master name="pm2"> <!-- landscape page --> 
    </style:page-master>
    </style:automatic-style>
    <style:master-styles>
      <style:page-master name="portrait" style:page-master-name="pm1"/>
      <style:page-master name="landscape" style:page-master-name="pm2"/>
    </style:master-styles>
    <office:body>
      <text:page-sequence>
        <text:page text:style-name="portrait"/>
        <text:page text:style-name="portrait"/>
        <text:page text:style-name="landscape"/>
        <text:page text:style-name="landscape"/>
        <text:page text:style-name="portrait"/>
      </text:page-sequence>
      <draw:text-box text:anchor-type="page" text:anchor-page-number="1" 
    svg:x="1cm" svg:y="1cm">
        <text:p>There once was a lady from Riga</text:p>
      </draw:text-box>
      <draw:text-box text:anchor-type="page" text:anchor-page-number="2" 
    svg:x="2cm" svg:y="2cm">
        <text:p>Who went for a ride on a tiger</text:p>
      </draw:text-box>
      <draw:text-box text:anchor-type="page" text:anchor-page-number="3" 
    svg:x="3cm" svg:y="3cm">
        <text:p>They came back from the ride</text:p>
      </draw:text-box>
      <draw:text-box text:anchor-type="page" text:anchor-page-number="4" 
    svg:x="4cm" svg:y="4cm">
        <text:p>With the lady inside</text:p>
      </draw:text-box>
      <draw:text-box text:anchor-type="page" text:anchor-page-number="5" 
    svg:x="5cm" svg:y="5cm">
        <text:p>And a smile on the face of the tiger.</text:p>
      </draw:text-box>
    </office:body>
    
    
    There's two things I wasn't sure how to do, so maybe one of the 
    following variants might be better:
    
    Alternative 1: have <page> elements refer to master-page (instead of 
    page-master):
    
    The page-master may also contain headers and footers, while the 
    master-page (now renamed to page-layout) contains only the page layout, 
    e.g. dimensions. I think it would suffice for the requirements to 
    directly refer to master-pages. However, so far we've always used the 
    page-master for page formatting, and referred to master-pages only from 
    the page-master. Also, headers/footers might have funny interactions 
    with page sequences, if page-sequence would refer to master-pages.
    
    (After having written that, I'm so glad we renamed the master-pages to 
    something sensible. When casually reading, the above doesn't seem to 
    make any sense...)
    
    
    Alternative 2: put the page-sequence into the styles section.
    
    The page sequence is pure styling, so it would make more sense to put 
    this into the styles section. If one were to do that, the styles section 
    would have the page sequence appended, and the application would have to 
    apply the page sequence whenever it finds one.
    However, so far styling information is mostly referenced from the 
    content, and not active by itself. In this case, the page-sequence 
    provides this referencing. (With, admittedly, some exceptions: E.g. line 
    numbers of some of the 'special' styles are automatically active, sort of.)
    
    
    Sincerely,
    Daniel
    
    
    


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