drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx | 43 +++++++++++++ 1 file changed, 43 insertions(+)
New commits: commit 3d5e3cb4c033cc7b03c18851d56ca529f025038b Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Thu Nov 17 20:47:36 2022 +0100 Commit: Michael Stahl <michael.st...@allotropia.de> CommitDate: Tue Nov 22 13:04:21 2022 +0100 tdf#135638 drawinglayer: PDF/UA export: add BBox to Figures PAC3 complains: "Figure" element on a single page without bounding box Also add Placement while at it. Change-Id: I3db11f5b38c46bc274e496c7ce6f0cde9dd11b01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142902 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx index eb5f32e0c678..3af04ee0c335 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx @@ -2371,6 +2371,49 @@ void VclMetafileProcessor2D::processStructureTagPrimitive2D( if (!rStructureTagCandidate.isBackground()) { mpPDFExtOutDevData->BeginStructureElement(rTagElement); + switch (rTagElement) + { + case vcl::PDFWriter::H1: + case vcl::PDFWriter::H2: + case vcl::PDFWriter::H3: + case vcl::PDFWriter::H4: + case vcl::PDFWriter::H5: + case vcl::PDFWriter::H6: + case vcl::PDFWriter::Paragraph: + case vcl::PDFWriter::Heading: + case vcl::PDFWriter::Caption: + case vcl::PDFWriter::BlockQuote: + case vcl::PDFWriter::Table: + case vcl::PDFWriter::TableRow: + case vcl::PDFWriter::Formula: + case vcl::PDFWriter::Figure: + mpPDFExtOutDevData->SetStructureAttribute(vcl::PDFWriter::Placement, + vcl::PDFWriter::Block); + break; + case vcl::PDFWriter::TableData: + case vcl::PDFWriter::TableHeader: + mpPDFExtOutDevData->SetStructureAttribute(vcl::PDFWriter::Placement, + vcl::PDFWriter::Inline); + break; + default: + break; + } + switch (rTagElement) + { + case vcl::PDFWriter::Table: + case vcl::PDFWriter::Formula: + case vcl::PDFWriter::Figure: + { + auto const range(rStructureTagCandidate.getB2DRange(getViewInformation2D())); + tools::Rectangle const aLogicRect( + basegfx::fround(range.getMinX()), basegfx::fround(range.getMinY()), + basegfx::fround(range.getMaxX()), basegfx::fround(range.getMaxY())); + mpPDFExtOutDevData->SetStructureBoundingBox(aLogicRect); + break; + } + default: + break; + } } // background object else