We have a system that generates ODT files from a template plus client's response to many questions.
At various locations in the generated ODT file, line breaks get added in however their appearance in the ODT looks poorly formatted.
I've been tasked to in perl search the ODT content for the line breaks and convert them into a close of the parent tag and creation of a new parent tag with the same type and style.
Originally I tried to just use a few regex to split the content.xml (extracted using Archive::Zip), which worked on a few ODT files but is failing on more complicated XML
I was replacing a <text:line-break/> with a </text:p><text:p text:style-name="XXX"> however my solution fails when it encounters <text:span text:style-name="T71"><text:s/><text:line-break/></text:span> which became <text:span text:style-name="T71"><text:s/></text:p><text:p text:style-name="P104"></text:span> in which it is inserting the </text:p><text:p ...> before the </text:span> was closed.
Probably a regex based solution is too simple to handle the complex XML that might exist, so I probably will need a module that understands ODT and/or XML and with perl code can allow me to
Suggestions?
In reply to fix ODT files with line breaks looking poor by melutovich
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |