[Libreoffice-commits] core.git: Branch 'feature/cib_contract57d' - vcl/qa vcl/source
Armin Le Grand (Allotropia) (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jul 6 09:06:17 UTC 2021
vcl/qa/cppunit/pdfexport/pdfexport.cxx | 26 +++++++++++++++++++-------
vcl/source/gdi/pdfwriter_impl.cxx | 8 ++++++--
2 files changed, 25 insertions(+), 9 deletions(-)
New commits:
commit 899a52b236b81a94367ec8bafdff891a67d818aa
Author: Armin Le Grand (Allotropia) <armin.le.grand.extern at allotropia.de>
AuthorDate: Tue Jul 6 10:26:09 2021 +0200
Commit: Armin Le Grand (Allotropia) <armin.le.grand.extern at allotropia.de>
CommitDate: Tue Jul 6 10:26:09 2021 +0200
Disable PDF-to-PDF embedding on PDF export (hack)
Due to creating PDF formats recognized as errors
for PDF readers using PDF1.5 I decided for a QuickFix
to have a simple possibility to disaable that feature,
depending on the flag
LIBO_ALLOW_PDF_TO_PDF_EMBEDDING
If (initially) not defined/set, PDF-to-PDF embedding
will be replaced at export to use Jpeg/PixelData instead
what is uncritical and creates valid PDF files.
If defined/set, all will be unchanged. This opens a
quick possibility to switch back if unexpected side
effects should occur.
Change-Id: I5aaf833b539cdea2bb3bf165cd25990e56efa847
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index 28b9fc9f3bcc..32288d569728 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -138,20 +138,32 @@ public:
void testTdf121615();
void testTocLink();
+ // the following tests do *not* work when
+ // LIBO_ALLOW_PDF_TO_PDF_EMBEDDING is FALSE, so need
+ // to deactivate those. These are indeed the ones that
+ // check for reference/form and similar stuff
+ //BAD CPPUNIT_TEST(testTdf106059);
+ //BAD CPPUNIT_TEST(testTdf106693);
+ //BAD CPPUNIT_TEST(testForcePoint71);
+ //BAD CPPUNIT_TEST(testTdf106972);
+ //BAD CPPUNIT_TEST(testTdf106972Pdf17);
+ //BAD CPPUNIT_TEST(testTdf107018);
+ //BAD CPPUNIT_TEST(testTdf107089);
+
CPPUNIT_TEST_SUITE(PdfExportTest);
- CPPUNIT_TEST(testTdf106059);
+ // CPPUNIT_TEST(testTdf106059);
CPPUNIT_TEST(testTdf105461);
CPPUNIT_TEST(testTdf107868);
CPPUNIT_TEST(testTdf105093);
CPPUNIT_TEST(testTdf106206);
- CPPUNIT_TEST(testTdf106693);
- CPPUNIT_TEST(testForcePoint71);
- CPPUNIT_TEST(testTdf106972);
- CPPUNIT_TEST(testTdf106972Pdf17);
+ // CPPUNIT_TEST(testTdf106693);
+ // CPPUNIT_TEST(testForcePoint71);
+ // CPPUNIT_TEST(testTdf106972);
+ // CPPUNIT_TEST(testTdf106972Pdf17);
CPPUNIT_TEST(testSofthyphenPos);
CPPUNIT_TEST(testTdf107013);
- CPPUNIT_TEST(testTdf107018);
- CPPUNIT_TEST(testTdf107089);
+ // CPPUNIT_TEST(testTdf107018);
+ // CPPUNIT_TEST(testTdf107089);
CPPUNIT_TEST(testTdf99680);
CPPUNIT_TEST(testTdf99680_2);
CPPUNIT_TEST(testTdf108963);
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 1a5f772af2e5..eadd646cb5d1 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -9338,7 +9338,9 @@ void PDFWriterImpl::createEmbeddedFile(const Graphic& rGraphic, ReferenceXObject
// no pdf data.
rEmit.m_nBitmapObject = nBitmapObject;
- if (!rGraphic.hasPdfData())
+ static bool bAllowPdfToPdf(nullptr != getenv("LIBO_ALLOW_PDF_TO_PDF_EMBEDDING"));
+ const bool bHasPdfDFata(bAllowPdfToPdf && rGraphic.hasPdfData());
+ if (!bHasPdfDFata)
return;
if (m_aContext.UseReferenceXObject)
@@ -9406,7 +9408,9 @@ void PDFWriterImpl::drawJPGBitmap( SvStream& rDCTData, bool bIsTrueColor, const
{
m_aJPGs.emplace( m_aJPGs.begin() );
JPGEmit& rEmit = m_aJPGs.front();
- if (!rGraphic.hasPdfData() || m_aContext.UseReferenceXObject)
+ static bool bAllowPdfToPdf(nullptr != getenv("LIBO_ALLOW_PDF_TO_PDF_EMBEDDING"));
+ const bool bHasPdfDFata(bAllowPdfToPdf && rGraphic.hasPdfData());
+ if (!bHasPdfDFata || m_aContext.UseReferenceXObject)
rEmit.m_nObject = createObject();
rEmit.m_aID = aID;
rEmit.m_pStream = std::move( pStream );
More information about the Libreoffice-commits
mailing list