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

            Bug ID: 172170
           Summary: Color emoji in narrow TextBox renders as `?`
                    placeholder; widening `a:ext cx` fixes it (PPTX,
                    headless and GUI)
           Product: LibreOffice
           Version: 25.8.5.2 release
          Hardware: x86-64 (AMD64)
                OS: Windows (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Impress
          Assignee: [email protected]
          Reporter: [email protected]

Description:
When a PPTX file contains a TextBox whose `<a:ext cx>` (container width) is
smaller than the actual rendered width of a supplementary-plane Unicode emoji
it contains, LibreOffice silently abandons the color-emoji rendering path and
draws a `?` (or `□`) placeholder glyph instead. The same emoji character
renders correctly in the same file when placed inside a wider TextBox, and the
same file renders correctly in Microsoft PowerPoint, GroupDocs Viewer
(Aspose.Slides), and OneDrive online preview.

The OOXML in the file is fully spec-compliant. No font, encoding, language, or
run-property change in OOXML can fix the rendering — only enlarging the
container's `<a:ext cx>` does.

Confirmed by an accidental natural experiment: editing the file in LibreOffice
Impress and saving causes Impress's own writer to expand `cx` via
`<a:spAutoFit/>`, after which all emoji render correctly. Byte-level diff of
the resulting OOXML against the original shows that **`a:ext cx` is the only
changed field** in the affected shapes (rPr, lang, latin, ea, character data,
bodyPr, pPr, endParaRPr are all byte-identical).


Steps to Reproduce:
1. Download the attached file `chars-display.pptx` (single slide, 4 narrow
TextBoxes each containing exactly one emoji: 💧 U+1F4A7, 🔦 U+1F526, 🏥 U+1F3E5, 🥫
U+1F96B).
2. Render the file to PNG via headless conversion:
   ```
   soffice --headless --convert-to pdf chars-display.pptx
   ```
   (Or open in LibreOffice Impress GUI and export to PNG / PDF.)
3. Inspect the resulting PDF/PNG.

Actual Results:
All four emoji are rendered as a placeholder `?` (or `□`) glyph. See attached
screenshot `actual_libreoffice.png`.

The relevant OOXML for each affected shape is:
```xml
<p:sp>
  <p:spPr>
    <a:xfrm>
      <a:off x="1857600" y="4518720"/>
      <a:ext cx="285120" cy="548280"/>   <!-- ~22pt wide -->
    </a:xfrm>
    ...
  </p:spPr>
  <p:txBody>
    <a:bodyPr wrap="none" lIns="0" rIns="0" tIns="0" bIns="0" anchor="t">
      <a:spAutoFit/>
    </a:bodyPr>
    <a:p>
      <a:r>
        <a:rPr lang="en-US" sz="2700" b="0">
          <a:latin typeface="Segoe UI"/>
          <a:ea typeface="Microsoft YaHei"/>
        </a:rPr>
        <a:t>💧</a:t>
      </a:r>
    </a:p>
  </p:txBody>
</p:sp>
```


Expected Results:
All four emoji rendered as full-color emoji glyphs (matching the rendering
produced by Microsoft PowerPoint, GroupDocs Viewer, and OneDrive online
preview). See attached screenshot `expected_powerpoint.png` (or
`expected_groupdocs.png`).


Reproducible: Always


User Profile Reset: No

Additional Info:
i have uploaded all the needed pptx, screeshots, bug description as attachment.

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

Reply via email to