## storytold/printcraft — v0.1.0…v0.1.1

_24 commits._

### Features
- **M10: Export to Word (.docx), HTML and RTF (new export crate with a small zip writer): paragraphs, headings, bold/italic, images, page breaks; doc_export_office tool** (70280a4)
- **M11: PDF/A (new preflight crate): verify PDF/A-2b/3b structural rules, Save as PDF/A (XMP identification, generated sRGB output intent, forbidden actions, annotation flags, interpolation, encryption), PDF/A dialog; pdfa_verify, pdfa_convert tools** (4d60af8)
- **M12: Compare files (new compare crate): word-level text differences, Compare panel with shading on the new file, report PDF, differences as comments; doc_compare, doc_compare_report, doc_compare_mark tools** (c12b795)

### Backend
- **Release 0.1.1** (9d99f4b)
- **M13: ROADMAP: session 12 later progress (compare, actions, PDF/A, Office export, forms)** (2f24897)
- **M13: Action Wizard: built-in actions (Prepare for Distribution, Optimize Scanned Documents, page numbers, confidential, sanitize), custom actions with 12 step kinds, background runs over files; action_list, action_run tools** (632a21b)
- **M12: Compare files: visual differences (pages rendered and compared region by region), shaded orange; doc_compare visual option** (a4bf717)
- **M6: Prepare a form detects fields (underscore blanks, rules, boxes, check squares) and names them from their labels; form.detect, form_detect_fields** (aa19468)
- **M6: Field Properties ▸ Actions tab (six triggers, JavaScript/link/reset/menu/page/show-hide/submit actions); form_actions, form_set_actions tools; signing UI tests get their own temp folders** (620ef4f)
- **M6: Merge data files into spreadsheet (FDF, XFDF, filled PDF forms → CSV); form_merge_data tool** (6ff0bf8)
- **M13: ROADMAP: session 12 progress (OCR, JavaScript, in-place editing)** (9321864)
- **M6: Acrobat JavaScript: sandboxed boa engine with the forms object model (printcraft-js); custom keystroke/validate/calculate/format scripts, button scripts, document JavaScripts, JavaScript console (⌘J), Preferences ▸ Enable JavaScript; js_run, js_document_scripts, js_set_document_script, form_set_script, js_enabled tools** (06f8d73)
- **M10: Recognize text in multiple files (ocr.recognize_batch, ocr_recognize_files): searchable copies written to a folder in the background** (a7ffee0)
- **M10: Scan & OCR ▸ Recognize text: ocrs-based recognition (models fetched by cargo xtask models), invisible searchable text layer, Recognize Text dialog with background progress; ocr_recognize / ocr_status tools** (b87cf39)
- **M7: Justify, underline, line spacing, character spacing and horizontal scale for existing paragraphs (and justify for added text); Lucide align-justify icon** (d7c22d7)
- **M7: Format existing text: font family, bold/italic, size, colour and alignment for a paragraph (Format text panel live while editing; text_edit formatting arguments); centred and right-aligned paragraphs are detected** (385313e)
- **M7: Edit text & images: select existing page images to move, resize, rotate, flip, replace, save or delete; page_images, image_edit, image_save tools** (c2f53d5)
- **M7: Edit text works on paragraphs: detection, in-place editing with rewrap to the box, original spacing, colour and font (or Helvetica); text_paragraphs and text_edit paragraph** (695e460)
- **M7: Edit text: click a line of existing text and retype it in place, reusing its font when it can show the text, else Helvetica; text_lines / text_edit tools** (fb6208b)
- **M7: PDF font tables move to the fonts crate with Unicode decoding/encoding (ToUnicode, WinAnsi/MacRoman/Standard, Differences glyph names, subset glyph checks)** (5a70838)
- **M3: frame-budget tests skip (and say so) when the machine is overcommitted** (2548228)
- **xtask: version test uses gates::root (fixes the xtask test build)** (beb4e14)
- **Roadmap: measured parity (45% of features, ≈35% of effort) and revised Opus 5.5 hour estimate (≈600–1,100 h remaining)** (dab27f0)
- **xtask: make version.rs compile here and register `cargo xtask version`** (e849fbc)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/storytold/printcraft?utm_source=github-action)._