# pi-word-pdf

Windows-first Microsoft Word and PDF workflows for Pi.

## Implemented layers

- Word: clean white editorial DOCX creation, reading, structural editing, comments, tracked changes, explicitly requested tables, text-box COM fallback, validation, rendering, legacy conversion, and Word-to-PDF conversion.
- PDF: Word-backed PDF-only creation through a deleted temporary DOCX, validation, metadata, text/table extraction, merge, page-range split, rotate, text watermarks and overlays, AcroForm filling, signature/stamp images, AES-256 encryption/decryption, and PNG rendering.
- Shared: safe staged outputs, rollback for overwrite, managed previews, status reporting, and private dependency setup.

OCR and PDF certificate signing are not included.

## Install

```powershell
pi install npm:pi-word-pdf@0.1.1
```

Then run `/reload`, `/word-pdf-setup`, and `/word-pdf-status`.

## Commands and setup

- `/word-pdf-status` – read-only capability report.
- `/word-pdf-setup` – show the exact pinned PDF packages, request one confirmation, then create `.runtime/python` without modifying global Python.

Normal startup never installs or updates dependencies. PDF passwords are collected through a masked TUI component and are passed only through worker stdin – never through tool parameters or command-line arguments.

Default outputs append `_修改版` and never overwrite the input. Explicit `overwrite: true` is required to replace an existing output. Every produced document is validated and rendered for review.

New Word documents default to a pure-white editorial layout with generous margins, SimSun body text, Microsoft YaHei headings, black/gray typography, restrained dark-red accents, safe heading line heights, and no shaded cards. Two additional presets are available: `business` for reports/proposals and `formal` for contracts/notices. `word_create`, `word_apply_style`, and `pdf_create` accept validated custom Chinese/Latin/body/heading fonts, sizes, line spacing, indentation, margins, accent color, and header/footer settings; unavailable fonts fail explicitly rather than being silently replaced. Run `/word-pdf-create` for an interactive DOCX creation flow with a preset/custom-style questionnaire. `word_apply_style` creates a styled copy of an existing DOCX without converting its tables. Markdown tables in new documents are converted to readable bullet paragraphs; `word_table` is reserved for explicit table requests.

## Development

```powershell
npm install --ignore-scripts
node node_modules/bun/install.js
npm run check
npm run test:integration
npm run pack:check
```

See [PROJECT.md](./PROJECT.md) for the authoritative Chinese project contract.
