sd/qa/unit/data/pdf/textheight1.pdf |binary sd/qa/unit/export-tests.cxx | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-)
New commits: commit dc17329e1722924f592ea5ec1c6355de31dee76a Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Mon Sep 15 17:01:00 2025 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Wed Sep 17 14:19:32 2025 +0200 add test for vertical placement of exploded pdf Change-Id: I05c608a18e5b714a611bc986b88721521456b3d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190985 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sd/qa/unit/data/sample.pdf b/sd/qa/unit/data/pdf/sample.pdf similarity index 100% rename from sd/qa/unit/data/sample.pdf rename to sd/qa/unit/data/pdf/sample.pdf diff --git a/sd/qa/unit/data/pdf/textheight1.pdf b/sd/qa/unit/data/pdf/textheight1.pdf new file mode 100644 index 000000000000..b11b1f76e84f Binary files /dev/null and b/sd/qa/unit/data/pdf/textheight1.pdf differ diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 722d1f4d990d..10e1931027dd 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -76,6 +76,20 @@ public: }; }; + xmlDocUniquePtr parseLayout() const + { + SfxBaseModel* pModel = dynamic_cast<SfxBaseModel*>(mxComponent.get()); + CPPUNIT_ASSERT(pModel); + SfxObjectShell* pShell = pModel->GetObjectShell(); + std::shared_ptr<GDIMetaFile> xMetaFile = pShell->GetPreviewMetaFile(); + MetafileXmlDump dumper; + + xmlDocUniquePtr pXmlDoc = XmlTestTools::dumpAndParse(dumper, *xMetaFile); + CPPUNIT_ASSERT(pXmlDoc); + + return pXmlDoc; + } + protected: uno::Reference<awt::XBitmap> getBitmapFromTable(OUString const& rName); }; @@ -1015,7 +1029,7 @@ CPPUNIT_TEST_FIXTURE(SdExportTest, testExplodedPdf) return; UsePdfium aGuard; - loadFromFile(u"sample.pdf"); + loadFromFile(u"pdf/sample.pdf"); setFilterOptions("{\"DecomposePDF\":{\"type\":\"boolean\",\"value\":\"true\"}}"); saveAndReload(u"OpenDocument Drawing Flat XML"_ustr); @@ -1030,6 +1044,24 @@ CPPUNIT_TEST_FIXTURE(SdExportTest, testExplodedPdf) CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(7), pObjGroup->GetObjCount()); } +CPPUNIT_TEST_FIXTURE(SdExportTest, testExplodedPdfTextPos) +{ + auto pPdfium = vcl::pdf::PDFiumLibrary::get(); + if (!pPdfium) + return; + UsePdfium aGuard; + + loadFromFile(u"pdf/textheight1.pdf"); + + setFilterOptions("{\"DecomposePDF\":{\"type\":\"boolean\",\"value\":\"true\"}}"); + saveAndReload(u"OpenDocument Drawing Flat XML"_ustr); + + xmlDocUniquePtr pXml = parseLayout(); + sal_Int32 y = getXPath(pXml, "//textarray[1]", "y").toInt32(); + // was 3092 before + CPPUNIT_ASSERT_DOUBLES_EQUAL(3055, y, 0); +} + CPPUNIT_TEST_FIXTURE(SdExportTest, testEmbeddedText) { createSdDrawDoc("objectwithtext.fodg");