filter/source/pdf/impdialog.cxx |   11 +++++++++++
 filter/source/pdf/impdialog.hxx |    1 +
 filter/source/pdf/pdfexport.cxx |    2 ++
 3 files changed, 14 insertions(+)

New commits:
commit 811f1caca0c8110db7e89a67af447754198a379e
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Tue Mar 21 12:55:11 2023 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Sat Mar 25 19:42:45 2023 +0000

    filter: PDF export dialog: always disable ReferenceXObject for PDF/UA
    
      7.20 XObjects
      Reference XObjects, as noted in ISO 32000-1:2008, 8.10.4, shall
      not be used in conforming PDF/UA files.
    
    Change-Id: I62a4b6b76a6cb1d14d4fd39fad90ec0323a481c8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149261
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 089b9e21c7210df3e5ee312a06131ce410989cf7)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149303
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx
index c6e1538468f5..5e92d3c3260b 100644
--- a/filter/source/pdf/impdialog.cxx
+++ b/filter/source/pdf/impdialog.cxx
@@ -761,6 +761,7 @@ void ImpPDFTabGeneralPage::GetFilterConfigItem( 
ImpPDFTabDialog* pParent )
     if (!bIsPDFUA)
     {
         pParent->mbExportBookmarksUserSelection = pParent->mbExportBookmarks;
+        pParent->mbUseReferenceXObjectUserSelection = 
pParent->mbUseReferenceXObject;
     }
 
     pParent->mbUseTaggedPDFUserSelection = mbUseTaggedPDFUserSelection;
@@ -908,12 +909,22 @@ IMPL_LINK_NOARG(ImpPDFTabGeneralPage, 
TogglePDFVersionOrUniversalAccessibilityHa
             }
             mxCbExportBookmarks->set_active(true);
         }
+        if (mxCbUseReferenceXObject->get_sensitive())
+        {
+            if (mpParent)
+            {
+                mpParent->mbUseReferenceXObjectUserSelection = 
mxCbUseReferenceXObject->get_active();
+            }
+            mxCbUseReferenceXObject->set_active(false);
+        }
     }
     else if (mpParent)
     {
         
mxCbExportBookmarks->set_active(mpParent->mbExportBookmarksUserSelection);
+        
mxCbUseReferenceXObject->set_active(mpParent->mbUseReferenceXObjectUserSelection);
     }
     mxCbExportBookmarks->set_sensitive(!bIsPDFUA);
+    mxCbUseReferenceXObject->set_sensitive(!bIsPDFUA);
 
     ImpPDFTabOpnFtrPage *const pOpenPage(mpParent ? mpParent->getOpenPage() : 
nullptr);
     if (pOpenPage)
diff --git a/filter/source/pdf/impdialog.hxx b/filter/source/pdf/impdialog.hxx
index 577821104800..52500a18891b 100644
--- a/filter/source/pdf/impdialog.hxx
+++ b/filter/source/pdf/impdialog.hxx
@@ -86,6 +86,7 @@ class ImpPDFTabDialog final : public SfxTabDialogController
     bool                        mbExportNotesInMargin;
     bool                        mbViewPDF;
     bool                        mbUseReferenceXObject;
+    bool                        mbUseReferenceXObjectUserSelection = false;
     bool                        mbExportNotesPages;
     bool                        mbExportOnlyNotesPages;
     bool                        mbUseTransitionEffects;
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
index f9e495f9254c..b886aa5d0f43 100644
--- a/filter/source/pdf/pdfexport.cxx
+++ b/filter/source/pdf/pdfexport.cxx
@@ -715,6 +715,8 @@ bool PDFExport::Export( const OUString& rFile, const 
Sequence< PropertyValue >&
                 mbUseTaggedPDF = true;
                 // ISO 14289-1:2014, Clause: 7.16
                 mbCanExtractForAccessibility = true;
+                // ISO 14289-1:2014, Clause: 7.20
+                mbUseReferenceXObject = false;
             }
 
             // copy in context the values default in the constructor or set by 
the FilterData sequence of properties

Reply via email to