Files
odfstudio/filter
Miklos Vajna 574db5efa9 Related: tdf#54053 PDF export: add UNO API to customize the watermark rotation
The watermark direction is currently either 0 degrees for landscape
pages or 270 degrees for portrait pages.

The problem is many people expect 45 degrees rotation angle or some
custom angle in general, and we provide no way to control it.

Fix the problem by adding a new "WatermarkRotateAngle" PDF export filter
option to specify the rotation angle explicitly. Note that the watermark
text is still centered, and the text size is decreased to still fit the page
boundaries. To keep things simple, do this shrinking by going with a
size that matches the shorter dimension of the page, instead of some
more complex iterative approach.

Example cmdline usage:

soffice --convert-to pdf:writer_pdf_Export:'{"Watermark":{"type":"string","value":"draft"}, "WatermarkRotateAngle":{"type":"long","value":"450"}}' test.odt

Change-Id: I1fee14c333e68c92cf4c65ec100e04dcf024f907
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143229
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2022-11-24 16:30:31 +01:00
..
…

LibreOffice Filters

Filter registration and some simple filters (also descriptions).

Desperate splitting of code into small shared libraries for historical reasons presumably (OS/2 and Windows 3.x). The libraries produced from the code in each subdirectory of filter/source/graphicfilter are graphic format import or export filters. But they don't have uniform API. Some have either a GraphicImport or GraphicExport entry point, and are loaded and used in a uniform fashion from code in svtools/source/filter/filter.cxx. Others have different API and are loaded from other places. For instance icgm has ImportCGM, and is loaded and used by sd/source/filter/cgm/sdcgmfilter.cxx (!). Svgreader is used for "File -> Open" and then to choose the svg file. For "Insert -> Picture -> From File", see svgio/source/svgreader directory.

Filter Configuration

The filter configuration consists of two parts, the type definition in filter/source/config/fragments/types/ and the actual filter definition in filter/source/config/fragments/filters/.

Each file type e.g. text file should be represented by exactly one type definition. This type can then be referenced by several different filters, e.g. calc text, writer text.