office-gobmx/filter
Miklos Vajna 0a89d65e6b tdf#162782 SVG export: fix handling of semi-transparent text inside a list
Open the bugdoc, try to export as SVG, results in an assertion failure
in debug builds, the produced XML would not be well-formed.

Commit 666f252457 (SVG export: fix lost
semi-transparent text on shapes, 2020-07-17) added support for text
opacity on shapes, but this assumes that the entire shape has the same
opacity, while this shape has 3 paragraphs and only the middle one has
an opacity set, at a text span level. Additionally, it's a bullet, so
the text (for the bullet, has no transparency set) starts before the
transparency metafile action would start. This means that the existing
logic won't realize that opacity should be exported using the
fill-opacity attribute instead of a <g> element.

Fix the problem by checking for the isTextShapeStarted() case in
SVGActionWriter::ImplWriteMask(): if we're already inside text, then we
always want to map a transparency mask to the fill-opacity attribute
instead of a <g> element.

Leave the shape-level code at SVGTextWriter::setTextPosition()
unchanged, that continues to deal with per-shape text opacity.

Change-Id: I8cb0ca2e839fba911a75e1925cf79145f69af151
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172856
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-09-04 16:07:34 +02:00
..
inc
qa tdf#162782 SVG export: fix handling of semi-transparent text inside a list 2024-09-04 16:07:34 +02:00
source tdf#162782 SVG export: fix handling of semi-transparent text inside a list 2024-09-04 16:07:34 +02:00
uiconfig/ui
AllLangMoTarget_flt.mk
Configuration_filter.mk
CppunitTest_filter_dialogs_test.mk
CppunitTest_filter_msfilter.mk
CppunitTest_filter_pdf.mk
CppunitTest_filter_priority.mk
CppunitTest_filter_svg.mk
CppunitTest_filter_textfilterdetect.mk
CppunitTest_filter_xslt.mk
CustomTarget_svg.mk
IwyuFilter_filter.yaml
JunitTest_filter_complex.mk
Library_filterconfig.mk
Library_graphicfilter.mk
Library_icg.mk
Library_msfilter.mk
Library_odfflatxml.mk
Library_pdffilter.mk
Library_storagefd.mk
Library_svgfilter.mk
Library_t602filter.mk
Library_textfd.mk
Library_xmlfa.mk
Library_xmlfd.mk
Library_xsltdlg.mk
Library_xsltfilter.mk
Makefile
Module_filter.mk
Package_docbook.mk
Package_xhtml.mk
Package_xslt.mk
README.md
UIConfig_filter.mk

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.