filter/source/pdf/pdfexport.cxx                            |    3 ++
 include/vcl/pdfwriter.hxx                                  |    4 +--
 officecfg/registry/schema/org/openoffice/Office/Common.xcs |    5 +++
 vcl/source/gdi/pdfwriter_impl.cxx                          |   17 +++++++++----
 4 files changed, 22 insertions(+), 7 deletions(-)

New commits:
commit a3ba39412e0d0c8ecfc03e41f1cbc27d3a53705e
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Fri Mar 3 18:31:33 2023 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Thu Mar 9 21:01:32 2023 +0000

    vcl,filter,officecfg: PDF export: add PDFVersion::PDF_1_7
    
    Also, PDF_A_2 and PDF_A_3 are based on PDF 1.7, claims Wikipedia.
    
    Change-Id: Ia0afd9a38859953db945a5d1568f171f3d500b09
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148386
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 4e5489297cb5cfb8d2387d57da7cd92ae1a3ebb1)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148411
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
index 338463f184f8..8ae9e6fee2b8 100644
--- a/filter/source/pdf/pdfexport.cxx
+++ b/filter/source/pdf/pdfexport.cxx
@@ -702,6 +702,9 @@ bool PDFExport::Export( const OUString& rFile, const 
Sequence< PropertyValue >&
             case 16:
                 aContext.Version = vcl::PDFWriter::PDFVersion::PDF_1_6;
                 break;
+            case 17:
+                aContext.Version = vcl::PDFWriter::PDFVersion::PDF_1_7;
+                break;
             }
 
             // PDF/UA support
diff --git a/include/vcl/pdfwriter.hxx b/include/vcl/pdfwriter.hxx
index 8aeade99f504..d0eae49ce740 100644
--- a/include/vcl/pdfwriter.hxx
+++ b/include/vcl/pdfwriter.hxx
@@ -105,8 +105,8 @@ public:
 
     enum class Orientation { Portrait, Inherit };
 
-    // in case the below enum is added PDF_1_6 PDF_1_7, please add them just 
after PDF_1_5
-    enum class PDFVersion { PDF_1_2, PDF_1_3, PDF_1_4, PDF_1_5, PDF_1_6, 
PDF_A_1, PDF_A_2, PDF_A_3 };//i59651, PDF/A-1b & -1a, only -1b implemented for 
now
+    // in case the below enum is added PDF_2_0, please add just after PDF_1_7
+    enum class PDFVersion { PDF_1_2, PDF_1_3, PDF_1_4, PDF_1_5, PDF_1_6, 
PDF_1_7, PDF_A_1, PDF_A_2, PDF_A_3 };//i59651, PDF/A-1b & -1a, only -1b 
implemented for now
     // for the meaning of DestAreaType please look at PDF Reference Manual
     // version 1.4 section 8.2.1, page 475
     enum class DestAreaType { XYZ, FitRectangle };
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 24716e1992d8..cc4519ffd564 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -5327,6 +5327,11 @@
                   <desc>PDF 1.6</desc>
                 </info>
               </enumeration>
+              <enumeration oor:value="17">
+                <info>
+                  <desc>PDF 1.7</desc>
+                </info>
+              </enumeration>
               <enumeration oor:value="1">
                 <info>
                   <desc>PDF/A-1 (ISO 19005-1:2005)</desc>
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx 
b/vcl/source/gdi/pdfwriter_impl.cxx
index d95a74aeb6af..f7e7074fd954 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -627,11 +627,15 @@ PDFPage::PDFPage( PDFWriterImpl* pWriter, double 
nPageWidth, double nPageHeight,
 
     switch (m_pWriter->m_aContext.Version)
     {
-        case PDFWriter::PDFVersion::PDF_1_6:
+        // 1.6 or later
+        default:
             m_nUserUnit = std::ceil(std::max(nPageWidth, nPageHeight) / 
14400.0);
             break;
-        default:
-            // 1.2 -> 1.5
+        case PDFWriter::PDFVersion::PDF_1_2:
+        case PDFWriter::PDFVersion::PDF_1_3:
+        case PDFWriter::PDFVersion::PDF_1_4:
+        case PDFWriter::PDFVersion::PDF_1_5:
+        case PDFWriter::PDFVersion::PDF_A_1:
             break;
     }
 }
@@ -1298,6 +1302,9 @@ PDFWriterImpl::PDFWriterImpl( const 
PDFWriter::PDFWriterContext& rContext,
         case PDFWriter::PDFVersion::PDF_1_5: aBuffer.append( "1.5" );break;
         default:
         case PDFWriter::PDFVersion::PDF_1_6: aBuffer.append( "1.6" );break;
+        case PDFWriter::PDFVersion::PDF_A_2:
+        case PDFWriter::PDFVersion::PDF_A_3:
+        case PDFWriter::PDFVersion::PDF_1_7: aBuffer.append( "1.7" );break;
     }
     // append something binary as comment (suggested in PDF Reference)
     aBuffer.append( "\n%\303\244\303\274\303\266\303\237\n" );
@@ -1317,11 +1324,11 @@ PDFWriterImpl::PDFWriterImpl( const 
PDFWriter::PDFWriterContext& rContext,
 
     m_bIsPDF_A2 = (m_aContext.Version == PDFWriter::PDFVersion::PDF_A_2);
     if( m_bIsPDF_A2 )
-        m_aContext.Version = PDFWriter::PDFVersion::PDF_1_6; //we could even 
use 1.7 features
+        m_aContext.Version = PDFWriter::PDFVersion::PDF_1_7;
 
     m_bIsPDF_A3 = (m_aContext.Version == PDFWriter::PDFVersion::PDF_A_3);
     if( m_bIsPDF_A3 )
-        m_aContext.Version = PDFWriter::PDFVersion::PDF_1_6; //we could even 
use 1.7 features
+        m_aContext.Version = PDFWriter::PDFVersion::PDF_1_7;
 
     if (m_aContext.UniversalAccessibilityCompliance)
     {

Reply via email to