summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-03-22 16:30:35 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-03-22 16:52:14 +0000
commit5f4826d89bfa1398b16fc85cf593ff58ce5e36a9 (patch)
tree9e3884d4a3a7265ca094f1d20ca474368388de0c /vcl
parent4c88eddef02a8ebede6e7aba9c28607bb11b9615 (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.cxx27
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();
}