pdf批量转html docker 镜像

你的名字 13861d01a3 chore: 添加.gitignore文件以忽略Python缓存文件 1 week ago
.dockerignore 089d850cff Automatic Commit By liuyuqi 2 years ago
.gitignore 13861d01a3 chore: 添加.gitignore文件以忽略Python缓存文件 1 week ago
Dockerfile 13861d01a3 chore: 添加.gitignore文件以忽略Python缓存文件 1 week ago
README.md 13861d01a3 chore: 添加.gitignore文件以忽略Python缓存文件 1 week ago
docker-compose.debug.yml 089d850cff Automatic Commit By liuyuqi 2 years ago
docker-compose.yml 13861d01a3 chore: 添加.gitignore文件以忽略Python缓存文件 1 week ago
main.py 13861d01a3 chore: 添加.gitignore文件以忽略Python缓存文件 1 week ago

README.md

pdf2html - PDF批量转换为HTML工具

一个简单易用的工具,用于将PDF文件批量转换为HTML格式,基于pdf2htmlEX。

功能特性

  • 批量转换:一次性转换目录中所有的PDF文件
  • 递归搜索:支持递归搜索子目录中的PDF文件
  • 命令行参数:灵活的命令行参数配置
  • Docker支持:提供Docker镜像,简化部署和使用
  • 进度显示:清晰的转换进度和结果统计
  • 错误处理:完善的错误处理和超时机制

技术栈

  • Python 3:主要开发语言
  • pdf2htmlEX:PDF转HTML的核心工具
  • Docker:容器化部署

安装和构建

本地安装

  1. 确保已安装Python 3和pdf2htmlEX
  2. 克隆或下载此项目

Docker构建

# 进入项目目录
cd pdf2html

# 构建Docker镜像
docker build -t pdf2html:latest .

或者使用docker-compose:

docker-compose build

使用方法

基本用法

本地使用

# 转换当前目录下的所有PDF文件
python main.py

# 显示帮助信息
python main.py --help

Docker使用

# 转换当前目录下的所有PDF文件
docker run --rm -v $(pwd):/app pdf2html:latest

# 显示帮助信息
docker run --rm pdf2html:latest --help

命令行参数

参数 简写 默认值 说明
--input-dir -i . (当前目录) 输入目录,包含PDF文件的目录
--output-dir -o htmls 输出目录,保存HTML文件的目录
--recursive -r True 递归搜索子目录中的PDF文件
--no-recursive - - 不递归搜索子目录
--zoom -z 1.3 转换时的缩放比例
--help -h - 显示帮助信息

使用示例

1. 基本转换

转换当前目录下的所有PDF文件到默认的htmls目录:

# 本地使用
python main.py

# Docker使用
docker run --rm -v $(pwd):/app pdf2html:latest

2. 指定输入和输出目录

转换./pdfs目录中的PDF文件到./output目录:

# 本地使用
python main.py -i ./pdfs -o ./output

# Docker使用
docker run --rm -v $(pwd):/app pdf2html:latest -i /app/pdfs -o /app/output

3. 不递归搜索子目录

只转换当前目录的PDF文件,不搜索子目录:

# 本地使用
python main.py --no-recursive

# Docker使用
docker run --rm -v $(pwd):/app pdf2html:latest --no-recursive

4. 自定义缩放比例

使用1.5倍缩放比例转换PDF:

# 本地使用
python main.py --zoom 1.5

# Docker使用
docker run --rm -v $(pwd):/app pdf2html:latest --zoom 1.5

5. 组合使用参数

组合使用多个参数,实现更精确的控制:

# 本地使用
python main.py -i ./documents -o ./converted --no-recursive --zoom 2.0

# Docker使用
docker run --rm -v $(pwd):/app pdf2html:latest -i /app/documents -o /app/converted --no-recursive --zoom 2.0

创建便捷别名(推荐)

为了简化使用,可以创建一个别名:

# Linux/Mac
alias pdf2html='docker run --rm -v $(pwd):/app pdf2html:latest'

# Windows PowerShell
function pdf2html { docker run --rm -v ${PWD}:/app pdf2html:latest $args }

然后就可以像使用普通命令一样使用:

# 显示帮助
pdf2html --help

# 转换当前目录
pdf2html

# 指定参数
pdf2html -i ./pdfs -o ./htmls

Docker高级用法

使用docker-compose

  1. 修改docker-compose.yml中的command参数(如果需要)
  2. 运行:

    # 构建并运行
    docker-compose up --build
    
    # 或者先构建,再运行
    docker-compose build
    docker-compose run pdf2html
    

挂载多个目录

如果需要访问多个目录中的PDF文件:

docker run --rm \
  -v /path/to/pdfs1:/app/pdfs1 \
  -v /path/to/pdfs2:/app/pdfs2 \
  -v /path/to/output:/app/output \
  pdf2html:latest \
  -i /app/pdfs1 \
  -o /app/output

注意事项

  1. 文件路径:在Docker中使用时,所有路径都应该是容器内的路径,通常以/app开头
  2. 权限:确保挂载的目录有适当的读写权限
  3. 大文件:转换大型PDF文件可能需要较长时间,默认超时时间为5分钟
  4. 依赖项:pdf2htmlEX可能需要一些系统依赖库,Docker镜像已包含所有必要依赖

常见问题

Q: 如何处理转换失败的文件?

A: 程序会显示转换失败的文件名称和错误信息。您可以检查这些PDF文件是否损坏,或者尝试手动转换。

Q: 转换后的HTML文件在哪里?

A: 默认情况下,HTML文件会保存在当前目录的htmls子目录中。您可以使用--output-dir参数指定其他位置。

Q: 如何只转换新添加的PDF文件?

A: 程序会自动跳过已存在的HTML文件,所以如果您再次运行,只会转换新添加的PDF文件。

Q: 支持哪些PDF版本?

A: 支持大多数标准PDF文件,但某些特殊格式(如加密PDF)可能无法转换。

项目结构

pdf2html/
├── main.py              # 主程序文件
├── Dockerfile           # Docker构建文件
├── docker-compose.yml   # Docker Compose配置文件
├── README.md            # 项目说明文档
└── .dockerignore        # Docker忽略文件

许可证

Copyright © 2017-2024 liuyuqi. All Rights Reserved.

联系方式

如有问题或建议,请联系:liuyuqi.gov@msn.cn