This matrix tracks dependency-free image export across OfficeIMO document packages. It is intentionally implementation-facing: each item names the owning layer so improvements keep flowing into the shared rendering foundation instead of becoming separate document renderers. See the 2026-07-18 assessment for the cross-package findings and delivery order.
| Layer | Owns | Must not own |
|---|---|---|
OfficeIMO.Drawing |
PNG/JPEG/TIFF/SVG/WebP encoding, validated result/options/builders, target DPI and density metadata, deterministic fonts, host text-shaping contract, bounded managed complex-text fallback, diagnostic policy, streaming/batch budgets, save conflicts, pre-allocation raster planning, bounded source decoding, SVG formatting, image projection, frame transforms, text layout primitives, reusable border boxes, charts, nested drawing composition, and shared diagnostic codes | Document-specific selection, pagination, or source semantics |
OfficeIMO.Excel |
Worksheet/range selection, cell style and value semantics, conditional formatting evaluation, anchors, page/print policy | Private image encoders or duplicate text/chart/image renderers |
OfficeIMO.PowerPoint |
Slide size, backgrounds, master/layout inheritance, shapes, text boxes, tables, chart snapshots, picture relationships | Duplicate chart renderer, duplicate transform engine, private image encoder |
OfficeIMO.Word |
Section/page policy, estimated pagination, body/header/footer traversal, paragraph/table/image flow, Word-specific diagnostics | Duplicate drawing renderer or claims of Microsoft Word-exact pagination |
OfficeIMO.Html |
CSS layout, resource policy, continuous/paged surfaces, async resource resolution, HTML diagnostics | Private image encoders or duplicate Drawing primitives |
OfficeIMO.Html email bridge |
Email body selection, message chrome, and MIME/CID resource mapping into HTML | Another email layout or image engine |
OfficeIMO.Epub.Image |
EPUB chapter selection and retained package-resource mapping into HTML | Another EPUB parser, CSS layout engine, or image encoder |
OfficeIMO.OneNote |
Page hierarchy, positioned content, ink/math/image projection, page selection | Private image encoders |
OfficeIMO.Visio |
Page geometry, shapes, connectors, stencil artwork, labels, native Visio text/layout decisions, and the richer Visio embedded-SVG interpreter needed for linked images, clipping, nested opacity, and CSS | Private output encoders or duplicate shared format mechanics |
OfficeIMO.Pdf |
PDF parsing/content semantics, page-to-Drawing projection, page selection, Drawing-owned raster normalization for authored/stamped images, PDF render capability diagnostics, and source-to-PDF diagnostic bridging | Private raster encoders, allocation policy, or source-adapter-specific image APIs |
| OpenDocument adapters | Attach ODT/ODS/ODP conversion evidence while delegating visuals to Word/Excel/PowerPoint | Another ODF parser or renderer |
| Capability | Status | Evidence | Next owner action |
|---|---|---|---|
| Shared export result/options | Supported and content-validated | OfficeImageExportResult rejects bytes whose format or dimensions disagree with the declaration and exposes encoded length, DPI, physical size, normalized saved path, report, and diagnostics |
Keep new format-neutral metadata and policy here |
| Five-format drawing output | Supported | OfficeDrawingRasterRenderer, OfficeRasterImageEncoder, OfficeDrawingSvgExporter; PNG/JPEG/TIFF density metadata tests |
Keep format encoding and metadata policy here |
| Image projection/crop/flip/rotation | Supported for PNG, baseline/progressive JPEG, classic 8-bit chunky grayscale/palette/RGB/RGBA/DeviceCMYK TIFF with uncompressed, PackBits, or Deflate strips, uncompressed top-down/bottom-up 24-bit plus 32-bit-alpha BMP, first-frame GIF, the literal-lossless WebP subset emitted by OfficeIMO, and Drawing's bounded SVG subset | OfficeDrawingImage, OfficeImageProjection, OfficeRasterImageDecoder, bounded SVG reader/raster tests, TIFF Deflate/predictor/palette/CMYK tests, malformed-input tests, and alpha round trips |
Use ImageCodec for LZW/JPEG/tiled/planar/BigTIFF pixel data, unsupported WebP/SVG variants, or other formats; do not claim general-purpose decoders |
| Deterministic typography | Supported with explicit loss boundaries | Caller OfficeFontFaceCollection is used before platform fallback; unresolved requested families emit IMAGE_FONT_SUBSTITUTED; IOfficeTextShapingProvider, language, and cancellation reach every direct raster adapter plus nested Drawing/Visio SVG and OneNote visual-PDF raster stages; the managed core-Arabic/bidi fallback emits IMAGE_TEXT_SHAPING_FALLBACK; Visio SVG can embed supplied faces |
Supply intended TrueType faces and a host shaper for full OpenType complex-script fidelity |
| Diagnostic acceptance | Supported for direct and fluent export | OfficeImageExportLossKind, OfficeImageExportPolicy, OfficeImageExportReport, and OfficeImageExportPolicyException cover approximation, omission, and failure |
Keep stable reusable codes in Drawing and source-specific codes in adapters |
| Stroke styling | Supported for dash styles, line caps, line joins, and open-line/path markers | OfficeShape, OfficeSvgFormatting, Drawing stroke/cap/join/marker tests, PowerPoint connector marker and auto-shape outline cap/join tests |
Add additional compound stroke semantics here when multiple document packages need them |
| Line markers / arrowheads | Supported for open Drawing lines and paths | OfficeLineMarker, Drawing SVG/raster marker tests, PowerPoint connector line-end tests |
Add more marker families in Drawing when document packages need them |
| DrawingML preset geometry | Supported for common basic, polygon/star, arrow, additional arrow, arrow-callout, multi-direction arrow, flowchart, callout, symbol, bracket/brace, and path-based presets | OfficeShapePresets, Drawing preset tests, PowerPoint basic, expanded polygon/star, additional arrow, arrow-callout, multi-direction arrow, expanded flowchart, callout, symbol, bracket, and brace auto-shape projection tests |
Add additional preset families here when document packages need them |
| Border boxes | Supported for independent rectangular, diagonal, and double-line edge strokes | OfficeBorderBox, OfficeBorderSide, OfficeBorderBoxRenderer, OfficeDrawing.AddBorderBox(...), Drawing border-box/diagonal/double renderer tests, Excel border-style export test, Word diagonal/double/table-cell border projection tests, and PowerPoint table-cell/theme/diagonal-border projection tests |
Add additional compound stroke geometry here when more document packages need it |
| Text layout, rich text, tabs, padding, paragraph indentation, rich-run backgrounds, plain/rich-text justification, and text-frame mirroring | Supported for current text primitives and reusable rich text runs | OfficeDrawingText, OfficeDrawingRichText, OfficeTextPadding, OfficeTextParagraphIndent, OfficeTextAlignment.Justify, OfficeTextLayoutEngine, OfficeTextBlockRenderer, flipped PowerPoint text/table/chart/rich-text tests, Drawing rich-run background tests, PowerPoint marker/tab/padding/indent/justify/strikethrough/theme-text/highlight/highlight-alpha projection tests, Word rich-run/table-cell/header-footer/tab/indent/justify/highlight tests |
Improve complex paragraph layout here when reused |
| Nested drawing composition | Supported with placement, frame transforms, rectangular clipped composition, and transformed clipped composition | OfficeDrawing.AddDrawing(...), OfficeDrawing.AddClippedDrawing(...), transformed chart, PowerPoint group, clipped PowerPoint group, and transformed clipped Drawing/PowerPoint group tests |
Use for chart, group, and embedded scene composition |
| Chart rendering | Partial shared renderer | PowerPoint and Excel chart export route through OfficeChartDrawingRenderer |
Improve chart fidelity in Drawing, not per document |
| Fluent export mechanics | Supported | Shared builders own five-format selection, AtDpi, preview/print profiles, fonts, policy, progress, conflicts, cancellation, portable filenames, and genuine async delegates |
Keep save/export mechanics shared; keep document knobs in adapters |
| Large-batch operation | Supported | Streaming ExportEach, payload-free SaveFiles, deterministic order, bounded concurrency, maximum output count, total pixels, total bytes, progress, and cancellation |
Prefer streaming for production document batches |
| Raster safety | Supported before allocation | OfficeRasterExportPlanner combines caller, renderer, encoder-dimension, and encoder-pixel limits and either reduces scale with IMAGE_RASTER_SCALE_REDUCED or throws OfficeImageExportLimitException |
Route every new raster surface through the planner before creating a pixel buffer |
| Save correctness | Supported | Canonical extension resolution, atomic commit, default FailIfExists, explicit replace/unique policy, and normalized SavedPath |
Never bypass the shared commit/path contract |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| Range to five image formats | Mature | Large ExcelRange_ImageExport... coverage; visual baseline and raster-format gates |
Continue parity fixes from visual review |
| Worksheet used range / explicit range | Supported | ExcelSheet.ExportImage, ExcelWorksheetImageExportOptions.Range |
Automatic multi-page fit pagination is diagnostic-only |
| Workbook/sheet batch export | Supported | ExcelDocument.ExportImages, worksheet split APIs, ExcelDocument.ToImages() |
Preset profiles and example polish can build on the fluent surface |
| Cell values, number formats, text layout, and borders | Broad support | Number format, alignment, spill, clipping, rotation, stacked text, and shared border-box export tests | Edge cases should stay Excel-owned until normalized Drawing input exists |
| Comment indicators and bodies | Partial to broad | Indicator/body export tests, visible-range filtering, obstacle-aware callout placement, and rich legacy comment runs rendered through shared Drawing rich text | Exact Excel popover chrome and threaded-comment rich run semantics remain diagnostic-driven |
| Conditional formatting | Broad support | Color scales, data bars, icon sets including arrows/traffic lights/ratings/quarters/flags, differential styles tests | Unsupported rule shapes remain diagnostic-driven |
| Images/charts/drawing objects | Partial to broad, including the shared PNG/JPEG/baseline-TIFF/uncompressed-BMP/first-frame-GIF/OfficeIMO-WebP source set plus direct-safe/transcoded SVG data URI embedding | Shared Drawing image/chart/object paths and source-format tests | Unsupported object geometry and broader source codecs remain explicit caller-codec cases |
| Header/footer/page chrome | Partial to broad | Page-sliced text and image chrome use shared composition, Drawing/caller image decode, visible fallback diagnostics, and approved PNG/SVG baselines | Excel-exact image placement, scaling-with-document semantics, and full automatic fit pagination remain open |
| Friendly API | Useful first slices | ToPng, ToSvg, SaveAs..., ToImage() for range/worksheet, ToImages() for workbook batch export, and inherited shared fluent presets/export/save/ToPng()/ToSvg() aliases |
Example polish can build on the fluent adapters |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| Slide to five image formats | Supported with first real-world fixture gates | PowerPointSlide.ExportImage, raster-format tests, dashboard and process-diagram fixture gates |
Expand representative authored-deck baseline coverage |
| Backgrounds | Supported for solid/gradient/image fallback path, including DrawingML alpha on solid and gradient-stop colors | Background and gradient-alpha tests | Unsupported background variants should stay diagnostic-driven |
| Pictures | Supported for the shared PNG/JPEG/baseline-TIFF/uncompressed-BMP/first-frame-GIF/OfficeIMO-WebP set, with crop, rotation, and horizontal/vertical flips projected through shared OfficeImageProjection |
Picture crop/transform, source-format, and cross-family conformance tests | Animated GIF timing and broader TIFF/WebP variants require an explicit caller codec |
| Auto-shapes | Shared preset geometry supported for common shapes, expanded polygon/star presets, expanded flowchart presets, callout presets, arrow-callout presets, symbol presets, bracket/brace presets, common/additional arrows, and custom-geometry paths with numeric or scalar guide/formula-backed move/line/quadratic/cubic/arc/close commands, including scheme-colored fill/outline, DrawingML fill/outline alpha, cap, and join projection | Rectangle/ellipse/line plus Drawing preset mapper for triangles, arrows, arrow callouts, up/down arrows, quad arrows, left-up/left-right-up/bent-up/U-turn arrows, parallelograms, heptagon/decagon/dodecagon, star4/star5/star6/star7/star8/star10/star12/star16/star24/star32, clouds, flowchart process/decision/input-output/terminator/document/preparation/manual-input/manual-operation/delay/off-page-connector, wedge/cloud callouts, folded corner, plaque, lightning, sun, moon, bracket pairs, brace pairs, etc.; custom geometry numeric move/line/close, curve path, guide/formula path, arc path, trigonometric scalar guide, and angle-derived guide tests; theme auto-shape fill/outline, alpha fill/outline, and cap/join tests | Remaining less common guide formula operators, remaining less common preset families, compound lines, adjustable geometry fidelity, and exact adjustable-handle geometry |
| Connectors | Straight preset connectors supported as Drawing lines; common bent and curved connectors supported as Drawing paths; native p:cxnSp connection shapes load and export through the same shared Drawing path; line-end markers mapped |
Zero-thickness straight connector, bent connector, multi-elbow bent connector, curved connector, native connection shape, and connector line-end image export tests | Exact connection-site routing and adjustment-handle routing |
| Groups | Basic child projection with group bounds mapping, rotated/flipped group composition, rectangular and transformed clipped group composition, grouped auto-shape stroke scaling, and grouped text-box metric scaling | Grouped/scaled auto-shape with scaled stroke widths, transformed group, clipped group, transformed clipped group, and scaled grouped rich-text tests | Deeper child-specific scaling fidelity such as non-uniform stroke anisotropy and advanced child effects |
| Text boxes | Partial to useful | Text, inherited layout/master, flipped text, rich-run, rich-run color alpha, Markdown strikethrough, single decorated run with strikethrough, direct, alpha, and scheme-colored run highlights, tab expansion, text-frame margin/padding, direct text-box paragraph spacing/line-spacing flow, list-aware per-paragraph flow with level-derived hanging indents, basic hanging indent, plain/rich-text justification, bullet/number marker, alpha/roman auto-number, scheme-colored text/rich-run, and scheme-colored frame tests | Full paragraph layout beyond current list/spacing slices |
| Tables | Basic plus transforms, shared text padding, direct table-cell paragraph spacing/line-spacing and list marker flow with level-derived hanging indents exposed through PowerPointTableCell.Paragraphs / AddParagraph / SetParagraphs / SetBullets / AddNumberedList, rich text runs, run highlights including alpha, independent edge borders, diagonal borders, merged-cell spans, direct fill/border/text alpha, scheme-colored fills, scheme-colored border lines, scheme-colored text, and table-style whole-table/first-row/first-column/last-column/corner/banded-row/banded-column fills plus span-aware style borders |
Table, flipped table, cell-padding, table-cell paragraph spacing/line-spacing/list markers and level indents, table-cell friendly paragraph/list API, table-cell rich-text/highlight/highlight-alpha/strikethrough, table-cell border-box, fill/border-alpha, text-alpha, diagonal-border, theme-fill, theme-border, theme text, table-style fill/border, table-style column/corner/banded-column, and merged table-style border tests | Broader conditional style conflict resolution and deeper custom list-style inheritance |
| Charts | Basic plus frame transforms | Chart and transformed chart tests | Richer chart styles/labels/axes; improve OfficeChartDrawingRenderer |
| Master/layout inheritance | Partial | Inherited layout/master shape tests plus slide-placeholder override coverage | More placeholder override families and master/layout fixture cases |
| Friendly API | Slide, presentation batch, table-cell paragraph/list, and first real-world fixture slices supported | slide.ToImage().AsPng().Export()/Save(...), presentation.ToImages().ForSlides(...).AsSvg().Save(...), PowerPointTableCell.Paragraphs / AddParagraph / AddParagraphs / SetParagraphs / AddBullet / SetBullets / AddNumberedList / SetNumberedList, ExportImages, SaveAsImages, dashboard and process-diagram fixture gates |
More real-world examples and fixture coverage can build on the adapters |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| Document pages to five image formats | Estimated multi-page export supported | WordDocument.ExportImage, ExportImages, ToImage(), ToImages(), batch and raster-format tests |
Continue closing layout gaps; pagination remains OfficeIMO-estimated rather than Word-exact |
| Paragraph text | Basic plus list markers, rich runs, shared tab expansion, left/right indentation, first-line/hanging indentation, direct/style-inherited/document-default before-after spacing, direct and style-inherited contextual spacing collapse, plain/rich-text justification, direct theme-colored text/rich runs, direct and style-inherited run highlights, direct and style-inherited paragraph shading/borders, and explicit opaque projection for Word hex-backed colors | First-page text, list-marker, rich-run, paragraph-tab, paragraph-padding, paragraph-indent, paragraph-spacing/contextual-spacing, paragraph-justify, theme text/rich-run, direct/style-inherited run-highlight, paragraph frame, style-inherited paragraph frame, and opaque paragraph color tests | Complex list layout, alpha-capable sources beyond Wordprocessing hex color/shading semantics, and full pagination-aware paragraph layout |
| Tables | Basic with shared text padding, multi-paragraph table-cell flow, paragraph spacing/contextual collapse inside cells, list markers, rich text runs, run highlights, direct/simple nested tables, independent cell border edges, double-line table borders, diagonal cell borders, direct theme fills/borders, direct theme text, base and conditional table-style fills/borders, band sizes, and corner precedence | Table rendering, cell-margin padding, table-cell paragraph spacing/contextual-spacing/list-marker, table-cell rich-text/highlight, nested-table, border-box, double-border, diagonal-border, theme-fill/border, theme text, style-inherited table-cell, conditional band, and conditional corner tests | Complex nested table layout, full table-style/theme conflict resolution, table layout edge cases |
| Inline and anchored images | Supported for the shared PNG/JPEG/baseline-TIFF/uncompressed-BMP/first-frame-GIF/OfficeIMO-WebP set, including table-cell flow, crop, top-and-bottom/no-wrap/square-wrap anchors, and tight/through rectangular fallback | Body and anchored source-format, crop, table-cell, wrap-side, distance-margin, and limited-wrap tests | Animated GIF timing, external fetching, broader source-codec variants, and exact polygon/transparent-region wrapping remain explicit gaps |
| DrawingML and VML shapes | First slices supported for inline wordprocessing DrawingML shapes, square-wrapped page-relative anchored DrawingML shapes, basic VML rectangle/ellipse/rounded-rectangle/line/polygon geometry, DrawingML/VML shape rotation and flip projection, and DrawingML/VML text-box frame plus text projection that maps to shared Drawing primitives, including VML text-box inset, fit-to-text height estimation, DrawingML/VML text-box vertical anchoring, rich runs, rotation, and flip projection | Inline, square-wrapped anchored, and transformed DrawingML arrow shape tests through WordShape.AddShapeDrawing(...), VML primitive and transformed shape tests through WordShape.AddShape(...), DrawingML and VML text-box tests through AddTextBox(...) / AddTextBoxVml(...), VML inset/fit-to-text, text-box vertical-anchor, rich-run, and transform tests, OfficeShapePresets, SVG, decoded PNG pixels, and text exclusion |
Text-box effects, deeper overflow/autofit fidelity, non-square wrap families, advanced geometry, exact adjustable geometry, and more shape effects remain explicit gaps |
| Headers/footers | First-page/default supported with shared text, rich text, list marker, table, inline PNG image flow, square-wrapped PNG image anchors, square-wrapped DrawingML shape anchors, and square-wrapped text boxes | Header/footer, header/footer rich-run, header/footer list-marker, header/footer table, header/footer image, header/footer floating image, header/footer floating shape, and header/footer floating text-box tests | Complex section inheritance, advanced floating object effects, and overflow fidelity |
| Floating/wrapped objects | Partial for top-and-bottom image block flow, no-wrap image anchors, square-wrap image text exclusion with authored left/right side preference and anchor distance margins, header/footer square-wrap PNG/shape/text-box anchors, and tight/through image projection with rectangular exclusion fallback | Top-and-bottom anchored image, no-wrap anchored image, square-wrap anchored image, square-wrap side preference/distance-margin, header/footer floating image/shape/text-box, and tight/through limited-wrap tests | Needs deliberate Word layout model for real tight/through polygon wrapping, object interaction, advanced header/footer floating effects, and advanced anchoring |
| Friendly API | Single and batch pages supported | document.ToImage().Page(...), document.ToImages().FromPage(...).TakePages(...), five-format fluent selection, direct format helpers, path/stream/folder saves |
Keep API additions thin over the renderer |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| Continuous and paged surfaces | Five-format single and batch export supported | HtmlConversionDocument.ExportImage(s), ToImage(), ToImages(), raster-format signature tests |
Expand representative visual galleries |
| Async rendering | Resource-aware direct and fluent async APIs supported | ExportImageAsync, ExportImagesAsync, async save/cancellation tests, and an HTML fluent test proving the resource-aware renderer is invoked |
CPU-only document projection remains synchronous; async is reserved for resource resolution and file/stream I/O |
| Friendly API | Direct PNG/JPEG/TIFF/SVG/WebP helpers and fluent builders | Format-specific byte/save helpers plus ToImage(options) / ToImages(options) cloned configuration |
Keep future adapters on HtmlConversionDocument, not raw string reparsing |
| Five-format single/batch bridge supported | HTML/RTF/text selection, message chrome, CID/content-location attachment resolution, direct and fluent sync/async tests | Fidelity follows retained email body and HTML support | |
| EPUB | Five-format selected chapter/page batch bridge supported | OfficeIMO.Epub.Image, retained raw HTML/resource mapping, fluent chapter selection, diagnosed text fallback |
Encrypted/incomplete packages remain diagnostic-driven |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| Page image export | Five formats supported | OneNotePage.ToImage(), rendering and format tests |
More representative authored-notebook visual gates |
| Section/notebook batch | Supported with page selection | ToImages().FromPage(...).TakePages(...) |
Hierarchy-aware filename profiles could be added if users need them |
| Raster safety | Shared | Inherited MaximumRasterPixels and RasterOverflowBehavior; IMAGE_RASTER_SCALE_REDUCED is emitted before allocation |
Keep OneNote-specific source-payload limits in OneNote |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| Page and selected document page | Five formats supported | Native SVG/raster renderer, ExportImage, ToImage(), format signature tests |
Broader real-world fixture checks for non-PNG encoders |
| Document batch | Supported with page selection | ExportImages, ToImages().FromPage(...).TakePages(...), folder-save test |
Optional hierarchy/file naming profiles |
| Raster safety | Shared and supersampling-aware | The shared planner accounts for Visio's internal supersampling surface and emits IMAGE_RASTER_SCALE_REDUCED before allocation |
Keep Visio geometry limits in Visio and output limits in Drawing |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| Loaded PDF page | Five formats supported | PdfReadPage.ExportImage, ToImage(), format identity tests, DPI and thumbnail tests; supported missing annotation appearances are synthesized through the annotation appearance owner and reported as render.annotation.appearance-synthesized |
Coverage follows the first-party PDF page-to-Drawing capability manifest; Type 3 fonts, unsupported content-paint color spaces, and arbitrary producer edge cases remain diagnostic-driven |
| Authored or loaded PDF document | Selected batch supported | PdfDocument.ExportImages / ToImages() and PdfReadDocument.ExportImages / ToImages().Pages("2,1") share the page renderer, pixel budget, and cancellation contract |
Continue extending PDF operator/font/form/transparency fidelity in the existing page projection |
| Authored and stamped raster input | Drawing-supported source set normalized once | JPEG and writer-safe PNG embed directly; baseline TIFF, uncompressed BMP, first-frame GIF, and OfficeIMO literal-lossless WebP normalize through OfficeImagePngConverter with density preservation before every flow, table, inline, header/footer, background, watermark, canvas, and stamp placement |
Broader source codecs remain explicit Drawing or caller-codec work; malformed PNGs retain precise fail-closed writer diagnostics |
| Source-to-PDF conversion result | Shared paged-image bridge | PdfDocumentConversionResult.ExportImages / ToImages() retain source conversion diagnostics for Markdown, AsciiDoc, LaTeX, RTF, OneNote, OpenDocument, Word, Excel, PowerPoint, and HTML adapters |
A source package should add a direct image API only when PDF pagination is not the right visual contract |
| Surface | Status | Evidence | Key gaps |
|---|---|---|---|
| ODT | Single and selected estimated-page batch supported | WordOpenDocumentImageExportExtensions; ODF report mapped into image diagnostics |
Inherits ODT-to-Word and Word estimated-pagination limits |
| ODS | Selected worksheet batch supported | ExcelOpenDocumentImageExportExtensions; ODF report mapped into image diagnostics |
Inherits ODS-to-Excel and Excel page/range limits |
| ODP | Selected slide batch supported | PowerPointOpenDocumentImageExportExtensions; ODF report mapped into image diagnostics |
Inherits ODP-to-PowerPoint projection limits |
| Diagnostic | Current meaning | Preferred next move |
|---|---|---|
IMAGE_SOURCE_DECODE_FALLBACK |
Drawing and the optional caller codec could not decode a source image, so the output contains a visible placeholder or a documented family-specific artwork fallback | Add a bounded Drawing decoder only for a justified format subset, or supply ImageCodec; do not reintroduce family-specific “skipped image” warnings |
IMAGE_TEXT_SHAPING_FALLBACK |
Raster output used the bounded managed Arabic/bidi path because no host shaper accepted the run | Supply IOfficeTextShapingProvider for full OpenType shaping, or reject the approximation with OfficeImageExportPolicy.RequireNoLoss |
render.annotation.appearance-synthesized |
A loaded PDF annotation had no usable authored appearance, so the PDF owner synthesized a bounded appearance from its geometry and style | Accept the documented approximation, require no loss, or regenerate an authored normal appearance before export |
unsupported-powerpoint-shape |
Shape type, geometry, transform bounds, text-margin case, or unsupported custom geometry command/formula case cannot be projected | Split by reason as fidelity grows; add Drawing geometry primitives where reusable |
unsupported-slide-background |
Background fallback used | Expand PowerPoint background projection, reuse Drawing fills/images |
unsupported-word-page-index |
A requested page is beyond the renderer's estimated content | Improve page estimation for the triggering content family |
unsupported-word-body-element |
Body element has no Drawing projection | Add Word-owned traversal plus Drawing primitive mapping |
unsupported-word-nested-table |
Nested table shape is outside the direct/simple cell-local layout currently projected | Expand cell-local flow/table layout deliberately |
unsupported-word-shape |
Shape geometry, size, or wrap family is not currently projected through shared Drawing | Expand Word-owned shape extraction and route reusable geometry/style into Drawing |
unsupported-word-textbox |
Text box size, anchor, or frame cannot be projected through shared Drawing | Expand Word-owned text-box layout/effects while continuing to use Drawing text/shape primitives |
unsupported-word-floating-image |
An unresolved anchor or page-outside anchor needs Word layout beyond the current floating-object slices | Expand the Word-owned floating layout model, then project resolved placement through Drawing images |
limited-word-floating-image-wrap |
Tight/through wrapped image rendered with a rectangular exclusion instead of true polygon or transparent-region wrapping | Add Word-owned polygon/transparent-region wrapping and remove this fallback warning when fidelity is real |
unsupported-word-pagination |
A content family cannot yet advance through the renderer's estimated pagination model | Fix that Word-owned layout path without claiming Word-exact pagination |
- Keep Excel as the parity benchmark and avoid regressing range export behavior.
- Push PowerPoint next because fixed-size slides map naturally to Drawing.
- Improve shared Drawing geometry and chart fidelity whenever PowerPoint/Excel need the same concept. Common and expanded DrawingML polygon/star, flowchart, callout, arrow-callout, symbol, bracket/brace, multi-direction arrow, and additional arrow presets now live in
OfficeShapePresets, keeping fixed-slide diagram support reusable. - Keep improving Word's estimated pagination by content family: row splitting, complex nested tables, floating-object interaction, and exact tight/through wrap geometry. Do not describe it as Microsoft Word-exact pagination.
- Add source convenience only as a thin adapter over a proven visual owner. Common format selection, preview/print profiles, DPI, policy, fonts, batch limits, streaming, and save mechanics live on the Drawing builders.
- Extend the existing first-party PDF page-to-Drawing projection by capability-manifest evidence; all five output formats, shared raster safety, and source-to-PDF adapter bridging are now in place.