云计算百科
云计算领域专业知识百科平台

PDF 合并、转换也能自己部署:极空间运行 Stirling PDF,文件交给自己的服务器处理

前言

合并几份 PDF、给合同加密码、把扫描件压缩一下,在线工具确实很方便:上传文件、处理、再下载回来,几分钟就能完成。

但如果文件换成身份证扫描件、劳动合同、财务报表或者客户资料,问题就不只是“哪个网站功能更多”了。使用在线 PDF 服务时,文件需要先传到服务商的服务器,具体如何处理、保留多久,需要依赖对应平台的隐私政策和安全措施。

如果手里正好有一台长期运行的 NAS,可以换一种方式。

Stirling PDF 是一套可以自托管的 PDF Web 工具。把它部署在自己的极空间、服务器或电脑上以后,合并、拆分、转换、水印、OCR、压缩和加密等操作,都可以交给自己运行的实例处理,而不必每次把文件提交给不同的公共 PDF 网站。

本文会通过 Docker 在极空间上部署 Stirling PDF,持久化配置目录,完成首次管理员登录和密码修改,再实际测试格式转换、水印和裁剪。

局域网使用正常以后,再通过 cpolar 给这个 Web 服务增加远程访问入口。

它并不能让 PDF 处理“自动变得绝对安全”,但至少把文件交给谁处理、服务运行在哪里,以及谁能够访问这个入口,重新放回了自己的控制范围内。

image-20260701110544529

1.什么是S-PDF?

“S-PDF” 并不是一个官方或广泛标准化的技术术语,而是在强调安全(Secure)和自托管(Self-hosted)理念的上下文中,对 “安全、私有、本地化运行的PDF处理工具” 的一种简称。

在你提到的语境中——“自建S-PDF才是真·安全方案”——S-PDF中的 “S” 代表Secure(安全)或Self-hosted(自托管),其核心含义是:

一个完全运行在你自己的设备或私有服务器上的PDF工具套件,所有文件处理过程不依赖任何第三方云端服务,确保文档内容永不外泄。

S-PDF的关键特征

特性说明
🔒 数据不出内网 文件上传、处理、下载全程在你的服务器/电脑上完成,不经过互联网传输到第三方。
🛡️ 无隐私泄露风险 服务商无法访问你的合同、身份证、财报等敏感文档。
✅ 功能完整 支持合并、拆分、压缩、加密、OCR、格式转换等常见PDF操作。
📚 开源可审计 通常基于如 PDFtk、qpdf、LibreOffice、Tesseract 等成熟开源库构建,代码透明。
🌐 私有Web 界面 提供类似在线工具的图形界面(如网页),但仅限内网或授权用户访问。

对比:在线PDF工具vs. 自建S-PDF

项目在线PDF工具(如 Smallpdf、iLovePDF)自建S-PDF
数据流向 上传 → 第三方服务器 → 处理 → 下载 上传 → 你的服务器 → 处理 → 下载
隐私保障 依赖服务商承诺,条款常含模糊条款 完全自主控制,零外部依赖
网络要求 必须联网 可完全离线运行
成本 免费版有水印/限速;高级功能收费 一次性部署,长期免费使用
安全性 黑盒操作,无法验证是否留存数据 白盒系统,可审计、可监控

✅ 推荐场景:对数据安全要求高、需合规处理敏感文档的企业或组织,建议部署自建S-PDF解决方案。

常见的S-PDF开源实现

虽然没有统一叫 “S-PDF” 的软件,但以下项目可作为自建安全PDF工具的基础:

  • PDF Arranger

    轻量级桌面工具(Linux/Windows),支持合并、拆分、旋转。

  • Stirling-PDF(最接近“S-PDF”概念)

    功能强大的 自托管Web PDF工具箱,支持50+ 操作,Docker一键部署,界面媲美商业在线工具。

  • PDFsam Basic

    开源桌面应用,专注分割与合并。

  • 基于LibreOffice + OCR的自建脚本

    适合集成到企业内部系统。

其中Stirling-PDF因其功能全面、部署简单、界面现代,常被社区视为 “S-PDF” 的理想实现。

S-PDF = Self-hosted + Secure + PDF Toolkit

它不是某个具体软件,而是一种以数据主权为核心的 PDF 处理理念——“我的文档,我做主;处理过程,不留痕。”

如果你经常处理敏感文档,又不想放弃在线工具的便捷性,那么自建一套 S-PDF 系统,就是兼顾效率与安全的最佳选择。

2.前提条件

2.1ssh远程连接到极空间

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:

ssh root@IP

没有ssh的小伙伴可以参考这篇文章:

连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! – cpolar 极点云官网

image-20260522154032880

2.2验证docker是否开启

使用命令:

docker -v
systemctl status -v

没有docker的小伙伴可以参考这篇文章:极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! – cpolar 极点云官网

image-20251017103712618

3.部署S-PDF

通过Docker部署S-PDF:

在开始部署之前,确保你的系统已经安装了Docker。可以通过以下命令检查 Docker 是否已安装:

docker –version

image-20260507155742946

首先创建一下安装的目录并进入到该目录:

mkdir -p /docker/S-PDF
chmod -R 777 /S-PDF

69e317dd95aca696b495a5a9d8265b80

创建并编辑 docker-compose.yml文件:

vi docker-compose.yml

version: '3.9'
services:
s-pdf:
image: 'frooodle/s-pdf:latest'
container_name: spdf
environment:
DOCKER_ENABLE_SECURITY=false
volumes:
'$PWD/logs:/logs'
'$PWD/extraConfigs:/configs'
'$PWD/trainingData:/usr/share/tesseract-ocr/5/tessdata'
ports:
'2223:8080'

a8d8d967058bdccdef32f033782d5537

启动容器:

docker-compose up -d

6222cbf1b73d0889bc8f5da9b656a3a5

部署完成后,在浏览器中输入 http://极空间IP:2223 就能看到S-PDF的界面:

ba00b4267db8e844e4aaf6e01e0a48be

4.使用S-PDF

使用默认的账户密码登录:

1c2ae0c8ef8b88a2ff7cff759e369e10

登录后默认修改密码:

75f979d48100a97928437bc155848a81

修改后重新登录:

cf59ed93f79ca9911420d474584cd174

登录后一路默认安装:

ef4bd1216d84951b0a5abd3f228d307d

导入自己的文件可以立刻生成pdf格式:

7750617d47e230fecbb58b59b50e7817

image-20260701105651133

还有很多编辑功能:

image-20260701105734422

image-20260701105753622

为该pdf添加水印:

image-20260701105949753

裁剪pdf:

image-20260701110056943

在企业或个人场景中,S-PDF(Secure PDF) 提供了完全私有、数据不出内网的PDF处理能力——但这也带来一个现实问题:

“我的 S-PDF 部署在内网,如何在外网安全访问?”

这时候,cpolar的引入就显得尤为关键。

🌐 为什么需要cpolar?

S-PDF虽然保障了数据处理的安全性,但默认仅限局域网访问。若想从外部(如手机、出差电脑)使用该服务,传统方案需配置公网IP、端口映射、DDNS、防火墙规则等,复杂且存在暴露风险。

而 cpolar 是一款轻量级的内网穿透工具,能:

  • 将本地运行的S-PDF Web服务安全映射到公网 HTTPS 地址;
  • 自动加密传输(基于 TLS),无需开放路由器端口;
  • 支持身份验证、访问控制、固定域名(付费版)等企业级功能;
  • 部署简单,一条命令即可打通内外网。

🔧 典型结合场景

  • 本地部署S-PDF 在公司服务器或家用NAS上运行S-PDF(如基于Docker的 pdf-toolkit + Web 前端)。

  • 启动cpolar隧道

    cpolar http 8080 # 假设 S-PDF 监听在本地 8080 端口

  • 5.安装cpolar实现随时随地开发

    5.1 什么是cpolar?

    cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

    5.2 部署cpolar

    cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

    ❤️以下是安装cpolar步骤:

    使用一键脚本安装命令:

    sudo curl https://get.cpolar.sh | sh

    image-20250725104019896

    安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

    sudo systemctl status cpolar

    22e5adfaf290a17fc3384bb296055259

    Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

    打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

    8a6698b1bf26d64ba3645827fbfb1c29

    6.配置公网地址

    登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

    • 隧道名称:可自定义,本例使用了:s-pdf,注意不要与已有的隧道名称重复
    • 协议:http
    • 本地地址:2223
    • 域名类型:随机域名
    • 地区:选择China Top

    image-20260701104953843

    创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

    image-20260701105003767

    访问成功。

    image-20260701105037645

    7.保留固定公网地址

    使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

    image-20250918151358733

    点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是s-pdf,大家可以自定义。填写备注信息,点击保留。

    image-20260701105211975

    登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。

    image-20260701105234500

    修改隧道信息,将保留成功的二级子域名配置到隧道中

    • 域名类型:选择二级子域名
    • Sub Domain:填写保留成功的二级子域名
    • 地区: China Top

    点击更新

    image-20260701105303291

    更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

    image-20260701105320059

    最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

    image-20260701105352650

    总结

    自建 Stirling PDF 的意义,并不是证明所有在线 PDF 服务都不安全。

    对于普通、不敏感的文件,在线工具依然非常方便;真正需要区别对待的,是合同、证件、内部资料和财务文件这些不太希望反复上传到不同第三方服务中的内容。

    把 Stirling PDF 放在自己的极空间上以后,PDF 处理任务由自己维护的服务器完成,常见的转换、合并、水印、裁剪和加密也可以集中到同一个 Web 页面里。这样至少不必为了不同功能,在多个公共 PDF 网站之间反复上传同一份文件。

    通过 cpolar 增加远程入口以后,在外面也可以继续使用这套工具。但这时候同样要重新考虑安全问题:保留 Stirling PDF 的登录认证、修改默认管理员密码,不公开管理地址,并及时更新容器版本。

    所以“自托管”真正带来的不是零风险,而是更大的控制权,同时也意味着更多安全责任由自己承担。

    如果处理的是普通文件,选择哪个工具更多取决于便利性;如果面对的是自己不愿意随意交给第三方的敏感资料,那么拥有一套部署在自己设备上的 PDF 工具,就多了一种更可控的处理方式。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » PDF 合并、转换也能自己部署:极空间运行 Stirling PDF,文件交给自己的服务器处理
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!