侧边栏壁纸
博主头像
拾荒的小海螺博主等级

只有想不到的,没有做不到的

  • 累计撰写 140 篇文章
  • 累计创建 15 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
OPS

Docker:安装 Stirling-PDF 的详细指南

拾荒的小海螺
2024-09-15 / 0 评论 / 0 点赞 / 12 阅读 / 7939 字

1、简述

在这篇博客中,我们将探讨如何使用 Docker 来部署和运行 Stirling-PDF,这是一个强大的开源 PDF 处理工具。Stirling-PDF 提供了丰富的 API,可以方便地执行 PDF 的生成、合并、拆分、加密等操作。通过 Docker,我们可以轻松地在任何环境中运行 Stirling-PDF,而无需手动配置依赖项。

1726365486223.jpg

Github地址:https://github.com/Stirling-Tools/Stirling-PDF

2、安装

Stirling-PDF 是一个现代化的 PDF 处理工具,它通过 RESTful API 提供了强大的 PDF 操作功能。用户可以使用它来处理各种 PDF 相关的任务。

2.1 拉取 Stirling-PDF Docker 镜像

首先,我们需要从 Docker Hub 拉取 Stirling-PDF 的官方镜像。执行以下命令:

docker pull frooodle/s-pdf:latest

2.2 运行 Stirling-PDF 容器

拉取镜像后,可以使用以下命令来启动 Stirling-PDF 容器:

docker run -d -p 9080:8080 --name stirling-pdf frooodle/s-pdf:latest

这里,我们将容器的 9080 端口映射到宿主机的 8080 端口。运行这个命令后,Stirling-PDF 会在后台运行,您可以通过 http://localhost:9080 来访问 Stirling-PDF 的 API。

2.3 编排安装

首先创建Stirling-PDF的映射目录:

mkdir -p /data/stirling/trainingData
mkdir -p /data/stirling/extraConfigs
mkdir -p /data/stirling/customFiles
mkdir -p /data/stirling/logs

在/data/stirling目录,创建docker-compose.yml文件,内容如下,其中宿主机映射端口、登录账号密码等可以自定义配置:

version: '3.3'
services:
  stirling-pdf:
    image: registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
    container_name: Stirling-PDF
    ports:
      - '9080:8080'
    volumes:
      - /data/stirling/trainingData:/usr/share/tessdata
      - /data/stirling/extraConfigs:/configs
      - /data/stirling/customFiles:/customFiles/
      - /data/stirling/logs:/logs/
    environment:
      DOCKER_ENABLE_SECURITY: true   
      SECURITY_ENABLELOGIN: true  
      SECURITY_INITIALLOGIN_USERNAME: admin
      SECURITY_INITIALLOGIN_PASSWORD: admin  
      UI_APPNAME: jeven-PDF  
      INSTALL_BOOK_AND_ADVANCED_HTML_OPS: false
      LANGS: zh_CN

执行docker-compose 容器指令:

docker-compose up -d
docker-compose logs

3、功能

Stirling-PDF 是一个现代化的开源 PDF 处理工具,它提供了一套丰富的功能,可以通过 API 接口轻松地操作 PDF 文档。以下是 Stirling-PDF 的主要功能的详细介绍:

1726365524575.jpg

3.1 PDF 创建

Stirling-PDF 支持从各种数据源(如 HTML、Markdown、文本)生成 PDF 文件。它可以处理复杂的文档结构,包括嵌入图片、表格、图表等。

使用场景:

  • 从网页内容生成 PDF 报告。
  • 将 Markdown 文件转换为 PDF 格式的文档。

API 示例:

curl -X POST "http://localhost:9080/api/create" \
-H "Content-Type: application/json" \
-d '{
  "content": "<h1>Hello, PDF!</h1>",
  "type": "html"
}' -o output.pdf

3.2 PDF 合并

Stirling-PDF 可以将多个 PDF 文件合并为一个 PDF 文件,这对于需要将多个文档组合成一个文件的场景非常有用。

使用场景:

  • 合并不同章节的文档。
  • 将多个发票或报告合并为一个文件。

API 示例:

curl -X POST "http://localhost:9080/api/merge" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "files=@file1.pdf" \
-F "files=@file2.pdf" \
-o merged.pdf

3.3 PDF 拆分

Stirling-PDF 提供了将一个 PDF 文件拆分为多个文件的功能。用户可以根据页码范围来拆分文件,生成独立的 PDF 文档。

使用场景:

  • 拆分大型 PDF 文件,方便发送或存储。
  • 从 PDF 文件中提取特定页面。

API 示例:

curl -X POST "http://localhost:9080/api/split" \
-H "accept: application/json" \
-F "file=@document.pdf" \
-F "page_numbers=1,3" \
-o split.pdf

3.4 PDF 加密和解密

Stirling-PDF 支持对 PDF 文件进行加密和解密操作。用户可以为 PDF 文件设置密码保护,也可以解密受保护的 PDF 文件。

使用场景:

  • 为敏感文档添加密码保护。
  • 解密有权限限制的 PDF 文件以便访问内容。

API 示例(加密):

curl -X POST "http://localhost:9080/api/encrypt" \
-H "accept: application/json" \
-F "file=@document.pdf" \
-F "password=securepassword" \
-o encrypted.pdf

API 示例(解密):

curl -X POST "http://localhost:9080/api/decrypt" \
-H "accept: application/json" \
-F "file=@encrypted.pdf" \
-F "password=securepassword" \
-o decrypted.pdf

3.5 添加水印

Stirling-PDF 可以在 PDF 文件中添加水印,包括文本水印和图像水印。水印可以设置为在每页上显示,或仅在特定页面上显示。

使用场景:

  • 在文档上添加公司标志或版权声明。
  • 在合同或协议上添加 "CONFIDENTIAL" 等标识。

API 示例(文本水印):

curl -X POST "http://localhost:9080/api/watermark" \
-H "accept: application/json" \
-F "file=@document.pdf" \
-F "text=CONFIDENTIAL" \
-F "font_size=48" \
-o watermarked.pdf

API 示例(图片水印):

curl -X POST "http://localhost:9080/api/watermark" \
-H "accept: application/json" \
-F "file=@document.pdf" \
-F "image=@logo.png" \
-F "position=center" \
-o watermarked.pdf

3.6 PDF 压缩

Stirling-PDF 支持压缩 PDF 文件,以减少文件大小。这个功能对于需要传输大文件或保存空间的场景非常实用。

使用场景:

  • 压缩 PDF 文件以便通过电子邮件发送。
  • 减少存储空间占用。

API 示例:

curl -X POST "http://localhost:9080/api/compress" \
-H "accept: application/json" \
-F "file=@large.pdf" \
-o compressed.pdf

3.7 PDF 文件格式转换

Stirling-PDF 支持将 PDF 转换为其他文件格式(如图像、文本等),或者将其他格式文件转换为 PDF。

使用场景:

  • 提取 PDF 中的文本内容。
  • 将 PDF 页面转换为图像。

API 示例(PDF 转图像):

curl -X POST "http://localhost:9080/api/convert" \
-H "accept: application/json" \
-F "file=@document.pdf" \
-F "format=png" \
-o output.png

3.8 PDF 表单处理

Stirling-PDF 支持对 PDF 表单进行处理,允许用户填写、提取或修改 PDF 表单中的数据。

使用场景:

  • 自动化处理 PDF 表单数据。
  • 批量填写或修改 PDF 表单内容。

API 示例:

curl -X POST "http://localhost:9080/api/form/fill" \
-H "accept: application/json" \
-F "file=@form.pdf" \
-F "fields={\"name\":\"John Doe\", \"date\":\"2024-08-11\"}" \
-o filled_form.pdf

4、总结

Stirling-PDF 提供了一套全面的 PDF 处理功能,可以满足从创建到操作、保护再到转换的多种需求。通过这些功能,开发者可以构建出强大的应用程序,帮助用户自动化和简化他们的 PDF 处理流程。无论是简单的合并和拆分,还是复杂的表单处理和加密操作,Stirling-PDF 都提供了直观的 API 接口,方便集成到各种开发项目中。

如果您有兴趣进一步探索 Stirling-PDF,建议查阅其官方文档,以获取更详细的使用指南和高级功能说明。

0

评论区