Files
Artstr-Studio/src
thePR0M3TH3AN 3237a69247 PPTX import Phase 3: image + chart / table / SmartArt placeholders
Every p:pic and every p:graphicFrame on a slide now becomes an
Artstr image layer pointing at the shared placeholder URL
(https://i.postimg.cc/9fY3n60q/example-image-replace-me.png). No
binary media is ever decoded from the .pptx package — the user
replaces each placeholder with their own URL after import, which
keeps imported decks Nostr-publishable out of the box and honours
Artstr's "remote URLs only" image model.

Pictures (p:pic):
- convertPicture reads spPr/xfrm for geometry, resolves the
  a:blip@r:embed relationship through the slide's _rels file, and
  uses the original media filename (basename of the relationship
  Target, URL-decoded) in the layer name: "Image: image3.png".
- Missing embed relationship → MISSING_IMAGE_RELATIONSHIP warning;
  the placeholder still lands.

GraphicFrames (p:graphicFrame):
- convertGraphicFrame reads xfrm directly off graphicFrame (not
  spPr — that's a graphicFrame quirk), then dispatches on
  a:graphic/a:graphicData@uri:
    • chart   → "Chart placeholder: <name>"      + UNSUPPORTED_CHART_PLACEHOLDER     + placeholders.charts++
    • table   → "Table placeholder: <name>"      + UNSUPPORTED_TABLE_PLACEHOLDER     + placeholders.tables++
    • diagram → "SmartArt placeholder: <name>"   + UNSUPPORTED_SMART_ART_PLACEHOLDER + placeholders.smartArt++
    • else    → "Unknown object placeholder"     + UNSUPPORTED_UNKNOWN_PLACEHOLDER   + placeholders.unknown++

walkSpTree now dispatches sp / pic / graphicFrame. readSlideRels
loads the per-slide _rels file into a Map<rId, {target,type}> once
per slide and passes it through ctx.slideRels.

Smoke-tested:
- gallery_template_layout_set.pptx: slide 10's chart now appears
  as 'Chart placeholder: Chart 0' (image layer, postimg URL, 9.3 x
  5.85 inches at 1.2, 3.08) with an UNSUPPORTED_CHART_PLACEHOLDER
  warning in the report.
- Synthetic multi-placeholder deck (1 picture + chart + table +
  SmartArt) exercises every branch: Image: image1.png from rels
  basename; chart / table / SmartArt placeholders with the right
  names and counters; positions and dimensions all correct in
  inches.
2026-05-29 15:20:28 -04:00
..
2026-05-26 16:13:06 -04:00
2026-05-20 22:06:50 -04:00
2026-05-26 16:13:06 -04:00