# CCS PDF Editor

| Field | Value |
|-------|--------|
| **Version** | **1.5.40** |
| **Owner** | CCS Information Technology |
| **Approved by** | CCS Information Technology |
| **Last updated** | 2026-08-15 |
| **Review frequency** | Annual (or after major product / deploy change) |
| **Next review** | 2027-08-05 |

Internal **offline-first** PDF viewer and editor for Community Counseling Solutions. Staff open PDFs (or project files) on their device, annotate, **fill and design fillable AcroForm fields**, work with **multiple documents in tabs**, run **local OCR**, unlock many **password-protected** PDFs, and save either an editable **`.ccspdf` project** or a **`.pdf`** (annotations flattened; form fields remain fillable; optional password on export). Document bytes are processed **in the browser or Windows shell**; the application does **not** upload document content to a CCS app server.

**Stack:** Static HTML / CSS / vanilla JavaScript, PDF.js, pdf-lib, QPDF (WASM), html2canvas, Tesseract.js (all vendored under `lib/`). Central **`config.js`** for feature flags and cache-busting. Optional **Windows WebView2** shell.

**Release notes:** [docs/CHANGELOG-1.5.25.md](docs/CHANGELOG-1.5.25.md) · prior: [docs/CHANGELOG-1.5.3.md](docs/CHANGELOG-1.5.3.md)

| Document | Audience | Contents |
|----------|----------|----------|
| **[docs/AUDITOR-FAQ.md](docs/AUDITOR-FAQ.md)** | Auditors, leadership | One-page Q&A cover sheet + evidence map |
| **[docs/SYSTEM-PROFILE.md](docs/SYSTEM-PROFILE.md)** | Auditors, IT leads | System owner card: owners, contacts, classification, host fields |
| **[docs/GOVERNANCE.md](docs/GOVERNANCE.md)** | Auditors, IT, compliance | Change mgmt, access, privacy posture, residual risk, IR, evidence pack |
| **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)** | Architects, IT leads | Client-side design, data flow, deploy topology, offline model |
| **[docs/DEVELOPMENT-STANDARDS.md](docs/DEVELOPMENT-STANDARDS.md)** | Developers | Coding, security, offline rules, release checklist |
| **[docs/HOW-TO.md](docs/HOW-TO.md)** / **[docs/index.html](docs/index.html)** | End users (staff landing) | Everyday how-to; generated `docs/index.html` |
| **[docs/USER-GUIDE.md](docs/USER-GUIDE.md)** | End users / power users | Workspaces, fill vs design, save, OCR, passwords |
| **[docs/USER-TRAINING.md](docs/USER-TRAINING.md)** | Trainers / supervisors | Training tracks A–D |
| **[docs/marketing/](docs/marketing/)** | Browser / offline pack | HTML renders (IT overview + generated docs) |
| **[docs/marketing/executive-pitch.html](docs/marketing/executive-pitch.html)** | Leadership / IT | Frank-style meeting pitch + market comparison |
| **[docs/WINDOWS-INSTALL-SOP.md](docs/WINDOWS-INSTALL-SOP.md)** | IT support | Short Windows package install + smoke test |
| **[scripts/extract-ccspdf-audit.ps1](scripts/extract-ccspdf-audit.ps1)** | IT / IR | Extract/verify project trailer + rolling audit from `.ccspdf` (also ships as `tools\Extract Project Audit.bat` in the Windows package) |
| **[deploy_windows/README.md](deploy_windows/README.md)** | IT deployers / builders | Windows WebView2 package build details |
| **[VERSION](VERSION)** | All | Product version (semver) for this release |
| **[LICENSE](LICENSE)** | Legal / IT | Internal-use ownership, support, and restrictions |
| **[NOTICE](NOTICE)** | Legal / IT | Third-party library disclosures |

**Staff how-to:** open [docs/index.html](docs/index.html) (from [docs/HOW-TO.md](docs/HOW-TO.md); also linked from the in-app **?** help).  
**IT / auditor pack:** open [docs/marketing/index.html](docs/marketing/index.html). After editing markdown, regenerate HTML with:

```powershell
powershell -File docs/marketing/render-docs.ps1
```

---

## What it is for

1. **Open** PDFs / `.ccspdf` (including many password-protected PDFs).  
2. **Fill** existing fillable forms in **Editor** with **Pointer**.  
3. **Annotate** — text, stamps, shapes, tables, images, snip-and-move, signature image.  
4. **Design** fillable fields in **Form** workspace (supported native fields auto-import for layout tools).  
5. **OCR** English scans offline.  
6. **Save Project** (`.ccspdf` — editable state + short rolling edit insight log) or **Save PDF** (flatten annotations; keep fields fillable; optional password).  
7. **Print** via the browser / host print dialog.  
8. **IT only:** extract project trailer audit with `scripts/extract-ccspdf-audit.ps1` or Windows package `tools\Extract Project Audit.bat`.

**Not a substitute for:** enterprise e-signature platforms with identity proofing, certified legal holds, or a DMS of record.

---

## Key capabilities

| Area | Highlights |
|------|------------|
| **Tabs** | Multi-document workspace (config-gated); session restore via IndexedDB |
| **Workspaces** | Editor (annotate + **fill**) vs Form (design fields) |
| **View** | PDF.js canvas + text layer + interactive form widgets |
| **Edit** | DOM overlays (text, rect, line, table, image, snip) |
| **Fillable forms** | Native fill; designer shells; strip + re-embed on export for reliable AcroForms |
| **Passwords** | Open password dialog; optional export protect (QPDF WASM) |
| **History** | Command-pattern undo / redo (instruction tape) + pages panel |
| **OCR** | Tesseract.js offline (embeds for `file://`); active document only |
| **Project save** | `.ccspdf` — re-editable; catalog `/CCSProject` (GZipHex) + layered seal; optional legacy trailer |
| **Final PDF** | Flatten annotations; keep fillable AcroForms; embed `/CCSProject` for audit; optional encrypt |
| **Form signatures** | Name line + attestation meta (hashed into schema seal); hover popover for full hashes + copy |
| **Offline intent** | Vendored libs; browser pack; Windows EXE |
| **PWA hooks** | `manifest.json`, `launch_handler` focus-existing, service worker stub on HTTPS |

---

## Deploy options

| Path | Command / artifact | Audience |
|------|-------------------|----------|
| **Intranet HTTPS** | Copy static tree (or `app/` contents) to web host | Primary production |
| **Browser offline zip** | `scripts/build-release.ps1` → `dist/CCS-PDF-Editor-*` | USB / share / no server |
| **Windows desktop** | `scripts/build-windows.ps1` → `dist/CCS-PDF-Editor-Windows-*` | Open with / Desktop icon |

### OWA (HTTPS)

1. Deploy static files; align `manifest.json` `start_url` with public path.  
2. Prefer intranet-only HTTPS.  
3. Smoke-test open → fill form → annotate → Save Project → Save PDF → Print.  
4. Record host URL and version on [docs/SYSTEM-PROFILE.md](docs/SYSTEM-PROFILE.md).

### Windows package

See the short IT procedure: **[docs/WINDOWS-INSTALL-SOP.md](docs/WINDOWS-INSTALL-SOP.md)**.

1. Unzip `CCS-PDF-Editor-Windows-*`.  
2. Run `CcsPdfEditor.exe`.  
3. Optional: `tools\Create Desktop Shortcut.bat`.  
4. Recommended: `tools\Register File Types.bat` (`.ccspdf` default; `.pdf` Open with).  

Build notes: [deploy_windows/README.md](deploy_windows/README.md).

---

## Requirements

| Component | Notes |
|-----------|--------|
| Browser | Modern Chromium, Edge, Firefox (or Safari); File System Access preferred on Chromium |
| Host (OWA) | Static HTTPS file host; no app DB |
| Windows shell | WebView2 Runtime; .NET Desktop Runtime 8+ unless self-contained build |
| Disk | Space for open documents in memory and saved outputs |

---

## Support

| Item | Contact |
|------|---------|
| Entry point | IT Helpdesk — ITHelpdesk@ccsemail.org |
| Technical owner | CCS Information Technology Department |
| Security / privacy escalation | CCS Incident Response process (via IT Helpdesk) |

---

## Compliance summary

This application does not maintain a document database or application-level user roles, and does not upload PDF content to an application API. Documents are processed on the endpoint and saved by the user. Residual risk is concentrated on endpoint handling, static-host integrity, and file storage practices. See [docs/GOVERNANCE.md](docs/GOVERNANCE.md) §4–§5 and [docs/AUDITOR-FAQ.md](docs/AUDITOR-FAQ.md).
