diff options
-rw-r--r-- | sd/qa/unit/data/odp/embedded-pdf.odp | bin | 0 -> 19654 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests.cxx | 14 | ||||
-rw-r--r-- | svx/source/svdraw/svdograf.cxx | 3 |
3 files changed, 17 insertions, 0 deletions
diff --git a/sd/qa/unit/data/odp/embedded-pdf.odp b/sd/qa/unit/data/odp/embedded-pdf.odp Binary files differnew file mode 100644 index 000000000000..87aec5a70ef4 --- /dev/null +++ b/sd/qa/unit/data/odp/embedded-pdf.odp diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 0dd47e5c4ff3..a2c3be24bd97 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -157,6 +157,7 @@ public: void testTdf80224(); void testTdf92527(); void testTdf99224(); + void testEmbeddedPdf(); CPPUNIT_TEST_SUITE(SdExportTest); CPPUNIT_TEST(testFdo90607); @@ -212,6 +213,7 @@ public: CPPUNIT_TEST(testExtFileField); CPPUNIT_TEST(testAuthorField); CPPUNIT_TEST(testTdf99224); + CPPUNIT_TEST(testEmbeddedPdf); CPPUNIT_TEST_SUITE_END(); @@ -1722,6 +1724,18 @@ void SdExportTest::testTdf99224() xShell->DoClose(); } +void SdExportTest::testEmbeddedPdf() +{ + sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/embedded-pdf.odp"), ODP); + xShell = saveAndReload(xShell, ODP); + uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell); + uno::Reference<beans::XPropertySet> xShape(xPage->getByIndex(0), uno::UNO_QUERY); + OUString aReplacementGraphicURL; + xShape->getPropertyValue("ReplacementGraphicURL") >>= aReplacementGraphicURL; + CPPUNIT_ASSERT(!aReplacementGraphicURL.isEmpty()); + xShell->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 93a662ba487e..2dc637106cb2 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -443,6 +443,9 @@ const GraphicObject* SdrGrafObj::GetReplacementGraphicObject() const { const_cast< SdrGrafObj* >(this)->mpReplacementGraphic = new GraphicObject(rSvgDataPtr->getReplacement()); } + else if (pGraphic->GetGraphic().getPdfData().hasElements()) + // Replacement graphic for metafile + PDF is just the metafile. + const_cast<SdrGrafObj*>(this)->mpReplacementGraphic = new GraphicObject(pGraphic->GetGraphic().GetGDIMetaFile()); } return mpReplacementGraphic; |