Skip to content

Export an editable deck: images and text as objects, ink as an overlay - #94

Open
marcosqlbi wants to merge 1 commit into
feature/export-e2-pdffrom
feature/export-e3-editable-deck
Open

Export an editable deck: images and text as objects, ink as an overlay#94
marcosqlbi wants to merge 1 commit into
feature/export-e2-pdffrom
feature/export-e3-editable-deck

Conversation

@marcosqlbi

Copy link
Copy Markdown
Collaborator

Why

Phase E3 of docs/export.md, on top of #93 (base is the E2 branch; retarget to main once it merges). A picture slide is exact but dead: a person who wants to rework a deck after a session needs the DAX to be text and the pictures to be pictures.

What it does

  • Slide content: Picture or Editable, a choice on the Export dialog for PowerPoint. Picture stays the default because it is exact; Editable is best effort by design.
  • Editable puts each image on the slide as a picture (PNG and JPEG bytes as they are, sniffed rather than trusted to the stored content type; SVG, BMP, and GIF rasterized at the size they take on the slide through the code the clipboard uses), each text container as a rounded text box with the language service's title as its first line and the body as runs carrying the syntax colors and weights the screen shows, a LiveView as its current frame, and all the ink as one transparent PNG over everything.
  • Placement is identical to the picture mode: the rasterizer exposes the camera it would have used, and every element is mapped through it into the same picture box.

Where the code is

  • SQLBI.Whiteboard.Export/ExportPage.cs: the element model (SlideImageElement, SlideTextElement), in page pixel space.
  • PptxDeckWriter: a slide with elements gets one shape per element in z-order; the single-picture path is unchanged.
  • SQLBI.Whiteboard/Export/EditableSlide.cs: builds the elements from an area; BoardSurface gains DrawBackground and ObjectFilter for the ink overlay.
  • Smoke tests write an editable slide and check its pictures, text box, runs, and image parts.

The smaller calls are under E3 in docs/export-decisions.md; decision 26 is updated.

🤖 Generated with Claude Code

Slide content gains a second choice beside the exact picture. Editable
puts each image on the slide as a picture, each text container as a text
box whose runs carry the syntax colors and weights the screen shows, and
all the ink as one transparent picture over them. Everything is placed
through the camera the picture would have used, so the two modes put
things in the same place.

The deck writer takes a list of elements in the page's pixel space and
maps them into the picture box; BoardSurface can now draw without its
background and with an object filter, which is how the ink overlay is
rendered by the same code that draws the screen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant