From 09da7fd9cec9b36f2e09c1105a9263b83e2c66e4 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 16 Jul 2024 14:49:23 +0200 Subject: [PATCH] tdf#162002 DOCX import, font embed: only discard subset fonts with few glyphs Commit a9f3c11375525a7708378dd3648febc40db1ad20 (tdf#162002 DOCX import: ignore subsetted embedded fonts for editing, 2024-07-12) decided to ignore all subsetted fonts for editing, improve this a little so we only ignore subsetted fonts when they can't even provide an English alphabet in any form (lowercase, uppercase). This avoids the possible problem that a font is marked as subsetted but it's good enough in practice and we would still throw it away for editing. Change-Id: I0bc0e14ffc0c039f029220991bd16d9e3254f059 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170570 Reviewed-by: Miklos Vajna Tested-by: Jenkins --- include/vcl/embeddedfontshelper.hxx | 3 +- sw/qa/writerfilter/dmapper/FontTable.cxx | 18 ++++++++++ .../data/subsetted-full-embedded-font.docx | Bin 0 -> 85639 bytes sw/source/writerfilter/dmapper/FontTable.cxx | 15 ++++---- sw/source/writerfilter/dmapper/FontTable.hxx | 3 +- vcl/source/gdi/embeddedfontshelper.cxx | 34 +++++++++++++++++- 6 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 sw/qa/writerfilter/dmapper/data/subsetted-full-embedded-font.docx diff --git a/include/vcl/embeddedfontshelper.hxx b/include/vcl/embeddedfontshelper.hxx index cbf91ee7f09b..404afac13ec1 100644 --- a/include/vcl/embeddedfontshelper.hxx +++ b/include/vcl/embeddedfontshelper.hxx @@ -66,7 +66,8 @@ public: */ bool addEmbeddedFont( const css::uno::Reference< css::io::XInputStream >& stream, const OUString& fontName, std::u16string_view extra, - std::vector< unsigned char > const & key, bool eot = false); + std::vector< unsigned char > const & key, bool eot = false, + bool bSubsetted = false); /** Returns a URL for a file where to store contents of a given temporary font. diff --git a/sw/qa/writerfilter/dmapper/FontTable.cxx b/sw/qa/writerfilter/dmapper/FontTable.cxx index 798d68d0a193..2fe3dced2e1f 100644 --- a/sw/qa/writerfilter/dmapper/FontTable.cxx +++ b/sw/qa/writerfilter/dmapper/FontTable.cxx @@ -39,6 +39,24 @@ CPPUNIT_TEST_FIXTURE(Test, testSubsettedEmbeddedFont) // during editing may be missing from the subsetted font: CPPUNIT_ASSERT(aUrl.isEmpty()); } + +CPPUNIT_TEST_FIXTURE(Test, testSubsettedFullEmbeddedFont) +{ +#if !defined(MACOSX) // FIXME fails on macOS + // Given a document with an embedded font (marked as subsetted, but otherwise full in practice), + // loaded for editing: + loadFromFile(u"subsetted-full-embedded-font.docx"); + + // When checking if the font is available: + OUString aUrl = EmbeddedFontsHelper::fontFileUrl( + u"IBM Plex Serif Light", FAMILY_ROMAN, ITALIC_NONE, WEIGHT_NORMAL, PITCH_VARIABLE, + EmbeddedFontsHelper::FontRights::ViewingAllowed); + + // Then make sure the subsetted font is available, given that it has the reasonable amount of + // glyphs: + CPPUNIT_ASSERT(!aUrl.isEmpty()); +#endif +} } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/writerfilter/dmapper/data/subsetted-full-embedded-font.docx b/sw/qa/writerfilter/dmapper/data/subsetted-full-embedded-font.docx new file mode 100644 index 0000000000000000000000000000000000000000..7cdbaf271d6b45fe25275e906b481818f139f0af GIT binary patch literal 85639 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 stream, const OUString& fontName, std::u16string_view extra, - std::vector const & key) + std::vector const & key, + bool bSubsetted) { if (!m_pImpl->xEmbeddedFontHelper) m_pImpl->xEmbeddedFontHelper.reset(new EmbeddedFontsHelper); - m_pImpl->xEmbeddedFontHelper->addEmbeddedFont(stream, fontName, extra, key); + m_pImpl->xEmbeddedFontHelper->addEmbeddedFont(stream, fontName, extra, key, + /*eot=*/false, bSubsetted); } EmbeddedFontHandler::EmbeddedFontHandler(FontTable& rFontTable, OUString _fontName, std::u16string_view style ) @@ -256,11 +258,6 @@ EmbeddedFontHandler::~EmbeddedFontHandler() if( !m_inputStream.is()) return; - if (m_bSubsetted && !m_fontTable.IsReadOnly()) - { - return; - } - std::vector< unsigned char > key( 32 ); if( !m_fontKey.isEmpty()) { // key for unobfuscating @@ -280,7 +277,9 @@ EmbeddedFontHandler::~EmbeddedFontHandler() key[ i + 16 ] = val; } } - m_fontTable.addEmbeddedFont( m_inputStream, m_fontName, m_style, key ); + // Ignore the "subsetted" flag if we're not editing anyway. + bool bSubsetted = m_bSubsetted && !m_fontTable.IsReadOnly(); + m_fontTable.addEmbeddedFont( m_inputStream, m_fontName, m_style, key, bSubsetted ); m_inputStream->closeInput(); } diff --git a/sw/source/writerfilter/dmapper/FontTable.hxx b/sw/source/writerfilter/dmapper/FontTable.hxx index 9ad092befe79..babb43d8aebb 100644 --- a/sw/source/writerfilter/dmapper/FontTable.hxx +++ b/sw/source/writerfilter/dmapper/FontTable.hxx @@ -53,7 +53,8 @@ class FontTable : public LoggedProperties, public LoggedTable void addEmbeddedFont(const css::uno::Reference& stream, const OUString& fontName, std::u16string_view extra, - std::vector const & key); + std::vector const & key, + bool bSubsetted); bool IsReadOnly() const; private: diff --git a/vcl/source/gdi/embeddedfontshelper.cxx b/vcl/source/gdi/embeddedfontshelper.cxx index 1ac57ce1b59a..a6a2b61676f7 100644 --- a/vcl/source/gdi/embeddedfontshelper.cxx +++ b/vcl/source/gdi/embeddedfontshelper.cxx @@ -66,7 +66,8 @@ void EmbeddedFontsHelper::clearTemporaryFontFiles() } bool EmbeddedFontsHelper::addEmbeddedFont( const uno::Reference< io::XInputStream >& stream, const OUString& fontName, - std::u16string_view extra, std::vector< unsigned char > const & key, bool eot ) + std::u16string_view extra, std::vector< unsigned char > const & key, bool eot, + bool bSubsetted ) { OUString fileUrl = EmbeddedFontsHelper::fileUrlForTemporaryFont( fontName, extra ); osl::File file( fileUrl ); @@ -159,6 +160,37 @@ bool EmbeddedFontsHelper::addEmbeddedFont( const uno::Reference< io::XInputStrea osl::File::remove( fileUrl ); return false; } + + if (bSubsetted) + { + TrueTypeFont* font; + sal_uInt32 nGlyphs = 0; + if (OpenTTFontBuffer(fontData.data(), fontData.size(), 0, &font) == SFErrCodes::Ok) + { + sal_uInt32 nGlyphCount = font->glyphCount(); + for (sal_uInt32 i = 0; i < nGlyphCount; ++i) + { + sal_uInt32 nOffset = font->glyphOffset(i); + sal_uInt32 nNextOffset = font->glyphOffset(i + 1); + if (nOffset == nNextOffset) + { + // GetTTGlyphComponents() says this is an empty glyph, ignore it. + continue; + } + ++nGlyphs; + } + CloseTTFont(font); + } + // Check if it has reasonable amount of glyphs, set the limit to the number of glyphs in the + // English alphabet (not differentiating lowercase and uppercase). + if (nGlyphs < 26) + { + SAL_INFO("vcl.fonts", "Ignoring embedded font that only provides " << nGlyphs << " non-empty glyphs"); + osl::File::remove(fileUrl); + return false; + } + } + m_aAccumulatedFonts.emplace_back(std::make_pair(fontName, fileUrl)); return true; }