搭建程序自己的在线PDF转换工具库-Stirling-PDF

搭建程序自己的在线PDF转换工具库-Stirling-PDF

又不知道忙了多久,今天闲暇时间看了一下Github,看到一个实用的开源项目Stirling-PDF。它可以对PDF文件执行各种操作,如拆分、合并、转换、重组、添加图像、旋转、压缩、签名等。

Stirling-PDF整合了众多实用的开源项目,下面,我们来了解一下Stirling-PDF的技术栈:

  1. Spring Boot + Thymeleaf
  2. PDFBox 开源项目地址:https://github.com/apache/pdfbox
  3. LibreOffice 项目地址:https://github.com/LibreOffice/core
  4. OcrMyPdf 开源项目地址:https://github.com/ocrmypdf/OCRmyPDF
  5. HTML, CSS, JavaScript
  6. Docker
  7. PDF.js 开源项目地址:https://github.com/mozilla/pdf.js
  8. PDF-LIB.js 开源项目地址: https://github.com/Hopding/pdf-lib

Stirling-PDF的功能:

  1. 查看和修改PDF-使用自定义查看排序和搜索功能查看多页PDF。加上页面上的编辑功能,如注释、绘制和添加文本和图像。(使用带有Joxit和Liberation.Liberation字体的PDF.js)
  2. 用于合并/拆分/旋转/移动PDF及其页面的完整交互式GUI。
  3. 将多个PDF合并到一个结果文件中。
  4. 按指定页码将PDF拆分为多个文件,或将所有页面提取为单个文件。
  5. 将PDF页面重新组织为不同的顺序。
  6. PDF旋转,PDF裁剪,分割PDF。
  7. 删除页面。
  8. 多页布局(将PDF格式设置为多页页面)。
  9. 按设置%缩放页面内容大小。
  10. 调整对比度。
  11. 将PDF转换为单个页面。
  12. 将PDF转换为图像和从图像转换PDF。
  13. 将任何常用文件转换为PDF(使用LibreOffice)。
  14. 将PDF转换为Word/Powerpoint/其他(使用LibreOffice)。
  15. 将HTML转换为PDF。
  16. 添加和删除密码。
  17. 更改/设置PDF权限。
  18. 添加水印。
  19. 认证/签署PDF。
  20. 添加/生成/写入签名。
  21. 修复PDF。
  22. 检测并删除空白页。
  23. 比较2个PDF并显示文本差异。
  24. 将图像添加到PDF中。
  25. 压缩PDF以减小其文件大小(使用OCRMyPDF)。
  26. 从PDF中提取图像。
  27. 从扫描中提取图像。
  28. 添加页码。
  29. 通过检测PDF标题文本自动重命名文件。
  30. PDF OCR(使用OCRMyPDF)。
  31. PDF/A转换(使用OCRMyPDF)。
  32. 获取PDF上的所有信息以查看或导出为JSON。

Stirling-PDF可编译部署(Linux)也可以Docker部署,自行编译部署相较麻烦,需要的环境比较多:

  1. Java 17 or later
  2. Gradle 7.0 or later (included within repo so not needed on server)
  3. Git
  4. Python 3.8 (with pip)
  5. Make
  6. GCC/G++
  7. Automake
  8. Autoconf
  9. libtool
  10. pkg-config
  11. zlib1g-dev
  12. libleptonica-dev

然后还要安装其它的依赖软件,如:

  1. libreoffice-core
  2. libreoffice-common
  3. libreoffice-writer
  4. libreoffice-calc
  5. libreoffice-impress
  6. python3-uno
  7. unoconv
  8. pngquant
  9. unpaper
  10. ocrmypdf
  11. opencv-python-headless

看着都头疼。详细步骤在https://github.com/Stirling-Tools/Stirling-PDF/blob/main/LocalRunGuide.md

Docker则比较方便,Stirling PDF 的docker镜像y有三个版本,完整版、精简版和超精简版。这三个版本的区别如下:

Technology Ultra-Lite Lite Full
Java ✔️ ✔️ ✔️
JavaScript ✔️ ✔️ ✔️
Libre ✔️ ✔️
Python ✔️
OpenCV ✔️
OCRmyPDF ✔️
Operation Ultra-Lite Lite Full
add-page-numbers ✔️ ✔️ ✔️
add-password ✔️ ✔️ ✔️
add-image ✔️ ✔️ ✔️
add-watermark ✔️ ✔️ ✔️
adjust-contrast ✔️ ✔️ ✔️
auto-split-pdf ✔️ ✔️ ✔️
auto-redact ✔️ ✔️ ✔️
auto-rename ✔️ ✔️ ✔️
cert-sign ✔️ ✔️ ✔️
crop ✔️ ✔️ ✔️
change-metadata ✔️ ✔️ ✔️
change-permissions ✔️ ✔️ ✔️
compare ✔️ ✔️ ✔️
extract-page ✔️ ✔️ ✔️
extract-images ✔️ ✔️ ✔️
flatten ✔️ ✔️ ✔️
get-info-on-pdf ✔️ ✔️ ✔️
img-to-pdf ✔️ ✔️ ✔️
markdown-to-pdf ✔️ ✔️ ✔️
merge-pdfs ✔️ ✔️ ✔️
multi-page-layout ✔️ ✔️ ✔️
overlay-pdf ✔️ ✔️ ✔️
pdf-organizer ✔️ ✔️ ✔️
pdf-to-csv ✔️ ✔️ ✔️
pdf-to-img ✔️ ✔️ ✔️
pdf-to-single-page ✔️ ✔️ ✔️
remove-pages ✔️ ✔️ ✔️
remove-password ✔️ ✔️ ✔️
rotate-pdf ✔️ ✔️ ✔️
sanitize-pdf ✔️ ✔️ ✔️
scale-pages ✔️ ✔️ ✔️
sign ✔️ ✔️ ✔️
show-javascript ✔️ ✔️ ✔️
split-by-size-or-count ✔️ ✔️ ✔️
split-pdf-by-sections ✔️ ✔️ ✔️
split-pdfs ✔️ ✔️ ✔️
file-to-pdf ✔️ ✔️
pdf-to-html ✔️ ✔️
pdf-to-presentation ✔️ ✔️
pdf-to-text ✔️ ✔️
pdf-to-word ✔️ ✔️
pdf-to-xml ✔️ ✔️
repair ✔️ ✔️
xlsx-to-pdf ✔️ ✔️
compress-pdf ✔️
extract-image-scans ✔️
ocr-pdf ✔️
pdf-to-pdfa ✔️
remove-blanks ✔️

安装的时候,只需要运行一下命令即可

1
2
3
4
5
6
7
8
docker run -d \
-p 8080:8080 \
-v /location/of/trainingData:/usr/share/tesseract-ocr/5/tessdata \ #配置`Tesseract OCR`的目录,不配置,则无法使用OCR功能。
-v /location/of/extraConfigs:/configs \
-v /location/of/logs:/logs \
-e DOCKER_ENABLE_SECURITY=false \
--name stirling-pdf \
frooodle/s-pdf:latest

我们来看一下运行起来的效果


Stirling-PDF中的OCR是基于开源项目OCRmyPDF开发,然而OCRmyPDF又依赖于Tesseract OCR,所以,要使用OCR功能便需要安装Tesseract OCR,Tesseract OCR也是一个开源项目,所以,Tesseract OCR如何安装?可以去 https://github.com/tesseract-ocr/ 看看。

搭建程序自己的在线PDF转换工具库-Stirling-PDF

https://blogs.52fx.biz/posts/3101652817.html

作者

eyiadmin

发布于

2024-01-09

更新于

2024-05-31

许可协议

评论