Apache OpenOffice (AOO) Bugzilla – Issue 85605
Add option to allow cell break across page insisted by merging cells
Last modified: 2013-02-07 22:32:14 UTC
When a table contains vertically merged cells, those cells may break across pages at the subordinate row boundaries even when the table properties are set to disallow breaking of rows. In my case, the intent of the vertical merge was to create a single complex row grouping several closely related rows, and not allow the group to break across pages. This is how Writer functioned in version 2.0.4 and probably all releases prior to 2.3. It appears that changes made for other issues have made it impossible to specify this behavior. The best workaround I have so far discovered is to split the table at the first of the rows comprising a group that would be broken, inserting a manual page break if necessary. This introduces a great deal of sensitivity to changes in column widths, page margins, and even cell contents for *any* of the cells preceding the artificial split if that changes row heights. Either the interpretation of disallowing row breaks should be extended to disallow cell breaks, or a new option is needed to specifically disallow cell breaks, or some kind of "keep together" formatting capability is needed (e.g., Ctrl-{ to mark the beginning and Ctrl-} to mark the end of material that should not break across pages; this could be useful even outside the context of tables).
Created attachment 51178 [details] Table showing merged cell broken
Thanks for the issue and example document. I can confirm -> Set to new.
I replicated the bug on Windows XP SP3 with OOo 2.3.1. 1. Create a table in writer with at least 2 row and two columns. 2. Right click the table then select "Table..." then select tab "Text flow" 3. In "Text flow" option tab make sure "Allow table to be split across pages and columns" is selected and "Allow row to break across pages and columns" is not selected. (This will allow tables to be showed across pages but no cell should be showed across pages) 4. Select any two cells vertically and merge them. 5. Now move the table down to the bottom of the page until the table goes across the two pages and finally the cell created by merging two cells will split into two parts across two pages. Now if you do a page preview you will see the second half of the table on the second page even have missing table borders.
This behaviour may seem a little strange - but it currently works as designed. A cell/row will only be disallowed to break, when text input would force a page break - not the combination of splitting/merging cells. This is also kept because a well known competitor also behaves like this - and to grant compatibility (especially OOo's import filter), this won't be changed.
Closed.
Allowing this to be the default behavior is fine, but my problem is that there is *no* way to specify the behavior I want. The only workaround that I know of is completely unsatisfactory. An additional option to allow this specification (to fit the current pattern, "Allow cell to break across pages," selected by default) would allow this without disturbing the current behavior for those who want it.
Reassigned to requirements.
I am guessing that mru’s comment above "This is also kept because a well known competitor also behaves like this" refers to a famous, Redmond based software company. Well, in fact, it turns out that it is possible to instruct MS-Word to not split vertically merged cells across a page border. In MS-Word version 2002, it is achieved as follow: - Let’s call the vertically merged cell a "vermell" (just a made-up name). In the description below, the vermell is located in the very left column of the table (i.e. it is not any column in the center or on the right of the table) - Let’s assume that the vermell spans over N rows a) "Unmerge" the vermell (select the vermell and split it back to exactly the number N of rows over which the vermell spans). b) Select all the underlying cells which constituted the vermell with the exception of the bottom cell (i.e. select N-1 cells. The bottom cell N is not part of the selection) c) Starting from MS-Word top menu bar, successively click on Format → Paragraph.. → Line and Page Breaks. d) Under the "Line and Page Breaks" tab, enable the “Keep with next” tick box. Click the "OK" button. e) Select the bottom underlying cell of the vermell (i.e. the cell number N) f) Starting from MS-Word top menu bar, successively click on Format → Paragraph.. → Line and Page Breaks. g) Under the "Line and Page Breaks" tab, disable the "Keep with next" tick box. Click the "OK" button. h) "Remerge" all the cells of the vermell. With these settings, the vermell will not be split when it crosses the bottom border of a page; instead, the vermell (and all associated rows over which the vermell spans) will be moved as one undividable block to the next page. Now, the way this is implemented in MS-Word is very much an obscure, mind twisted kludge (need to act on the "Paragraph" settings, instead of on the table properties). Note that when importing an MS-Word file that contains a table with vermells configured as described above in OpenOffice Writer, OpenOffice Writer does NOT replicate the MS-Word behaviour; instead OpenOffice Writer does split the vermells across page borders. I added my two votes in support of dupreyb’s request. The implementation of this needed feature in OpenOffice Writer should be done through the table properties (i.e. not the way it is done in MS-Word), for instance by adding a tick box to make a cell (be it an elementary cell or a merged cell) "unsplitable" across page border.
Thanks! This is definitely what I want. It can be stated positively ("allow cells to break across pages and columns") to parallel "allow row to break across pages and columns" and set on by default, to allow the current behavior to remain the default. If the row is allowed to break, but cells are not, the effect would be to prohibit the row break anyway, so this may be an option that further clarifies things when rows are not allowed to split (i.e, indented from the row option and available when the row is not allowed to break).