summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sd/qa/unit/data/odp/embedded-pdf.odpbin0 -> 19654 bytes
-rw-r--r--sd/qa/unit/export-tests.cxx14
-rw-r--r--svx/source/svdraw/svdograf.cxx3
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
new file mode 100644
index 000000000000..87aec5a70ef4
--- /dev/null
+++ b/sd/qa/unit/data/odp/embedded-pdf.odp
Binary files differ
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;