[ 
https://issues.apache.org/jira/browse/TIKA-4855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18109412#comment-18109412
 ] 

ASF GitHub Bot commented on TIKA-4855:
--------------------------------------

dschmidt opened a new pull request, #3095:
URL: https://github.com/apache/tika/pull/3095

   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. Neither is usable as a preview 
outside Windows, and outside the JVM there is no maintained EMF/WMF rasterizer, 
while POI's HEMF/HWMF can draw both.
   
   Following the PDF parser's rendering design:
   
   - `POIMetafileRenderer` (`poi-metafile-renderer`) is a `Renderer` for 
`image/emf` and `image/wmf`: the POI picture drawn onto a white canvas, a PNG 
of a configurable width. The WMF thumbnails Word writes consist of a 
`setWindowExt` and a `dibStretchBlt` record only, for which POI cannot compute 
bounds; those are rendered from the record's bitmap.
   - `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. An injected renderer is used when it supports the type, the POI one 
otherwise. The shared config and emission live in `MetafileParserConfig` and 
`MetafileRendering`.
   - `OfficeParser` emits the SummaryInformation thumbnail as a `THUMBNAIL` 
embedded document (`image/wmf`, `thumbnail.wmf`), consistent with the docProps 
thumbnail of the OOXML parsers. Two PowerPoint tests count one embedded 
document more because of it.
   
   Verified against tika-server with `/unpack`: docx, xlsx, doc, xls and ppt 
files that carry a thumbnail yield it at depth 1 and its PNG rendering at depth 
2.
   
   https://issues.apache.org/jira/browse/TIKA-4855
   




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