Dominik Schmidt created TIKA-4855:
-------------------------------------

             Summary: 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


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)

Reply via email to