dev/null |binary vcl/qa/cppunit/pdfexport/pdfexport.cxx | 82 --------------------------------- vcl/source/gdi/pdfwriter_impl.cxx | 11 ++-- 3 files changed, 5 insertions(+), 88 deletions(-)
New commits: commit 08f84adae740cc29c0c15b717c884c8403cf3f94 Author: Thorsten Behrens <thorsten.behr...@cib.de> AuthorDate: Tue Feb 4 16:04:16 2020 +0100 Commit: Thorsten Behrens <thorsten.behr...@cib.de> CommitDate: Tue Feb 4 16:05:13 2020 +0100 Revert "tdf#99680 modified clipping for PDF export" This reverts commit f6726209329fefe9decca8fda8e136b8472a95a2. Conflicts: vcl/qa/cppunit/pdfexport/pdfexport.cxx Change-Id: I2a40ff6fba37e838350e319d8e15a2ca7f042371 diff --git a/vcl/qa/cppunit/pdfexport/data/tdf99680-2.odt b/vcl/qa/cppunit/pdfexport/data/tdf99680-2.odt deleted file mode 100644 index 47c370004d86..000000000000 Binary files a/vcl/qa/cppunit/pdfexport/data/tdf99680-2.odt and /dev/null differ diff --git a/vcl/qa/cppunit/pdfexport/data/tdf99680.odt b/vcl/qa/cppunit/pdfexport/data/tdf99680.odt deleted file mode 100644 index de12f9baa180..000000000000 Binary files a/vcl/qa/cppunit/pdfexport/data/tdf99680.odt and /dev/null differ diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx index 5c4b4a8c7141..3265aa28da3d 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx @@ -77,8 +77,6 @@ public: void testTdf107013(); void testTdf107018(); void testTdf107089(); - void testTdf99680(); - void testTdf99680_2(); void testTdf108963(); #if HAVE_MORE_FONTS /// Test writing ToUnicode CMAP for LTR ligatures. @@ -115,8 +113,6 @@ public: CPPUNIT_TEST(testTdf107013); CPPUNIT_TEST(testTdf107018); CPPUNIT_TEST(testTdf107089); - CPPUNIT_TEST(testTdf99680); - CPPUNIT_TEST(testTdf99680_2); CPPUNIT_TEST(testTdf108963); #if HAVE_MORE_FONTS CPPUNIT_TEST(testTdf115117_1); @@ -690,84 +686,6 @@ void PdfExportTest::testTdf107089() CPPUNIT_ASSERT(it != pEnd); } -void PdfExportTest::testTdf99680() -{ - vcl::filter::PDFDocument aDocument; - load("tdf99680.odt", aDocument); - - // The document has one page. - std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); - CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aPages.size()); - - // The page 1 has a stream. - vcl::filter::PDFObjectElement* pContents = aPages[0]->LookupObject("Contents"); - CPPUNIT_ASSERT(pContents); - vcl::filter::PDFStreamElement* pStream = pContents->GetStream(); - CPPUNIT_ASSERT(pStream); - SvMemoryStream& rObjectStream = pStream->GetMemory(); - - // Uncompress it. - SvMemoryStream aUncompressed; - ZCodec aZCodec; - aZCodec.BeginCompression(); - rObjectStream.Seek(0); - aZCodec.Decompress(rObjectStream, aUncompressed); - CPPUNIT_ASSERT(aZCodec.EndCompression()); - - // Make sure there are no empty clipping regions. - OString aEmptyRegion("0 0 m h W* n"); - auto pStart = static_cast<const char*>(aUncompressed.GetData()); - const char* pEnd = pStart + aUncompressed.GetSize(); - auto it = std::search(pStart, pEnd, aEmptyRegion.getStr(), aEmptyRegion.getStr() + aEmptyRegion.getLength()); - CPPUNIT_ASSERT_EQUAL_MESSAGE("Empty clipping region detected!", it, pEnd); - - // Count save graphic state (q) and restore (Q) operators - // and ensure their amount is equal - size_t nSaveCount = std::count(pStart, pEnd, 'q'); - size_t nRestoreCount = std::count(pStart, pEnd, 'Q'); - CPPUNIT_ASSERT_EQUAL_MESSAGE("Save/restore graphic state operators count mismatch!", nSaveCount, nRestoreCount); -} - -void PdfExportTest::testTdf99680_2() -{ - vcl::filter::PDFDocument aDocument; - load("tdf99680-2.odt", aDocument); - - // For each document page - std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); - CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aPages.size()); - for (size_t nPageNr = 0; nPageNr < aPages.size(); nPageNr++) - { - // Get page contents and stream. - vcl::filter::PDFObjectElement* pContents = aPages[nPageNr]->LookupObject("Contents"); - CPPUNIT_ASSERT(pContents); - vcl::filter::PDFStreamElement* pStream = pContents->GetStream(); - CPPUNIT_ASSERT(pStream); - SvMemoryStream& rObjectStream = pStream->GetMemory(); - - // Uncompress the stream. - SvMemoryStream aUncompressed; - ZCodec aZCodec; - aZCodec.BeginCompression(); - rObjectStream.Seek(0); - aZCodec.Decompress(rObjectStream, aUncompressed); - CPPUNIT_ASSERT(aZCodec.EndCompression()); - - // Make sure there are no empty clipping regions. - OString aEmptyRegion("0 0 m h W* n"); - auto pStart = static_cast<const char*>(aUncompressed.GetData()); - const char* pEnd = pStart + aUncompressed.GetSize(); - auto it = std::search(pStart, pEnd, aEmptyRegion.getStr(), aEmptyRegion.getStr() + aEmptyRegion.getLength()); - CPPUNIT_ASSERT_EQUAL_MESSAGE("Empty clipping region detected!", it, pEnd); - - // Count save graphic state (q) and restore (Q) operators - // and ensure their amount is equal - size_t nSaveCount = std::count(pStart, pEnd, 'q'); - size_t nRestoreCount = std::count(pStart, pEnd, 'Q'); - CPPUNIT_ASSERT_EQUAL_MESSAGE("Save/restore graphic state operators count mismatch!", nSaveCount, nRestoreCount); - } -} - void PdfExportTest::testTdf108963() { // Import the bugdoc and export as PDF. diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index a14f64d54ed5..e2dc9dcf409f 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -10314,13 +10314,12 @@ void PDFWriterImpl::updateGraphicsState(Mode const mode) getReferenceDevice()->SetMapMode( rNewState.m_aMapMode ); m_aCurrentPDFState.m_aMapMode = rNewState.m_aMapMode; - aLine.append("q "); - if ( rNewState.m_aClipRegion.count() ) - { + aLine.append( "q " ); + if( rNewState.m_aClipRegion.count() ) m_aPages.back().appendPolyPolygon( rNewState.m_aClipRegion, aLine ); - aLine.append( "W* n\n" ); - } - + else + aLine.append( "0 0 m h " ); // NULL clip, i.e. nothing visible + aLine.append( "W* n\n" ); rNewState.m_aMapMode = aNewMapMode; getReferenceDevice()->SetMapMode( rNewState.m_aMapMode ); m_aCurrentPDFState.m_aMapMode = rNewState.m_aMapMode; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits