Estimated read time: 2 minutes
I recently dived into the SmartArt support of LibreOffice, which is the component responsible for displaying complex diagrams from PPTX. I focused especially on the case when only document model and the layout constraints are given, not a pre-rendered result.
Accent Process
In this post I would like to present the progress regarding the Accent Process preset, available in PowerPoint — which is used in many documents.
This exposed several shortcomings of the current diagram layout we have in LibreOffice:
-
Values are not read from constraints (there was a reason for this, they can be complex, given that depending on the context, the unit is points or millimeters and the unit is always implicit).
-
ZOrder offsets were ignored.
-
Linear algorithm did not take size from constraints when it came to recursing into child algorithms.
-
Data point assumed that all text for it is a single "run" (i.e. either all text is bold or nothing, not half of it).
-
followSib
axis was not implemented forforEach
, so when you have arrow shapes between objects, we createdN
arrows, notN - 1
ones. -
Connectors were created as invisible shapes and had the wrong width/height aspect.
With all these fixed, we reach a much better state for handling accent process.
Results so far
smartart-accent-process.pptx is what I used for testing of this work.
Here is how the baseline, the current and the reference rendering of the test documents look like:
smartart-accent-process.pptx, baseline
smartart-accent-process.pptx, current
smartart-accent-process.pptx, reference
This is not not perfect yet, but it’s clearly a large improvement, all text is now readable from the diagram!
All this is available in master (towards LibreOffice 6.3), so you can grab a daily build and try it out right now. :-)