https://bugs.documentfoundation.org/show_bug.cgi?id=158033

Prashanna <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|1                           |0
             Status|NEEDINFO                    |UNCONFIRMED

--- Comment #13 from Prashanna <[email protected]> ---
Thank you for looking at this after this much time.

I can confirm this issue is still present with the latest libreoffice packaged
with Debian-Trixie.

I'm not across the underlying details but I suspect the bug is unique
interaction with Debian installed fonts and libreoffice font fallback mechanism
post v7. So I suspect you'll need a Debian docker image with libreoffice
installed to replicate.

With the help of claude it did come up with a working fix by manually adding a
custom fontconfig.


<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<!--
  Maps the non-free Microsoft CJK font families to the Noto CJK families
  shipped by fonts-noto-cjk.

  Documents authored in MS Word routinely request these families without
  embedding them. When none of them resolve, LibreOffice falls back to
  per-glyph lookup rather than selecting a named substitute font, and on
  v7 and above that path emits only two font subsets into the exported
  PDF. Every glyph past those subsets renders as a tofu box.
  See https://bugs.documentfoundation.org/show_bug.cgi?id=158033.

  Aliasing the families here makes fontconfig answer with a real installed
  font at selection time, so LibreOffice takes the named-substitution path
  and subsets the font correctly.

  Note that Noto CJK carries no Unicode Ext-B coverage, so the rare
  ideographs that MingLiU-ExtB exists to provide still render as boxes.
  Installing fonts-hanazono and aliasing to HanaMinB would address that.
-->
<fontconfig>

  <!-- Traditional Chinese -->
  <match target="pattern">
    <test name="family"><string>Microsoft JhengHei</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
TC</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>PMingLiU</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
TC</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>MingLiU</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
TC</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>MingLiU-ExtB</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
TC</string></edit>
  </match>

  <!-- Simplified Chinese -->
  <match target="pattern">
    <test name="family"><string>Microsoft YaHei</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
SC</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>SimHei</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
SC</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>SimSun</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
SC</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>NSimSun</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
SC</string></edit>
  </match>

  <!-- Japanese -->
  <match target="pattern">
    <test name="family"><string>MS Gothic</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
JP</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>MS PGothic</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
JP</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>Meiryo</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
JP</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>Yu Gothic</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
JP</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>MS Mincho</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
JP</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>MS PMincho</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
JP</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>Yu Mincho</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
JP</string></edit>
  </match>

  <!-- Korean -->
  <match target="pattern">
    <test name="family"><string>Malgun Gothic</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
KR</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>Gulim</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
KR</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>Dotum</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK
KR</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>Batang</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
KR</string></edit>
  </match>
  <match target="pattern">
    <test name="family"><string>BatangChe</string></test>
    <edit name="family" mode="assign" binding="same"><string>Noto Serif CJK
KR</string></edit>
  </match>

</fontconfig>

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to