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