diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-03-22 16:30:35 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-03-22 16:52:14 +0000 |
commit | 5f4826d89bfa1398b16fc85cf593ff58ce5e36a9 (patch) | |
tree | 9e3884d4a3a7265ca094f1d20ca474368388de0c /vcl | |
parent | 4c88eddef02a8ebede6e7aba9c28607bb11b9615 (diff) |
tdf#106693 vcl PDF export: initial UseReferenceXObject option
It's still on, but in experimental mode start work towards the ability
to not use that markup.
Change-Id: Idf11c0e0a3c61ad93af331346ec7107304f6dc0f
Reviewed-on: https://gerrit.libreoffice.org/35538
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/gdi/pdfwriter_impl.cxx | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 334cccaeda0f..160829fa9566 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -10859,7 +10859,7 @@ void PDFWriterImpl::writeJPG( JPGEmit& rObject ) void PDFWriterImpl::writeReferenceXObject(ReferenceXObjectEmit& rEmit) { - if (rEmit.m_nFormObject <= 0 || rEmit.m_nEmbeddedObject <= 0) + if (rEmit.m_nFormObject <= 0) return; OStringBuffer aLine; @@ -10899,10 +10899,13 @@ void PDFWriterImpl::writeReferenceXObject(ReferenceXObjectEmit& rEmit) aLine.append(aSize.Height()); aLine.append(" ]\n"); - // Write the reference dictionary. - aLine.append("/Ref<< /F << /Type /Filespec /F (<embedded file>) /EF << /F "); - aLine.append(rEmit.m_nEmbeddedObject); - aLine.append(" 0 R >> >> /Page 0 >>\n"); + if (m_aContext.UseReferenceXObject && rEmit.m_nEmbeddedObject > 0) + { + // Write the reference dictionary. + aLine.append("/Ref<< /F << /Type /Filespec /F (<embedded file>) /EF << /F "); + aLine.append(rEmit.m_nEmbeddedObject); + aLine.append(" 0 R >> >> /Page 0 >>\n"); + } aLine.append("/Length "); @@ -11251,13 +11254,17 @@ void PDFWriterImpl::createEmbeddedFile(const Graphic& rGraphic, ReferenceXObject if (!rGraphic.getPdfData().hasElements()) return; - // Store the original PDF data as an embedded file. - m_aEmbeddedFiles.push_back(PDFEmbeddedFile()); - m_aEmbeddedFiles.back().m_nObject = createObject(); - m_aEmbeddedFiles.back().m_aData = rGraphic.getPdfData(); + if (m_aContext.UseReferenceXObject) + { + // Store the original PDF data as an embedded file. + m_aEmbeddedFiles.push_back(PDFEmbeddedFile()); + m_aEmbeddedFiles.back().m_nObject = createObject(); + m_aEmbeddedFiles.back().m_aData = rGraphic.getPdfData(); + + rEmit.m_nEmbeddedObject = m_aEmbeddedFiles.back().m_nObject; + } rEmit.m_nFormObject = createObject(); - rEmit.m_nEmbeddedObject = m_aEmbeddedFiles.back().m_nObject; rEmit.m_aPixelSize = rGraphic.GetBitmap().GetPrefSize(); } |