summaryrefslogtreecommitdiff
path: root/vcl/qa
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-04-17 17:28:58 +0200
committerMiklos Vajna <vmiklos@collabora.com>2020-05-05 10:23:32 +0200
commit969bafd6a41b73608396e608df998aa425a5d81a (patch)
treea8b0056008fddb30145ca7ed5ce28d35c1a85fae /vcl/qa
parenteaafd7378bd3a06d2d99360667858a3b6106d0de (diff)
Change default PDF version to 1.6 (released in 2004)
We already write markup which is newer than 1.5, but the PDF version was not changed. Fix the one violation I'm aware of. Printing is left unchanged, similar to how commit 99ac4ee05b039166eedfe361fb985682fd92dd13 (Change default PDF version to 1.5, 2018-04-24) updated the default last time. (cherry picked from commit 141e0449fdab89384564659191492b698e4b13d8) Conflicts: filter/source/pdf/pdfexport.cxx include/vcl/pdfwriter.hxx Change-Id: I9598dc46fe7db428bd2eff98bebff8b3c873b4ff
Diffstat (limited to 'vcl/qa')
-rw-r--r--vcl/qa/cppunit/pdfexport/pdfexport.cxx53
1 files changed, 53 insertions, 0 deletions
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index 28b0b693e426..1076128b0775 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -139,6 +139,8 @@ public:
void testPdfImageResourceInlineXObjectRef();
void testLinkWrongPage();
void testLargePage();
+ void testVersion15();
+ void testDefaultVersion();
CPPUNIT_TEST_SUITE(PdfExportTest);
CPPUNIT_TEST(testTdf106059);
@@ -178,6 +180,8 @@ public:
CPPUNIT_TEST(testPdfImageResourceInlineXObjectRef);
CPPUNIT_TEST(testLinkWrongPage);
CPPUNIT_TEST(testLargePage);
+ CPPUNIT_TEST(testVersion15);
+ CPPUNIT_TEST(testDefaultVersion);
CPPUNIT_TEST_SUITE_END();
};
@@ -2006,6 +2010,55 @@ void PdfExportTest::testPdfImageResourceInlineXObjectRef()
CPPUNIT_ASSERT_EQUAL(-90, nRotateDeg);
}
+void PdfExportTest::testDefaultVersion()
+{
+ // Create an empty document.
+ mxComponent = loadFromDesktop("private:factory/swriter");
+ CPPUNIT_ASSERT(mxComponent.is());
+
+ // Save as PDF.
+ uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
+ xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+
+ // Parse the export result.
+ SvFileStream aFile(maTempFile.GetURL(), StreamMode::READ);
+ maMemory.WriteStream(aFile);
+ DocumentHolder pPdfDocument(
+ FPDF_LoadMemDocument(maMemory.GetData(), maMemory.GetSize(), /*password=*/nullptr));
+ CPPUNIT_ASSERT(pPdfDocument.get());
+ int nFileVersion = 0;
+ FPDF_GetFileVersion(pPdfDocument.get(), &nFileVersion);
+ CPPUNIT_ASSERT_EQUAL(16, nFileVersion);
+}
+
+void PdfExportTest::testVersion15()
+{
+ // Create an empty document.
+ mxComponent = loadFromDesktop("private:factory/swriter");
+ CPPUNIT_ASSERT(mxComponent.is());
+
+ // Save as PDF.
+ uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
+ uno::Sequence<beans::PropertyValue> aFilterData(comphelper::InitPropertySequence(
+ { { "SelectPdfVersion", uno::makeAny(static_cast<sal_Int32>(15)) } }));
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
+ aMediaDescriptor["FilterData"] <<= aFilterData;
+ xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+
+ // Parse the export result.
+ SvFileStream aFile(maTempFile.GetURL(), StreamMode::READ);
+ maMemory.WriteStream(aFile);
+ DocumentHolder pPdfDocument(
+ FPDF_LoadMemDocument(maMemory.GetData(), maMemory.GetSize(), /*password=*/nullptr));
+ CPPUNIT_ASSERT(pPdfDocument.get());
+ int nFileVersion = 0;
+ FPDF_GetFileVersion(pPdfDocument.get(), &nFileVersion);
+ CPPUNIT_ASSERT_EQUAL(15, nFileVersion);
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(PdfExportTest);
}