# pdf_diff_tool **Repository Path**: licyclone/pdf_diff_tool ## Basic Information - **Project Name**: pdf_diff_tool - **Description**: PDF Diff Tool 是一个用于比较两个 PDF 文件差异的工具。它通过将 PDF 文件转换为图片,然后逐页比较图片的差异,最终返回差异区域的信息。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-10 - **Last Updated**: 2025-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF Diff Tool PDF Diff Tool 是一个用于比较两个 PDF 文件差异的工具。它通过将 PDF 文件转换为图片,然后逐页比较图片的差异,最终返回差异区域的信息。 ## 项目结构 ```plaintext pdf_diff_project/ ├── backend/ │ ├── app/ │ │ ├── core/ # 核心逻辑 │ │ │ ├── config.py # 配置文件 │ │ │ ├── image_utils.py # 图像处理工具 │ │ │ └── pdf_utils.py # PDF 处理工具 │ │ ├── api/ # API 路由 │ │ │ └── endpoints.py # API 端点 │ │ ├── models/ # 数据模型(可选) │ │ ├── temp/ # 临时文件存储(自动创建) │ │ ├── main.py # FastAPI 主入口 │ │ └── dependencies.py # 依赖项(如数据库) │ ├── requirements.txt # 依赖列表 │ └── Dockerfile # 容器化部署 ├── frontend/ # 前端(可选,可用 Vue/React) │ └── ... # 前端代码 └── README.md # 项目说明 ``` ## 功能特性 - 支持比较两个PDF文件的差异。 - 将PDF文件转换为图片进行比较,提高比较的准确性。 - 逐页比较图片,返回差异区域的坐标和大小。 - 自动清理临时文件,避免占用过多磁盘空间。 ## 技术栈 - **后端**: FastAPI, OpenCV, pdf2image, Pillow - **容器化**: Docker ## 安装与运行 ### 本地运行 1. **克隆仓库** ```bash git clone https://github.com/your-username/pdf_diff_project.git cd pdf_diff_project/backend ``` 1. **安装依赖** ```bash pip install -r requirements.txt ``` 1. **运行应用** ```bash uvicorn main:app --host 0.0.0.0 --port 8000 ``` ### Docker 运行 1. **构建镜像** ```bash docker build -t pdf-diff-tool . ``` 1. **运行容器** ```bash docker run -p 8000:8000 pdf-diff-tool ``` ## API 接口 ### 比较两个PDF文件 - **URL**: `/api/compare` - **Method**: `POST` - Request Body - `file1`: 第一个PDF文件 - `file2`: 第二个PDF文件 - Response - `differences`: 差异区域列表,每个区域包含`page`(页码)和`regions`(差异区域坐标和大小)