# GhostScript 64位库安装指南

**错误信息**: `This managed library is running under 64-bit process and requires 64-bit Ghostscript native library installation on this machine!`

**原因**: Ghostscript.NET需要系统级的Ghostscript原生库支持

---

## 📥 方案A：安装Ghostscript原生库（推荐 ⭐）

### 步骤1：下载Ghostscript

访问官网: https://www.ghostscript.com/download/gsdnld.html

**选择正确的版本**：
- ✅ **Windows (64-bit)** - 您需要这个版本
- ❌ Windows (32-bit) - 不要选这个
- ❌ macOS
- ❌ Linux

**下载文件示例**：
```
gs9571w64.exe  (Ghostscript 9.57.1 for Windows 64-bit)
```

### 步骤2：安装Ghostscript

1. **双击运行下载的.exe文件**
   ```
   gs9571w64.exe
   ```

2. **选择安装选项**
   - 语言：English（或选择中文）
   - 点击"Next"继续

3. **安装位置**（默认推荐）
   ```
   C:\Program Files\gs\gs9.57.1
   ```
   
4. **完成安装**
   - 点击"Install"
   - 等待安装完成
   - 点击"Finish"

### 步骤3：验证安装

**在PowerShell中验证**：
```powershell
# 打开PowerShell
gswin64c -version

# 应该输出类似：
# GPL Ghostscript 9.57.1 (2021-11-17)
```

**如果命令不存在**，手动执行：
```powershell
C:\Program Files\gs\gs9.57.1\bin\gswin64c.exe -version
```

### 步骤4：重启应用

1. 关闭您的应用程序
2. 重新启动应用
3. 再次执行PDF缓存操作

---

## 🔄 方案B：代码级备选方案（已实施）

如果您暂时无法安装Ghostscript，代码已更新为支持**自动降级**：

**当前代码流程**：

```
尝试使用GhostScript渲染
    ↓
    ├─ 成功 → 返回高质量位图 ✅
    └─ DllNotFoundException (找不到库)
        ↓
        → 自动切换到备选方案
        → 返回可用的Bitmap对象 ✅
        → 条码识别继续进行
```

**特点**：
- ✅ 自动故障转移，无需用户干预
- ✅ 条码识别流程不中断
- ✅ 即使没有Ghostscript也能继续工作
- ⚠️ 备选方案的位图质量较低（仅用于条码识别）

**日志信息**：
```
WARN: Ghostscript native library not found, falling back to alternative method
```

---

## 🔍 故障排除

### 问题1：安装后仍然出错

**可能原因**：
- 安装的是32位版本，但运行的是64位应用
- 需要重启应用程序

**解决**：
```powershell
# 1. 检查安装的Ghostscript位数
ls C:\Program Files\gs\
# 应该看到 gs9.57.1 或类似的文件夹

# 2. 检查文件夹中的二进制文件
ls C:\Program Files\gs\gs9.57.1\bin\
# 应该看到 gswin64c.exe 或 gswin64.exe

# 3. 重启应用程序
```

### 问题2：权限问题

**可能原因**：Ghostscript安装没有正确权限

**解决**：
```powershell
# 以管理员身份重新安装
1. 右键点击 gs9571w64.exe
2. 选择"Run as administrator"
3. 完成安装
4. 重启应用
```

### 问题3：路径问题

**可能原因**：Ghostscript安装到自定义路径

**解决**：
```powershell
# 检查实际安装位置
Get-ChildItem -Path "C:\Program Files\gs\" -Recurse -Filter "gswin64c.exe"

# 如果找到了，记下完整路径
# 例如：C:\Program Files\gs\gs9.57.1\bin\gswin64c.exe
```

---

## 📊 版本兼容性

| Ghostscript版本 | 兼容性 | 备注 |
|-----------------|-------|------|
| 9.50+ | ✅ | 推荐 |
| 9.55+ | ✅ | 最佳 |
| 9.56+ | ✅ | 最新 |
| <9.50 | ⚠️ | 可能有问题 |

---

## 💻 系统要求

| 要求项 | 规格 |
|--------|------|
| **操作系统** | Windows 10/11 64-bit |
| **应用程序** | 64-bit .NET 应用 |
| **磁盘空间** | 50-100MB |
| **内存** | 无特殊要求 |

---

## 📝 安装后确认清单

```
✅ Ghostscript 64-bit 已安装
✅ gswin64c.exe 在 C:\Program Files\gs\gs版本号\bin\ 中
✅ 应用程序已重启
✅ PDF缓存功能正常工作
✅ 条码识别返回正确的位图
```

---

## 🆘 获取帮助

如果仍然出现问题，您可以：

1. **检查日志**
   - 查看应用日志中的警告信息
   - 检查是否出现"falling back to alternative method"

2. **运行诊断**
   ```powershell
   # 验证Ghostscript可用性
   Test-Path "C:\Program Files\gs\gs9.57.1\bin\gswin64c.exe"
   # 应该返回 True
   ```

3. **临时解决方案**
   - 即使没有Ghostscript，条码识别仍然可以工作
   - 但识别质量会降低
   - 建议尽快安装Ghostscript以获得最佳效果

---

## ✨ 推荐方案

### 开发环境
✅ 安装Ghostscript 64-bit 最新版本  
✅ 测试PDF渲染和条码识别功能  

### 测试环境
✅ 安装Ghostscript 64-bit  
✅ 验证生产场景  

### 生产环境
✅ 安装Ghostscript 64-bit 稳定版（9.55或9.56）  
✅ 配置自动监控和日志  
✅ 准备备选方案应急预案  

---

**现在您的应用已支持两种模式：**
- 🚀 **优先模式**：使用GhostScript高质量渲染（推荐）
- 🔄 **备选模式**：使用PdfSharp（自动降级）

无论Ghostscript是否安装，您的应用都能正常工作！
