Bringing multi-page floating tables to ODF

Mike Kaganski mikekaganski at hotmail.com
Thu Jul 13 11:57:24 UTC 2023


Hi Regina!

On 12.07.2023 18:29, Regina Henschel wrote:
> Miklos Vajna schrieb am 12.07.2023 um 15:46:
>> I attach a simple proposal to have a new optional boolean attribute, so
>> that it's possible to represent multi-page floating tables in ODF.
>>
>> Could you please file an OASIS issue for me? I can't do that myself.
>>
>> If there are any concerns, then I guess this list is the best place to
>> discuss that.
> 
> I think a new attribute in ODF is not needed. The desired layout of 
> having a table in a text box which goes over several pages can already 
> be written by using a chain of text boxes. Such chain is generated by 
> the attribute draw:chain-next-name of the <draw:text-box> elements.
> 
> Using a chain of text boxes has the advantage, that the solution exists 
> since 1.1 and therefore is highly backward compatible and interoperable.
> 
> LibreOffice could detect the situation on import, that the chained text 
> boxes contain only the parts of the same one table, and import it into 
> an internal representation, that is designed for a good export to Word.

I'm afraid that a chain of text boxes is not a proper substitute for 
this feature.

A chain of linked text boxes is a fixed set of objects, each with own 
position; and own anchor (which is important), which is set in every 
place where this box should appear. These objects may have a common 
content (which flows from one of them to another), but the objects 
themselves are separate.

On the other hand, the feature that Miklos is talking about is a single 
entity, a frame that has only a single anchor, a single position/size 
definition, and which positions itself on as many pages as needed to fit 
its content, dynamically, where all the following parts of the frame on 
the next pages are not separate objects, but the same initial object.

This is similar to e.g. tables, or sections: you may have a *single* 
table, with arbitrarily large content; it will flow on to the next 
pages, but every next page's part of the table is not a separate table, 
but the same initial one. And it will re-arrange its layout on pages 
dynamically, when you resize pages, or add more content above. It will 
use its width and alignment when flowing to next pages.

Storing the chain of boxes would mean storing artificial objects in the 
document; their position would reflect not the *content* of the document 
(its semantics), but the actual layout on a specific system, that split 
the whole frame into specifically positioned pieces; this could be 
indeed different on a different system - say, where fonts are absent, 
which made substituted fonts to change the layout. The code would still 
need to disambiguate a proper chain of boxes (where user explicitly 
created such a chain, positioning the boxes arbitrarily) from the 
automatically layouted case, where these artifacts are actually one 
object - and that would also need introduction of a new attribute, which 
would defeat the intention to not extend the standard, but will fail to 
express the semantics of the new feature.

Hope this helps to avoid a confusion :)
Thank you!

-- 
Best regards,
Mike Kaganski



More information about the LibreOffice mailing list