Docker 部署 OCRmyPDF、提取PDF内容

一、镜像导入

bash 复制代码
# 拉取镜像
docker pull jbarlow83/ocrmypdf


# 导出镜像
docker save -o /data/ocrmypdf/ocrmypdf.tar jbarlow83/ocrmypdf:latest
# 导入镜像
docker load -i ocrmypdf.tar

二、调取镜像

bash 复制代码
# 【调用镜像】(以下2选1)

# 1-执行后删除容器【官方推荐】
docker run --rm -it -v /data:/data jbarlow83/ocrmypdf /data/ocrmypdf/test/test.pdf /data/ocrmypdf/test/output.pdf --skip-text -l chi_sim


# 2-保留容器
docker run -itd -v  /data:/data --name="zc-pdfocr-1"  --entrypoint python -p 5000:5000  jbarlow83/ocrmypdf webservice.py

# 固定容器名称调用
docker exec zc-pdfocr-1 ocrmypdf  /data/ocrmypdf/test/test.pdf /data/ocrmypdf/test/output.pdf --skip-text -l chi_sim

以上完成了:【图片类型的pdf】 向 【文本类型的pdf】 的转换。

至此,可以二次调用 PdfToContent 方法,进行PDF内容的提取。

三、拓展:PdfToContent (golang抽取pdf内容)

Go 复制代码
package pdf

import (
	"bytes"
	"github.com/ledongthuc/pdf"
)



func PdfToContent(filePath string) (result string, err error) {
	f, r, err := pdf.Open(filePath)
	// remember close file
	if err != nil {
		return
	}
	defer f.Close()
	var buf bytes.Buffer
	b, err := r.GetPlainText()
	if err != nil {
		return
	}
	_, err = buf.ReadFrom(b)
	if err != nil {
		return
	}
	result = buf.String()
	return
}
相关推荐
我不会起名字3221 天前
会话缓存失效排查:区分 Redis 失效与节点广播
redis·后端·go·即时通讯·im·故障排查
wz97541 天前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
新*2 天前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
小白的码BUG之路2 天前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
AlfredZhao2 天前
Docker Compose 平滑切换环境变量文件,容器配置不残留
docker
大然Ryan2 天前
我用 Go 和 AI 做了一个 macOS 磁盘清理工具:Vole(开源)
go
小熊熊知识库2 天前
双层PDF转换软件
pdf·双层pdf转换
duansamve2 天前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
我不会起名字3222 天前
seq 空洞排查:Mongo 的 51 只是预留上界,Redis CURR 才是已消耗边界
redis·后端·mongodb·go·即时通讯·im·故障排查
mengge.cloud2 天前
prometheus+k8s+弹性伸缩,综合项目
云原生·容器·kubernetes·prometheus