You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Tim Allison (Jira)" <ji...@apache.org> on 2026/09/01 13:59:00 UTC

[jira] [Resolved] (TIKA-4855) Render EMF/WMF images to raster previews and emit the OLE2 SummaryInformation thumbnail

     [ https://issues.apache.org/jira/browse/TIKA-4855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Allison resolved TIKA-4855.
-------------------------------
    Fix Version/s: 4.1.0
       Resolution: Fixed

> Render EMF/WMF images to raster previews and emit the OLE2 SummaryInformation thumbnail
> ---------------------------------------------------------------------------------------
>
>                 Key: TIKA-4855
>                 URL: https://issues.apache.org/jira/browse/TIKA-4855
>             Project: Tika
>          Issue Type: Improvement
>            Reporter: Dominik Schmidt
>            Priority: Major
>             Fix For: 4.1.0
>
>
> Office documents carry their preview image as a vector metafile: the OOXML docProps/thumbnail.emf of Word (an EMF wrapping a WMF) and thumbnail.wmf of Excel, and the SummaryInformation thumbnail (PIDSI_THUMBNAIL, CF_METAFILEPICT, a WMF) of the OLE2 formats, which PowerPoint writes almost always and Word/Excel on request. Neither is usable as a preview outside Windows, and outside the JVM there is no maintained EMF/WMF rasterizer. POI's HEMF/HWMF can draw both and Tika already bundles them.
> Proposal, following the PDF parser's rendering design:
> 1. A Renderer for image/emf and image/wmf (POI HemfPicture/HwmfPicture drawn onto a white canvas, a PNG of a configurable width, the height following the aspect ratio). The WMF thumbnails Word writes consist of a setWindowExt and a dibStretchBlt record only, for which POI cannot compute bounds; for those the renderer emits the record's bitmap.
> 2. EMFParser and WMFParser implement RenderingParser and, with "emf-parser" / "wmf-parser": {"renderImage": true, "renderWidth": 800} (off by default), emit the rendering as a RENDERING embedded document named after the image, the way the PDF parser emits page renderings. An injected renderer is used when it supports the type, the POI one otherwise.
> 3. OfficeParser emits the SummaryInformation thumbnail of the OLE2 formats as a THUMBNAIL embedded document (image/wmf, named thumbnail.wmf), consistent with the docProps thumbnail of the OOXML parsers. Existing tests that count the embedded documents of .ppt fixtures gain one.
> With that, a client that asks for THUMBNAIL and RENDERING embedded documents gets a raster preview for docx, xlsx, doc, xls and ppt files that carry a thumbnail, with the same request it uses for every other format. Verified against tika-server with /unpack: each of these yields the thumbnail at depth 1 and its PNG rendering at depth 2.
> Note for clients: with rendering enabled every embedded metafile is rendered, e.g. the picture of an OLE object, so the preview is the RENDERING under the THUMBNAIL, not the first RENDERING.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)