# CCS PDF Editor — Windows Install SOP (IT)

| Field | Value |
|-------|--------|
| **Version** | 1.5.40 |
| **Audience** | CCS IT support / desktop engineering |
| **Last updated** | 2026-08-15 |
| **Related** | [SYSTEM-PROFILE.md](SYSTEM-PROFILE.md), [USER-TRAINING.md](USER-TRAINING.md) Track D |

Short procedure to deploy the **Windows WebView2** package for staff who need a desktop icon and optional file associations. **No admin rights** are required for per-user install steps below (HKCU + Desktop).

---

## 1. Prerequisites (target PC)

| Requirement | Notes |
|-------------|--------|
| Windows 10/11 | x64 |
| **WebView2 Runtime** | Usually present with Microsoft Edge; repair via Microsoft “Evergreen WebView2 Runtime” if EXE fails to start |
| **.NET Desktop Runtime 8+** | Required unless the package was built with `-SelfContained` |
| Disk space | ~50 MB for app + room for user PDFs |

Confirm the zip name matches [VERSION](../VERSION) (**1.5.40**). Standard pack: `CCS-PDF-Editor-Windows-1.5.40`. Self-contained: `…-SelfContained`.

---

## 2. Download the package

Grab the **zip** from `dist\` (repo / build share). Do not send staff the unzipped `dist\` folder tree.

| Package | Use when | Zip |
|---------|----------|-----|
| **Windows (standard)** | PC already has **.NET 8 Desktop Runtime** (smaller download) | [CCS-PDF-Editor-Windows-1.5.40.zip](../dist/CCS-PDF-Editor-Windows-1.5.40.zip) |
| **Windows (self-contained)** | PC has **no .NET**, or you do not want a runtime install | [CCS-PDF-Editor-Windows-1.5.40-SelfContained.zip](../dist/CCS-PDF-Editor-Windows-1.5.40-SelfContained.zip) |

Then copy that zip to the approved share / Intune / SCCM path and record it on [SYSTEM-PROFILE.md](SYSTEM-PROFILE.md) (**Windows package path**). Continue at **§3**.

<details>
<summary>Need to build a new zip?</summary>

Only if `dist\` does not already have the zip you need (new version, or you have not built that variant yet).

On a build machine with the **.NET 8 SDK**, from the repo root:

```powershell
# Standard (needs .NET 8 Desktop Runtime on the PC)
powershell -ExecutionPolicy Bypass -File scripts\build-windows.ps1

# Self-contained (larger; writes a separate folder + zip)
powershell -File scripts\build-windows.ps1 -SelfContained
```

Output (side by side — self-contained does **not** overwrite the standard pack):

- `dist\CCS-PDF-Editor-Windows-1.5.40.zip`
- `dist\CCS-PDF-Editor-Windows-1.5.40-SelfContained.zip`

More flags: [deploy_windows/README.md](../deploy_windows/README.md).

</details>

---

## 3. Install (per user or shared folder)

### 3.1 Unpack

1. Unzip to a **stable path** the user can read (and, if they save projects next to the app, write).  
   Examples:  
   - User: `%LOCALAPPDATA%\CCS\PDF-Editor\`  
   - Shared: `\\fileserver\apps\CCS-PDF-Editor-Windows-1.5.40\`  
2. Do **not** rename or separate `CcsPdfEditor.exe` from the `app\` folder.

### 3.2 Smoke open

1. Double-click **`CcsPdfEditor.exe`**.  
2. Confirm the window opens (WebView2 host).  
3. **File → Open** a non-sensitive sample PDF.  
4. Close the app.

If the EXE fails: install/repair **WebView2 Runtime** and **.NET Desktop Runtime 8+**, then retry.

### 3.3 Desktop shortcut (optional, recommended for SOP)

1. Open the package’s **`tools\`** folder.  
2. Double-click **`Create Desktop Shortcut.bat`**.  
3. Confirm **CCS PDF Editor** appears on the Desktop.  

Safe to re-run (overwrites the same `.lnk`). Also drops a copy of the shortcut in the package folder.

### 3.4 File associations (optional, recommended)

1. In **`tools\`**, double-click **`Register File Types.bat`**.  
2. Confirm:  
   - **`.ccspdf`** opens with CCS PDF Editor by default.  
   - **`.pdf`** lists CCS PDF Editor under **Open with** (does **not** replace Edge/Acrobat as default).  

HKCU only — no elevation. Re-run after moving the install folder (paths are absolute).

---

## 4. What staff should know (30 seconds)

| Action | How |
|--------|-----|
| Start app | Desktop shortcut or `CcsPdfEditor.exe` |
| Fill a form | **Editor** workspace + **Pointer** tool |
| Design fields | **Form** workspace (**F**) |
| Save draft | **File → Save Project (.ccspdf)** |
| Save final | **File → Save PDF** (optional password) |
| Help | ITHelpdesk@ccsemail.org |

Full clicks: [USER-GUIDE.md](USER-GUIDE.md).

---

## 5. Uninstall / cleanup

| Goal | Steps |
|------|--------|
| Remove file associations only | `tools\Unregister File Types.bat` |
| Remove Desktop icon | Delete Desktop `CCS PDF Editor.lnk` |
| Remove the app | Delete the install folder (after unregister if desired) |

No machine-wide installer is used by default; there is no Programs & Features entry unless CCS wraps this in a custom MSI later.

---

## 6. Smoke test (IT sign-off)

| # | Check | Pass? |
|---|--------|-------|
| 1 | EXE opens without error | ☐ |
| 2 | Open multi-page PDF; zoom | ☐ |
| 3 | Editor + Pointer: fill a field on a fillable PDF | ☐ |
| 4 | Form mode: place a text field; Editor: fill it | ☐ |
| 5 | Save Project; re-open project | ☐ |
| 6 | Save PDF (no password); fillable in Edge | ☐ |
| 7 | (Optional) Save PDF **with** password; unlock in Edge | ☐ |
| 8 | Desktop shortcut works | ☐ |
| 9 | Double-click sample `.ccspdf` (after register) | ☐ |
| 10 | Right-click PDF → Open with → CCS PDF Editor | ☐ |

---

## 7. Troubleshooting

| Symptom | Action |
|---------|--------|
| Blank window / WebView2 error | Install/repair Edge WebView2 Runtime |
| “.NET runtime missing” | Install .NET Desktop Runtime 8+ **or** redeploy self-contained build |
| Shortcut opens wrong place | Re-run Create Desktop Shortcut after moving folder |
| Associations open old path | Re-run Register File Types after move |
| Icon looks generic | Rebuild package (embeds `app.ico`); clear icon cache if needed |
| PHI concern | Same as any local PDF app — approved paths, close app when done |

---

## 8. Investigate a `.ccspdf` (incident / support)

Project files may include a short **rolling audit** of high-level edits (written on **Save Project**). Extract **without** the GUI — IT / IR only. Full training lab: [USER-TRAINING.md](USER-TRAINING.md) Track D · format: [ARCHITECTURE.md](ARCHITECTURE.md) §9.2–9.3.

**Installed Windows package**

1. Prefer a **copy** of the file on approved storage.  
2. Drag the `.ccspdf` onto `tools\Extract Project Audit.bat`, **or** PowerShell:

```powershell
powershell -File tools\scripts\extract-ccspdf-audit.ps1 -Path "C:\path\file.ccspdf" -FullSchema -ExtractPdf
```

**Source / browser offline pack**

```powershell
powershell -File scripts\extract-ccspdf-audit.ps1 -Path "C:\path\file.ccspdf" -FullSchema -ExtractPdf
```

Or drag onto `scripts\Extract-Ccspdf-Audit.bat`.

**Outputs** (`*_extract` folder next to the file): `*_summary.txt`, `*_audit.csv` / `*_audit.json`, optional full schema + PDF body, integrity line (**OK** / **FAIL**). Exit code **2** = hash mismatch (artifacts still written).

| Do | Do not |
|----|--------|
| Pair results with OneDrive/share **version history** for who/when | Treat the log as legal e-sign identity proof |
| Use for high-level *what* changed in the project | Expect the log on final **Save PDF** exports |
| Decode/gunzip the trailer | Expect this tool to remove a **PDF export** password (different mechanism) |
---

## 9. Related

- Environment inventory: [SYSTEM-PROFILE.md](SYSTEM-PROFILE.md)  
- Training Track D: [USER-TRAINING.md](USER-TRAINING.md)  
- Architecture (`.ccspdf` format): [ARCHITECTURE.md](ARCHITECTURE.md) §9  
- Package internals: [deploy_windows/README.md](../deploy_windows/README.md) (build flags live under **§2** above)

