docling-project / docling-project/docling

PPTX backend: slide-level composition semantics not captured

Open
#3,533 1 comment 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
66.4k
Forks
4.8k
Avg merge
2d 21h
Merged PRs (30d)
84

Description

### Requested feature

Add support for capturing slide-level compositional semantics in the PPTX backend. Currently, even when all individual shapes are correctly extracted as `PictureItem` nodes, meaning carried by the *arrangement and relationships between elements* is lost entirely.

A common and important pattern: two images connected by a vector arrow drawn with PowerPoint's shape tools to show a relationship. The backend today extracts a `PictureItem` for each image. VLM describes each in isolation, but the connecting arrow (`AUTO_SHAPE`) is dropped silently. VLM never sees that A relates to B or what the connection means. The compositional meaning of the slide, which is the primary content, is invisible.

This affects a very wide range of presentation content: flowcharts built from shapes and connectors, comparison layouts, annotated diagrams, process flows with numbered steps, architecture diagrams. In all these cases the individual elements are meaningless without the spatial relationships between them.

The feature needed is a way to reason about the slide as a whole visual unit - either by rendering the full slide as a single image before VLM processing, or by grouping spatially related shapes into a single `PictureItem` region so VLM receives the composition rather than isolated crops.

### Alternatives

The current workaround is to convert PPTX to PDF via LibreOffice (e.g. through Gotenberg) before passing to Docling. LibreOffice renders the full slide as a single visual, the layout model then sees the complete composition and may group related elements into one figure region for VLM. This works partially, because the layout model does not always group elements correctly and it loses other quality (rasterises individually embedded images, loses native table structure). It is also infrastructure-heavy and adds latency.

A lighter alternative would be for the PPTX backend to render individual slides to images using a headless renderer.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.