当前位置: 首页 > news >正文

GitHub开源的PDF管理工具Stirling-pdf

Stirling pdf

    • 手动搭建
    • docker搭建

官网:https://github.com/Stirling-Tools/Stirling-PDF

手动搭建

Ubuntu2404环境

安装所需软件包

apt install -y git  automake  autoconf  libtool  libleptonica-dev  pkg-config zlib1g-dev make g++ openjdk-21-jdk python3 python3-pip

克隆并构建 jbig2enc,如果拉取失败,可以去gitlab下载,再上传

mkdir ~/.git
cd ~/.git &&\
git clone https://github.com/agl/jbig2enc.git &&\
cd jbig2enc &&\
./autogen.sh &&\
./configure &&\
make &&\
sudo make install

安装 LibreOffice 用于转换,安装 ocrmypdf 用于 OCR,以及安装 opencv 用于模式识别功能

apt install -y libreoffice-writer libreoffice-calc libreoffice-impress unpaper ocrmypdf pip3 install uno opencv-python-headless unoconv pngquant WeasyPrint --break-system-packages

克隆并构建 Stirling-PDF

cd ~/.git &&\
git clone https://github.com/Stirling-Tools/Stirling-PDF.git &&\
cd Stirling-PDF &&\
chmod +x ./gradlew &&\
./gradlew build

如果报超时:就手动下载/gradle-8.7-bin.zip,然后上传到Stirling-PDF,执行./gradlew build
Exception in thread “main” java.io.IOException: Downloading from https://services.gradle.org/distributions/gradle-8.7-bin.zip failed: timeout

构建过程完成后,目录.jar中将生成一个文件build/libs。可以将此文件移动到所需位置,例如/opt/Stirling-PDF/。还必须将下载的 Stirling-PDF 存储库中的脚本文件夹移动到此目录。使用 OpenCV 的 Python 脚本需要此文件夹

mkdir /opt/Stirling-PDFmv ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/mv scripts /opt/Stirling-PDF/

安装语言包

apt install -y 'tesseract-ocr-*'

运行 Stirling-PDF,两者皆可

./gradlew bootRun
java -jar /opt/Stirling-PDF/Stirling-PDF-*.jar

如果出现
[Thread-7] INFO s.s.SPDF.utils.ProcessExecutor - mkdir: cannot create directory ‘/run/user/1501’: Permission denied
则配置

mkdir temp
export DBUS_SESSION_BUS_ADDRESS="unix:path=./temp"

重新启动

java -jar ./Stirling-PDF-*.jar

界面访问:IP:8080
在这里插入图片描述
测试

在这里插入图片描述

可选:将 Stirling-PDF 作为服务运行

创建一个.env 文件,可以在其中存储环境变量

touch /opt/Stirling-PDF/.env
vim /etc/systemd/system/stirlingpdf.service
[Unit]
Description=Stirling-PDF service
After=syslog.target network.target[Service]
SuccessExitStatus=143User=root
Group=rootType=simpleEnvironmentFile=/opt/Stirling-PDF/.env
WorkingDirectory=/opt/Stirling-PDF
ExecStart=/usr/bin/java -jar Stirling-PDF-0.17.2.jar
ExecStop=/bin/kill -15 $MAINPID[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start stirlingpdf.service
systemctl stop stirlingpdf.service
systemctl restart stirlingpdf.service

docker搭建

Ubuntu配置docker环境

apt -y install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"apt-get -y install docker-ce

设置开机自启

systemctl enable --now docker

拉取镜像

docker pull frooodle/s-pdf:latest

docker直接run

docker run -d \-p 8080:8080 \-v ./trainingData:/usr/share/tessdata \-v ./extraConfigs:/configs \-v ./logs:/logs \-e DOCKER_ENABLE_SECURITY=false \-e INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false \-e LANGS=en_GB \--name stirling-pdf \frooodle/s-pdf:latest 

或者compose也可

version: '3.3'
services:stirling-pdf:image: frooodle/s-pdf:latestports:- '8080:8080'volumes:- ./trainingData:/usr/share/tessdata #Required for extra OCR languages- ./extraConfigs:/configs
#      - ./customFiles:/customFiles/
#      - ./logs:/logs/environment:- DOCKER_ENABLE_SECURITY=false- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false- LANGS=en_GB

界面直接访问:IP:8080

相关文章:

  • Godot模拟实现多人游戏平滑移动
  • SpringData基础学习
  • vue前端更新后需要清空缓存
  • MySQL中 EXPLAIN 的使用介绍
  • oracle共享池(shared pool):一、工作原理、组成部分 二、软硬解析过程
  • 边界dp注意重叠边界
  • Java使用Tesseract进行OCR图片文字识别
  • 老师是怎么分班的?用什么工具比较好?
  • 实战OpenCV之绘制图形
  • JVM 在GC 时的根对象都有那些
  • day_49
  • 代码断点调试
  • LLM 直接偏好优化(DPO)的一些研究
  • springboot框架中filter过滤器的urlPatterns的匹配源码
  • Oracle(81)如何生成AWR报告?
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [译]CSS 居中(Center)方法大合集
  • 【翻译】babel对TC39装饰器草案的实现
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • bootstrap创建登录注册页面
  • docker容器内的网络抓包
  • Elasticsearch 参考指南(升级前重新索引)
  • ES6之路之模块详解
  • export和import的用法总结
  • HTML5新特性总结
  • HTTP--网络协议分层,http历史(二)
  • Nacos系列:Nacos的Java SDK使用
  • Python3爬取英雄联盟英雄皮肤大图
  • V4L2视频输入框架概述
  • vagrant 添加本地 box 安装 laravel homestead
  • 阿里云应用高可用服务公测发布
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 从tcpdump抓包看TCP/IP协议
  • 大型网站性能监测、分析与优化常见问题QA
  • 仿天猫超市收藏抛物线动画工具库
  • 如何实现 font-size 的响应式
  • 微信小程序--------语音识别(前端自己也能玩)
  • 因为阿里,他们成了“杭漂”
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # 数论-逆元
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (11)MATLAB PCA+SVM 人脸识别
  • (12)目标检测_SSD基于pytorch搭建代码
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Ruby)Ubuntu12.04安装Rails环境
  • (差分)胡桃爱原石
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (七)c52学习之旅-中断
  • (七)glDrawArry绘制