Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FIX] base: cut multipage multi-documents on top heading
When we print a report for multiple records, we call wkhtmltopdf one time and to save each document separately, we will split the PDF based on its outline if it is available. The outline is generated by wkhtmltopdf based on headings (H1,H2,H3,H4,H5,H6,H7,H8,H9 elements) for example this document: ``` <h1>hello</h1> <h2>world</h2> <h1>!</h1> ``` has this abbreviated outline structure: ``` /Outlines: { '/First': { '/Title': 'hello' '/First': { '/Title': 'world' }, '/Next': { '/Title': '!' } } } ``` But the current heuristic did not take into account level of headings, so if the document had a lower-level headings this could break the multi-printing of these reports. So for the example above, the document would be cut in 3 when in reality we only want to cut it twice over the top level heading (`<h1/>` here). An existing issue in Odoo is in l10n_in_sale, `<h6/>` element are added to the report invoice line so instead of only one `<h2/>` heading containing the invoice name per document, there was an additional heading per invoice line which broke the heuristic. note: we also add an assertion to ensure first heading is on first page. note: allowing several top-level heading on same page has been implemented so reports that did not work in 11.0 but worked in 12.0 and over (thanks to 573e577) still work after this change. opw-2188767 closes #48099 X-original-commit: 63c2478
- Loading branch information