3 ms·
Unfortunately tables are a major weak point in the writer codebase. Hopefully you will be happy to hear that a company has funded some improvements to that par
by grandinj 3y ago
Unfortunately tables are a major weak point in the writer codebase.
Hopefully you will be happy to hear that a company has funded some improvements to that part of the code, and those improvements should roll out over the current and the next release.
ODT files are theoretically human-editable, because once you expand the file (using e.g. unzip) you have a small set of XML files, which can be edited as text and then wrapped up into an ODT again.
Finding "corruption" is not really a thing (at least for writer documents), the spec for writer documents is sufficiently complex that parts of it are in conflict with itself, and compromise solutions must be found in the code.
The writer code to lay the document out is sufficiently complex that it has multiple chunks of guard code specifically designed to make it give up when it cannot make reasonable progress.
- hilbert42 3y agoThanks for responding and being so quick about it. In fact, I was still fixing typos and adding a bit at the end when you replied so you may have missed that bit. Very good to hear about the table improvements, I look forward to seeing them. Re ODT, I unzipped it and looked at the XML and the stuff in the table section was formatted so badly (tightly together as one huge blob of text sans proper spaces and structured formatting). Given the ODT is over 900k long and having examined the XML for an hour or so I simply gave up. I hate to think how long it would have taken me to examine it in detail let alone resolve it without me first going crazy. As I was in a desperate hurry I cut my losses and used my time fixing it in a way where I could at least estimate the time required. "the spec for writer documents is sufficiently complex that parts of it are in conflict with itself," This sounds like what was happening, in parts of the table when paging up or down between pages sections of text (both within a cell with multiple lines of text and across cells in lines before and after). Text in a cell would mix and fold over itself or fold over the text in the cell in the line above or below it. Given that some cells could have text of several hundred lines in length sections of the table (but not all of it) became an almighty jumbled mess. Right, at times it just gave up and if it didn't resolve (respond to commands within a minute or so) I killed it with the task manager.