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

Reply via email to