Skip to content

Latest commit

 

History

History
153 lines (128 loc) · 31.2 KB

File metadata and controls

153 lines (128 loc) · 31.2 KB

OfficeIMO Image Export Capability Matrix

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.

Ownership Model

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

Shared Drawing Foundation

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

Excel

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

PowerPoint

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

Word

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

HTML

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

OneNote

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

Visio

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

PDF And Paged Source Adapters

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

OpenDocument Bridges

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 Gaps To Burn Down

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

Near-Term Fidelity Order

  1. Keep Excel as the parity benchmark and avoid regressing range export behavior.
  2. Push PowerPoint next because fixed-size slides map naturally to Drawing.
  3. 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.
  4. 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.
  5. 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.
  6. 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.