Estimated read time: 2 minutes
Motivation
You can use Draw with a document which has a single page, which more or less acts as a canvas with unlimited size to handle vector graphics. The current limit of such a canvas in size is 600 x 600 cm. (And that can be increased further if there is demand without too large problems.)
Exporting such a document to PDF is a different matter, though. The specification (up to, and
including version 1.5) says that the unit to specify sizes is points, and the maximum allowed value
is 14 400. This means that there is no markup to describe that your page is 600 cm wide. PDF 1.6
(and newer versions) introduce a UserUnit
markup to allow unlimited page size, and now Draw (and
other apps) can use this to describe the increased size.
Another use-case can be a large sheet in Calc, exporting it to a single PDF page, so you can pan around easily on a touch device. If you have enough rows, then getting rid of this limit is helpful to deal with the large page height.
Results so far
How is this implemented?
If you would like to know a bit more about how this works, continue reading… :-)
-
The PDF export already converts from an internal unit (e.g. Draw uses 100th millimeters, Writer uses twips) to PDF’s unit
-
The trick is that now PDF’s unit is no longer points all the time, but we can dynamically switch to a larger unit as needed.
Here is how the PDF markup looks like for a 600 cm wide page:
1 0 obj
<</Type/Page/Parent 4 0 R/Resources 11 0 R/MediaBox[0 0 8503.93700787402 396]
/UserUnit 2/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 2 0 R>>
endobj
Notice how we still avoid values larger than 14 400, but now the UserUnit says that 1 unit means 2 points.
Want to start using this?
You can get a snapshot / demo of Collabora Office and try it out yourself right now: try unstable snapshot. Collabora is a major contributor to LibreOffice and all of this work will be available in TDF’s next release too (7.0).