vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 207 +++++--------------------------- 1 file changed, 38 insertions(+), 169 deletions(-)
New commits: commit 80a69f6780c899df0443abd7e49a68c203378fac Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri Jul 26 13:49:41 2024 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Jul 26 18:57:01 2024 +0200 CppunitTest_vcl_pdfexport2: simplify a bit TaggedPDF is enabled by default since 544d6d781b3c8aa108ced362d708693b5127f3d7 "tdf#39667 Enable tagged PDF by default" Only disable it when needed OTOH, using writer_pdf_Export as a FilterName works when exporting calc/impress/draw documents too Change-Id: I970406b8a87cad937c3023815e4f5caa9b4f7143 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171069 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> Tested-by: Jenkins diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index 0f0d49054d95..2c314d6b886f 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -15,7 +15,6 @@ #include <config_fonts.h> #include <osl/process.h> -#include <com/sun/star/frame/XStorable.hpp> #include <com/sun/star/text/XDocumentIndexesSupplier.hpp> #include <com/sun/star/util/XRefreshable.hpp> #include <com/sun/star/beans/XPropertySet.hpp> @@ -66,25 +65,19 @@ public: } void saveAsPDF(std::u16string_view rFile); - void load(std::u16string_view rFile, vcl::filter::PDFDocument& rDocument, - bool bUseTaggedPDF = true); + void load(std::u16string_view rFile, vcl::filter::PDFDocument& rDocument); }; void PdfExportTest2::saveAsPDF(std::u16string_view rFile) { // Import the bugdoc and export as PDF. loadFromFile(rFile); - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); } -void PdfExportTest2::load(std::u16string_view rFile, vcl::filter::PDFDocument& rDocument, - bool bUseTaggedPDF) +void PdfExportTest2::load(std::u16string_view rFile, vcl::filter::PDFDocument& rDocument) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - uno::Sequence<beans::PropertyValue> aFilterData( - comphelper::InitPropertySequence({ { "UseTaggedPDF", uno::Any(bUseTaggedPDF) } })); - aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; saveAsPDF(rFile); // Parse the export result. @@ -316,7 +309,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTocLink) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testReduceSmallImage) { // Load the Writer document. - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"reduce-small-image.fodt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount()); @@ -341,7 +333,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testReduceSmallImage) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf114256) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"calc_pdf_Export"_ustr; saveAsPDF(u"tdf114256.ods"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount()); @@ -356,7 +347,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf114256) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf150931) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"calc_pdf_Export"_ustr; saveAsPDF(u"tdf150931.ods"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount()); @@ -406,7 +396,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf147027) return; // Load the Calc document. - aMediaDescriptor[u"FilterName"_ustr] <<= u"calc_pdf_Export"_ustr; saveAsPDF(u"tdf147027.ods"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount()); @@ -422,7 +411,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf147027) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135346) { // Load the Calc document. - aMediaDescriptor[u"FilterName"_ustr] <<= u"calc_pdf_Export"_ustr; saveAsPDF(u"tdf135346.ods"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount()); @@ -437,7 +425,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135346) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf147164) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"impress_pdf_Export"_ustr; saveAsPDF(u"tdf147164.odp"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); CPPUNIT_ASSERT_EQUAL(2, pPdfDocument->getPageCount()); @@ -502,7 +489,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testReduceImage) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testLinkWrongPage) { // Import the bugdoc and export as PDF. - aMediaDescriptor[u"FilterName"_ustr] <<= u"impress_pdf_Export"_ustr; saveAsPDF(u"link-wrong-page.odp"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -530,7 +516,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testLinkWrongPagePartial) uno::Sequence<beans::PropertyValue> aFilterData = { comphelper::makePropertyValue(u"PageRange"_ustr, u"2-3"_ustr), }; - aMediaDescriptor[u"FilterName"_ustr] <<= u"draw_pdf_Export"_ustr; aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; saveAsPDF(u"link-wrong-page-partial.odg"); @@ -551,7 +536,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPageRange) { // Given a document with 3 pages: // When exporting that document to PDF, skipping the first page: - aMediaDescriptor[u"FilterName"_ustr] <<= u"draw_pdf_Export"_ustr; aMediaDescriptor[u"FilterOptions"_ustr] <<= u"{\"PageRange\":{\"type\":\"string\",\"value\":\"2-\"}}"_ustr; saveAsPDF(u"link-wrong-page-partial.odg"); @@ -568,7 +552,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPageRange) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testLargePage) { // Import the bugdoc and export as PDF. - aMediaDescriptor[u"FilterName"_ustr] <<= u"draw_pdf_Export"_ustr; saveAsPDF(u"6m-wide.odg"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -603,9 +586,8 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfImageResourceInlineXObjectRef) xText->insertTextContent(xCursor->getStart(), xTextContent, /*bAbsorb=*/false); // Save as PDF. - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -654,9 +636,8 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testDefaultVersion) mxComponent = loadFromDesktop(u"private:factory/swriter"_ustr); // Save as PDF. - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -670,12 +651,11 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testVersion15) mxComponent = loadFromDesktop(u"private:factory/swriter"_ustr); // Save as PDF. - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); uno::Sequence<beans::PropertyValue> aFilterData(comphelper::InitPropertySequence( { { "SelectPdfVersion", uno::Any(static_cast<sal_Int32>(15)) } })); aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -823,7 +803,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testMultiPagePDF) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFormFontName) { // Import the bugdoc and export as PDF. - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"form-font-name.odt"); // Parse the export result with pdfium. @@ -1197,19 +1176,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testReexportDocumentWithComplexResources) // when we enable PDF/UA support. CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfUaMetadata) { - // Import a basic document (document doesn't really matter) - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"BrownFoxLazyDog.odt"); - // Parse the export result. vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"BrownFoxLazyDog.odt", aDocument); auto* pCatalog = aDocument.GetCatalog(); CPPUNIT_ASSERT(pCatalog); @@ -1276,18 +1249,14 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfUaMetadata) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf139736) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) }, { "SelectPdfVersion", uno::Any(sal_Int32(17)) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"tdf139736-1.odt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"tdf139736-1.odt", aDocument); std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); CPPUNIT_ASSERT_EQUAL(size_t(1), aPages.size()); @@ -1382,19 +1351,14 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf139736) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152231) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) }, { "ExportNotesInMargin", uno::Any(true) }, { "SelectPdfVersion", uno::Any(sal_Int32(17)) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"tdf152231.fodt"); - vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"tdf152231.fodt", aDocument); std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); CPPUNIT_ASSERT_EQUAL(size_t(1), aPages.size()); @@ -1502,8 +1466,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152235) { "SelectPdfVersion", uno::Any(sal_Int32(17)) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; mxComponent = loadFromDesktop(u"private:factory/swriter"_ustr); - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); vcl::filter::PDFDocument aDocument; SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -1582,17 +1545,12 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152235) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf149140) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"TableTH_test_LibreOfficeWriter7.3.3_HeaderRow-HeadersInTopRow.fodt"); - vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"TableTH_test_LibreOfficeWriter7.3.3_HeaderRow-HeadersInTopRow.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -1640,17 +1598,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf149140) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testNestedSection) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"nestedsection.fodt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"nestedsection.fodt", aDocument); // the assert needs 2 follows to reproduce => 3 pages std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -1785,17 +1739,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testNestedSection) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157817) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"SimpleTOC.fodt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"SimpleTOC.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -1958,17 +1908,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157817) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135638) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"image-shape.fodt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"image-shape.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -2052,17 +1998,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135638) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157703) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"LO_Lbl_Lbody_bug_report.fodt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"LO_Lbl_Lbody_bug_report.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -2130,17 +2072,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157703) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testSpans) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"spanlist.fodt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"spanlist.fodt", aDocument); // The document has two pages. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -2646,8 +2584,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testSpans) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157182) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - uno::Sequence<beans::PropertyValue> aFilterData(comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) }, // only happens with PDF/A-1 @@ -2662,17 +2598,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157182) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf57423) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"Description PDF Export test .odt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"Description PDF Export test .odt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -2765,17 +2697,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf57423) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154982) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"tdf154982.odt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"tdf154982.odt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -2843,17 +2771,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154982) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157397) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"PDF_export_with_formcontrol.fodt"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"PDF_export_with_formcontrol.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -3172,17 +3096,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157397) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135192) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"tdf135192-1.fodp"); vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"tdf135192-1.fodp", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -3303,17 +3223,12 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135192) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154955) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"grouped-shape.fodt"); - vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"grouped-shape.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -3436,18 +3351,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154955) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf155190) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"tdf155190.odt"); - vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"tdf155190.odt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -3525,18 +3435,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf155190) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testMediaShapeAnnot) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"vid.odt"); - vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"vid.odt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -3664,18 +3569,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testMediaShapeAnnot) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFlyFrameHyperlinkAnnot) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"image-hyperlink-alttext.fodt"); - vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"image-hyperlink-alttext.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -3797,18 +3697,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFlyFrameHyperlinkAnnot) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFormControlAnnot) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - saveAsPDF(u"formcontrol.fodt"); - vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"formcontrol.fodt", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -3934,14 +3829,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf142129) // update linked section dispatchCommand(mxComponent, u".uno:UpdateAllLinks"_ustr, {}); - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; // Enable Outlines export uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "ExportBookmarks", uno::Any(true) } })); aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. vcl::filter::PDFDocument aDocument; @@ -4032,9 +3926,8 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfImageRotate180) xText->insertTextContent(xCursor->getStart(), xTextContent, /*bAbsorb=*/false); // Save as PDF. - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -4077,7 +3970,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf144222) { // Assume Windows has the font for U+4E2D #ifdef _WIN32 - aMediaDescriptor["FilterName"] <<= OUString("calc_pdf_Export"); saveAsPDF(u"tdf144222.ods"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -4117,7 +4009,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf144222) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf145873) { // Import the bugdoc and export as PDF. - aMediaDescriptor[u"FilterName"_ustr] <<= u"impress_pdf_Export"_ustr; saveAsPDF(u"tdf145873.pptx"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -4151,8 +4042,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf145873) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfImageHyperlink) { // Given a Draw file, containing a PDF image, which has a hyperlink in it: - aMediaDescriptor[u"FilterName"_ustr] <<= u"draw_pdf_Export"_ustr; - // When saving to PDF: saveAsPDF(u"pdf-image-hyperlink.odg"); @@ -4281,9 +4170,8 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testURIs) xCursorProps->setPropertyValue(u"HyperLinkURL"_ustr, uno::Any(URIs[i].in)); // Save as PDF. - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Use the filter rather than the pdfium route, as per the tdf105093 test, it's // easier to parse the annotations @@ -4331,8 +4219,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testURIs) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfImageAnnots) { // Given a document with a PDF image that has 2 comments (popup, text) and a hyperlink: - aMediaDescriptor[u"FilterName"_ustr] <<= u"draw_pdf_Export"_ustr; - // When saving to PDF: saveAsPDF(u"pdf-image-annots.odg"); @@ -4365,14 +4251,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfImageEncryption) xText->insertTextContent(xCursor->getStart(), xTextContent, /*bAbsorb=*/false); // When saving as encrypted PDF: - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; uno::Sequence<beans::PropertyValue> aFilterData = { comphelper::makePropertyValue(u"EncryptFile"_ustr, true), comphelper::makePropertyValue(u"DocumentOpenPassword"_ustr, u"secret"_ustr), }; aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Then make sure that the image is not lost: std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport("secret"_ostr); @@ -4398,8 +4283,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testBitmapScaledown) return; // Given a document with an upscaled and rotated barcode bitmap in it: - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // When saving as PDF: saveAsPDF(u"bitmap-scaledown.odt"); @@ -4430,7 +4313,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testBitmapScaledown) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf139627) { #if HAVE_MORE_FONTS - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"justified-arabic-kashida.odt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -4550,10 +4432,14 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testRexportFilterSingletonArray) osl_clearEnvironment(u"LO_IMPORT_USE_PDFIUM"_ustr.pData); }); + // the test fails with tagged PDF enabled + uno::Sequence<beans::PropertyValue> aFilterData( + comphelper::InitPropertySequence({ { "UseTaggedPDF", uno::Any(false) } })); + aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; + // Load the PDF and save as PDF vcl::filter::PDFDocument aDocument; - // Loading fails with tagged PDF enabled - load(u"ref-to-kids.pdf", aDocument, false); + load(u"ref-to-kids.pdf", aDocument); std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); CPPUNIT_ASSERT_EQUAL(size_t(5), aPages.size()); @@ -4700,13 +4586,8 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testRexportResourceItemReference) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152246) { // Import the bugdoc and export as PDF. - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - saveAsPDF(u"content-control-rtl.docx"); - - // Parse the export result. vcl::filter::PDFDocument aDocument; - SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); - CPPUNIT_ASSERT(aDocument.Read(aStream)); + load(u"content-control-rtl.docx", aDocument); // The document has one page. std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); @@ -4794,7 +4675,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf155161) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf48707_1) { // Import the bugdoc and export as PDF. - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf48707-1.fodt"); // Parse the export result with pdfium. @@ -4825,7 +4705,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf48707_1) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf48707_2) { // Import the bugdoc and export as PDF. - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf48707-2.fodt"); // Parse the export result with pdfium. @@ -4858,7 +4737,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf48707_2) CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf156528) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"wide_page1.fodt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -4926,8 +4804,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf113866) // Export to pdf aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); - xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); + saveWithParams(aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result with pdfium. std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -4957,8 +4834,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf113866) // Form controls coordinates scrambled when exporting to pdf with unchecked form creation in Writer CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf159817) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; - // Enable PDF/UA uno::Sequence<beans::PropertyValue> aFilterData( comphelper::InitPropertySequence({ { "ExportFormFields", uno::Any(false) } })); @@ -5012,7 +4887,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf159817) // Tests that kerning is correctly applied across color changes CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf61444) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf61444.odt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -5061,7 +4935,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf61444) // tdf#124116 - Tests that track-changes inside a grapheme cluster does not break positioning CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf124116TrackUntrack) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf124116-hebrew-track-untrack.odt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -5118,7 +4991,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf124116TrackUntrack) // tdf#134226 - Tests that shaping is not broken by invisible spans CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf134226) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf134226-shadda-in-hidden-span.fodt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -5176,7 +5048,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf134226) // tdf#71956 - Tests that glyphs can be individually styled CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf71956) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf71956-styled-diacritics.fodt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -5240,7 +5111,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf71956) // tdf#101686 - Verifies that drawinglayer clears RTL flags while drawing Writer text boxes CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf101686) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf101686.fodt"); std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); @@ -5347,7 +5217,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testRexportXnViewColorspace) // tdf#157390 - Verifies metrics are correct for PDF export mixing horizontal and vertical CJK CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157390) { - aMediaDescriptor[u"FilterName"_ustr] <<= u"writer_pdf_Export"_ustr; saveAsPDF(u"tdf157390-overlapping-kanji.fodt"); auto pPdfDocument = parsePDFExport();