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.