diff options
-rw-r--r-- | vcl/source/gdi/pdfwriter_impl.cxx | 7 | ||||
-rw-r--r-- | vcl/source/gdi/pdfwriter_impl.hxx | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 9a8a93076d2e..cb7f4cc17027 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -8613,7 +8613,9 @@ void PDFWriterImpl::writeReferenceXObject(ReferenceXObjectEmit& rEmit) return; } - filter::PDFObjectElement* pPage = aPages[0]; + size_t nPageIndex = rEmit.m_nPDFPageIndex >= 0 ? rEmit.m_nPDFPageIndex : 0; + + filter::PDFObjectElement* pPage = aPages[nPageIndex]; if (!pPage) { SAL_WARN("vcl.pdfwriter", "PDFWriterImpl::writeReferenceXObject: no page"); @@ -9205,7 +9207,10 @@ void PDFWriterImpl::createEmbeddedFile(const Graphic& rGraphic, ReferenceXObject rEmit.m_nEmbeddedObject = m_aEmbeddedFiles.back().m_nObject; } else + { + rEmit.m_nPDFPageIndex = rGraphic.getVectorGraphicData()->getPageIndex(); rEmit.m_aPDFData = *pPDFData; + } rEmit.m_nFormObject = createObject(); rEmit.m_aPixelSize = rGraphic.GetPrefSize(); diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx index 71de229f2c41..e775fc92a4af 100644 --- a/vcl/source/gdi/pdfwriter_impl.hxx +++ b/vcl/source/gdi/pdfwriter_impl.hxx @@ -188,11 +188,13 @@ struct ReferenceXObjectEmit Size m_aPixelSize; /// PDF data from the graphic object, if not writing a reference XObject. std::vector<sal_Int8> m_aPDFData; + sal_Int32 m_nPDFPageIndex; ReferenceXObjectEmit() : m_nFormObject(0), m_nEmbeddedObject(0), - m_nBitmapObject(0) + m_nBitmapObject(0), + m_nPDFPageIndex(-1) { } |