1. 项目概述
Stirling-PDF 是一款功能强大的开源 PDF 处理工具,它提供了超过 20 种 PDF 相关操作功能,包括合并、拆分、旋转、压缩、转换等。与常见的在线 PDF 工具不同,Stirling-PDF 可以完全在本地环境中部署运行,确保敏感文档不会上传到第三方服务器,特别适合处理包含机密信息的 PDF 文件。
在 Windows 系统上部署 Stirling-PDF 并配置外部访问,可以让用户在任何设备上通过浏览器使用这些 PDF 处理功能,同时保持所有操作都在本地网络中进行。这种部署方式既兼顾了便利性又确保了数据安全,是企业和个人用户的理想选择。
2. 环境准备与安装
2.1 系统要求
在 Windows 系统上部署 Stirling-PDF 需要满足以下基本要求:
- Windows 10 或更高版本(建议使用 Windows 10 专业版或企业版)
- 至少 4GB 内存(处理大型 PDF 文件时建议 8GB 或更多)
- 2GB 可用磁盘空间
- Java 运行时环境(JRE)11 或更高版本
- 可选:Docker Desktop for Windows(如果选择容器化部署)
提示:虽然 Stirling-PDF 可以在较低配置的系统上运行,但处理大型 PDF 文件(超过 100 页)时,更高的硬件配置会显著提升性能。
2.2 Java 环境安装
Stirling-PDF 是基于 Java 开发的应用程序,因此需要先安装 Java 运行时环境:
- 访问 Oracle 官网或 AdoptOpenJDK 网站下载适合 Windows 的 JRE 11+
- 运行下载的安装程序,按照向导完成安装
- 安装完成后,打开命令提示符(CMD)并输入以下命令验证安装:
java -version - 如果正确显示 Java 版本信息,说明安装成功
2.3 获取 Stirling-PDF
有两种方式可以获取 Stirling-PDF:
方式一:直接下载可执行 JAR 文件
- 访问 Stirling-PDF 的 GitHub 发布页面
- 下载最新版本的
stirling-pdf-x.x.x.jar文件 - 将文件保存到合适的目录,如
C:\StirlingPDF
方式二:通过 Docker 部署
- 确保已安装 Docker Desktop for Windows
- 打开 PowerShell 或命令提示符
- 运行以下命令拉取镜像:
docker pull frooodle/s-pdf:latest
3. 本地部署与配置
3.1 直接运行 JAR 文件
对于大多数用户来说,直接运行 JAR 文件是最简单的方式:
- 打开命令提示符,导航到存放 JAR 文件的目录
- 运行以下命令启动应用:
java -jar stirling-pdf-x.x.x.jar - 应用启动后,默认会在端口 8080 监听
- 在浏览器中访问
http://localhost:8080即可使用
3.2 自定义配置
Stirling-PDF 支持通过配置文件或命令行参数进行自定义:
创建配置文件:
- 在 JAR 文件同目录下创建
application.properties文件 - 添加常用配置项,例如:
server.port=9090 spring.web.resources.static-locations=file:/path/to/custom/static/files app.home.show-local-storage=true - 保存文件后,重新启动应用
常用命令行参数:
--server.port=9090:更改监听端口--app.home.show-local-storage=true:显示本地存储选项--app.defaults.locale=zh_CN:设置默认语言为中文
3.3 作为 Windows 服务运行
为了让 Stirling-PDF 在后台持续运行并随系统启动:
- 下载并安装 NSSM (Non-Sucking Service Manager)
- 以管理员身份打开命令提示符
- 运行以下命令创建服务:
nssm install StirlingPDF - 在 NSSM 界面中设置:
- Path:
java.exe - Arguments:
-jar C:\path\to\stirling-pdf-x.x.x.jar - Startup directory:
C:\path\to\
- Path:
- 点击"Install service"完成安装
- 在服务管理器中启动 StirlingPDF 服务
4. 实现外部访问
4.1 局域网访问配置
要让同一局域网内的其他设备访问 Stirling-PDF:
确保 Windows 防火墙允许入站连接:
- 打开"Windows Defender 防火墙"
- 点击"允许应用或功能通过防火墙"
- 添加 Java(TM) Platform SE binary 或指定端口例外
获取本机局域网 IP 地址:
- 打开命令提示符,输入
ipconfig - 记下 IPv4 地址(如 192.168.1.100)
- 打开命令提示符,输入
其他设备在浏览器中访问
http://[你的IP]:8080
4.2 端口转发与远程访问
要通过互联网访问本地部署的 Stirling-PDF:
在路由器上设置端口转发:
- 登录路由器管理界面(通常是 192.168.1.1)
- 找到"端口转发"或"虚拟服务器"设置
- 添加规则将外部端口(如 8080)转发到本地 IP 和端口
获取公网 IP 地址或设置动态 DNS:
- 查询当前公网 IP(可通过访问 whatismyip.com)
- 或使用 DDNS 服务(如 No-IP)绑定域名
安全注意事项:
- 强烈建议设置身份验证(见 4.3 节)
- 考虑使用非标准端口减少扫描攻击
- 限制访问 IP 范围(如仅允许公司 IP)
4.3 安全加固
为保护 PDF 文档安全,建议实施以下安全措施:
启用基本认证:
- 创建
application.properties文件 - 添加以下内容:
app.auth.enabled=true app.auth.username=admin app.auth.password=securepassword123 - 重启应用后,访问时需要输入用户名密码
HTTPS 配置:
- 获取 SSL 证书(可从 Let's Encrypt 免费获取)
- 配置
application.properties:server.ssl.enabled=true server.ssl.key-store-type=PKCS12 server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=yourpassword - 或通过反向代理(如 Nginx)实现 HTTPS
5. 功能使用指南
5.1 核心功能操作
Stirling-PDF 提供了丰富的 PDF 处理功能:
PDF 合并:
- 点击"Merge PDFs"选项卡
- 拖放或选择多个 PDF 文件
- 调整文件顺序(拖放排序)
- 点击"Merge"按钮生成合并后的文件
- 下载或保存结果
PDF 拆分:
- 点击"Split PDF"选项卡
- 上传要拆分的 PDF 文件
- 选择拆分方式:
- 按页数范围(如 1-3,4-6)
- 按固定页数分割(如每 5 页一个文件)
- 提取特定页面(如 1,3,5)
- 执行拆分并下载结果
PDF 转换:
- 点击"Convert"选项卡
- 选择转换类型:
- PDF 转 Word/Excel/PPT
- 图片转 PDF
- PDF 转图片
- 上传文件并设置选项(如分辨率)
- 执行转换并下载结果
5.2 高级功能
OCR 文字识别:
- 点击"OCR"选项卡
- 上传扫描版 PDF 或图片
- 选择语言(支持中文)
- 设置输出格式(可搜索 PDF 或文本)
- 执行识别并下载结果
PDF 压缩优化:
- 点击"Compress"选项卡
- 上传要压缩的 PDF
- 选择压缩级别:
- 低(较小压缩,保持质量)
- 中(平衡质量与大小)
- 高(最大压缩,可能降低质量)
- 执行压缩并比较结果
批量处理:
- 点击"Batch"选项卡
- 上传多个文件或整个文件夹
- 选择要应用的批量操作(如统一压缩、添加水印)
- 设置处理选项
- 执行批量处理并下载 ZIP 包
6. 常见问题与解决方案
6.1 部署相关问题
问题:Java 版本不兼容
- 症状:启动时报错"UnsupportedClassVersionError"
- 解决方案:
- 确认安装的是 Java 11 或更高版本
- 检查环境变量 PATH 是否指向正确的 Java 版本
- 使用完整路径运行 Java,如
"C:\Program Files\Java\jdk-11\bin\java.exe" -jar stirling-pdf.jar
问题:端口冲突
- 症状:应用启动失败,报错端口被占用
- 解决方案:
- 查找占用端口的进程:
netstat -ano | findstr 8080 - 终止占用进程或更改 Stirling-PDF 端口:
java -jar stirling-pdf.jar --server.port=9090
- 查找占用端口的进程:
6.2 功能使用问题
问题:中文显示乱码
- 症状:处理包含中文的 PDF 时出现乱码
- 解决方案:
- 确保系统安装了中文字体
- 在转换设置中选择支持中文的 OCR 语言
- 对于 PDF 生成,指定中文字体:
app.pdf.font-path=C:/Windows/Fonts/simhei.ttf
问题:大文件处理失败
- 症状:处理大型 PDF(100+页)时内存不足
- 解决方案:
- 增加 JVM 内存分配:
java -Xmx2g -jar stirling-pdf.jar - 尝试拆分大文件后再处理
- 在设置中降低处理分辨率
- 增加 JVM 内存分配:
6.3 性能优化技巧
调整 JVM 参数:
- 增加堆内存:
-Xmx4g(4GB 内存分配) - 设置并行垃圾回收:
-XX:+UseParallelGC - 示例优化启动命令:
java -Xmx4g -XX:+UseParallelGC -jar stirling-pdf.jar
- 增加堆内存:
使用 SSD 存储:
- 将临时文件目录指向 SSD
- 配置示例:
app.temp.dir=D:/pdf_temp
启用缓存:
spring.cache.type=simple spring.cache.cache-names=pdfCache定期维护:
- 清理临时文件
- 重启服务释放内存
- 更新到最新版本获取性能改进
7. 备份与升级
7.1 数据备份策略
Stirling-PDF 可能产生以下需要备份的数据:
配置文件:
application.properties- 自定义模板和脚本
用户数据:
- 上传的 PDF 文件(默认在临时目录)
- 处理结果(如果保存在本地)
建议备份方案:
- 每日增量备份配置和重要文档
- 每周完整备份整个应用目录
- 使用脚本自动化备份过程:
@echo off 7z a -t7z "C:\Backups\StirlingPDF_%date:~0,4%%date:~5,2%%date:~8,2%.7z" "C:\StirlingPDF\*" -mx9
7.2 版本升级步骤
备份当前安装:
- 停止正在运行的服务
- 备份配置文件和重要数据
获取新版本:
- 从 GitHub 下载最新 JAR 文件
- 或拉取最新 Docker 镜像
执行升级:
- 替换旧版 JAR 文件
- 保留原有配置文件
- 重新启动应用
验证升级:
- 检查功能是否正常
- 确认配置仍然有效
- 观察系统资源占用情况
提示:升级前请查阅版本变更说明,了解可能的破坏性变更和迁移指南。