diff --git a/README.md b/README.md index db02d76..2cb2011 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ How the project is developed and shipped is documented separately: - Undo and redo for strokes, erasing, containers, text edits, and transformations - Versioned ZIP-based `.wboard` documents with an embedded `preview.png`. Explorer shows that picture as the file thumbnail in the released install. The VS Code extension in `vscode/sqlbi-whiteboard` opens the same picture instead of the ZIP. - Markdown `.wimport` recipes that build image and text containers from headings -- **File → Export** to PowerPoint: the board is cut into areas where it is empty, one slide per area with the text containers in the speaker notes and an overview slide first. The dialog shows the areas numbered on the board and updates as the settings change. [docs/export.md](docs/export.md) explains how areas are chosen +- **File → Export** to PowerPoint or PDF: the board is cut into areas where it is empty, one slide or page per area, with an overview first. A deck carries the text containers in the speaker notes; a PDF has a bookmark per page and can put the whole board on one page to zoom into. The dialog shows the areas numbered on the board and updates as the settings change. [docs/export.md](docs/export.md) explains how areas are chosen - An intentionally small floating toolbar - A File / Edit / View / Help tab strip. Click a tab for a one-row command strip over the canvas - Preferences for the startup monitor, full-screen start, finger drawing, mouse drawing, the pen button, snippet format order, laser trail timing and weight, toolbar position and layout, keeping the Eraser on the toolbar for a pen that has no reverse end, and (except Store installs) a daily new-version check @@ -203,7 +203,7 @@ Use **Copy settings** after finding a useful combination so the exact values can | Escape | Cancel the active text edit, close the command strip, or leave full screen or canvas only | | Ctrl+S / Ctrl+O | Save / open a board | | Shift+F12 | Save As | -| Ctrl+E | Export the board to PowerPoint | +| Ctrl+E | Export the board to PowerPoint or PDF | | Delete | Delete the selected container and its linked strokes | | Alt+L | Laser pointer | | File / Edit / View / Help | Tab strip. Click a tab for a one-row command strip over the canvas. Click the canvas to hide it | diff --git a/docs/decisions.md b/docs/decisions.md index d924ba9..7acf992 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -557,7 +557,7 @@ else. ## 26. Export cuts the board where it is empty -**Implemented for PowerPoint.** The plan, with the alternatives, is +**Implemented for PowerPoint and PDF.** The plan, with the alternatives, is [export.md](export.md); the calls made while building it are in [export-decisions.md](export-decisions.md). @@ -582,9 +582,18 @@ full HD, so calligraphy, the highlighter, and SVG come out as they are seen. The containers go in the speaker notes so DAX and SQL can still be copied. An editable deck, with native text boxes and images, is a later phase. -`DocumentFormat.OpenXml` writes the file: Microsoft's own SDK, MIT, managed-only, so it -passes the tests decision 21 set for a dependency. The writer lives in a new assembly, -`SQLBI.Whiteboard.Export`, with no WPF dependency, which the signing step lists. +`DocumentFormat.OpenXml` writes the deck and `PdfSharp` the PDF: Microsoft's own SDK and +a long-lived MIT library, both managed-only, so they pass the tests decision 21 set for a +dependency. The writers live in a new assembly, `SQLBI.Whiteboard.Export`, with no WPF +dependency, which the signing step lists. + +A PDF page is also a picture, for now. PDF has one freedom a slide lacks, a page of any +size, and the export uses it: the whole board can go on one page the shape of the board, +rendered at up to six thousand pixels on the longer edge, for a reader who zooms. Pages get +a bookmark each and a footer with the board name, date, and page number. Vector pages, +with selectable text and ink as paths, are a later phase, and so is Print through +Microsoft Print to PDF, which was weighed as the zero-dependency route and kept for later +because the driver, not the application, asks for the file name. --- diff --git a/docs/export-decisions.md b/docs/export-decisions.md index 5df2f34..620d481 100644 --- a/docs/export-decisions.md +++ b/docs/export-decisions.md @@ -50,3 +50,22 @@ which phase made it and why. the pipeline's signing step. The smoke test project references it to open the produced deck, which means the core-only verification now restores the Open XML SDK package; it still needs no WPF. + +## E2 — PDF + +- **PDF is a choice in the same dialog**, not a second command. The dialog relabels itself + (pages rather than slides), hides the slide size and the notes switch, and shows the + page size and the footer switch. The preview and the areas are the same. +- **Pages are landscape only**, A4 or Letter. Boards are landscape; a portrait option + was left out until someone asks. +- **Each page has a header line with the area's title** as well as the bookmark, so a + printed page says what it is. The footer (board name, date, page n of m) is a switch, on + by default. +- **No notes in a PDF.** There is nowhere for them that is not the page, and the text is + in the picture already. Selectable text is what the vector phase brings. +- **The whole-board page is rendered at up to 6000 pixels on the longer edge** and sized + at 144 dpi, so a 6000-pixel board becomes a 41-inch page, under the 200-inch limit + viewers enforce. It has no header or footer: the page is the board. +- **The overview page** works as for the deck: first, only with two or more areas. +- **`PdfSharp` 6.2.4** is the writer, MIT and managed-only. Fonts come from the Windows + fonts folder through its platform resolver; the export runs only on Windows. diff --git a/site/guide.html b/site/guide.html index ce8ee62..a9e09c5 100644 --- a/site/guide.html +++ b/site/guide.html @@ -764,6 +764,7 @@

LiveView

Files

The File row holds five commands: New, Open, Save, Save As, and Export. Ctrl+S and Ctrl+O save and open a .wboard without opening the row at all.

Export (Ctrl+E) writes the board as a PowerPoint deck. The board is cut into areas wherever it is empty: a picture or a note keeps the ink drawn on it, and a stroke that spans two of them keeps them together. Each area becomes a slide, with the text containers in the speaker notes so that DAX and SQL can be copied, and an overview slide first shows where every slide sits on the board. The dialog previews the areas, numbered, and the Gap between areas slider and Smallest text on a slide change the cut as you move them. Drawing order puts slides in the order the areas were begun; Reading order goes top-left to bottom-right.

+

Choose PDF in the same dialog for a document instead: the same areas, one per A4 or Letter page in landscape, each with a bookmark, and a footer with the board name, the date, and the page number. Whole board on one page writes a single page the shape of the board, to be read by zooming, which suits a board that is one drawing.

The released installer registers that type and .wimport. The pre-release (Dev) channel does not, so it can sit beside a released copy without stealing the file association.

diff --git a/site/shortcuts.html b/site/shortcuts.html index d43b619..3e53f28 100644 --- a/site/shortcuts.html +++ b/site/shortcuts.html @@ -119,7 +119,7 @@