# paddleocr-vl-1.5-docker-front-go-project **Repository Path**: aylerh/paddleocr-vl-1.5-docker-front-go-project ## Basic Information - **Project Name**: paddleocr-vl-1.5-docker-front-go-project - **Description**: 基于paddleocr-vl-1.5-docker-front-project;go实现(替代python);缺点:转pptx效果不好; - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-06 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PandOCR - 基于PaddleOCR-VL的图像与pdf解析平台(到md) | 🚀 **基于 PaddleOCR-VL** | 🐳 **完整 Docker 支持** | ⚡ **Go 高性能后端** ## 界面样式 ![1](images/1.png) ### 对比导出 特点:(1)可导出图片组成的pdf;(2)可导出md文件(不带图片的)或zip文件;(3)可导出md转换的pdf文件;(4)可编辑解析的md文件; ![2](images/2.png) ## 特色功能 * **图片式PDF -> Markdown**:自动拆解页面,识别文本与图表。 * **直接 PDF 解析 (New)**:服务端直接处理 PDF 文件,无需前端按页拆分,适合大文件批量处理,自动导出 ZIP 包。 * **PDF 与 MD 对比**:左侧原文右侧解析结果,实时对照。 * **PDF -> 可搜索 PDF**:基于 wkhtmltopdf 将解析结果还原为 PDF。 * **多任务队列管理**:前端异步任务池,支持批量上传、取消、状态监控(等待/处理/总耗时统计)。 ## 功能、技术及解决痛点的简要总结: ### 1. 核心功能 (Functions) * **多任务队列管理**:支持创建多个独立任务组,每个任务组可独立添加、删除文件,实现分类解析。 * **负载均衡服务池**:支持配置多个后端服务 URL,系统自动探测在线状态,实现并发分布式解析。 * **联动预览系统**:点击左侧任务块,右侧结果区实时切换显示该任务的解析进度与 Markdown 结果。 * **智能导出**:根据解析内容自动判断:纯文本汇总为 `.md` 文件,含图表内容则自动打包为 `.zip`(含图片文件夹)。 * **后端直接解析**:提供专门的 PDF 解析页面,支持批量上传至服务端队列,由服务端高效处理并打包下载。 ### 2. 实现技术 (Technologies) * **后端 (Backend)**: * **Go (Golang)**:高性能静态编译后端,替代原 Python 实现。 * **Gin Web Framework**:轻量级、高效率的 HTTP Web 框架。 * **Ants**:高性能协程池,用于管理 OCR 和 PDF 转换的异步任务。 * **Wkhtmltopdf**:服务端 PDF 生成引擎。 * **前端 (Frontend)**: * **原生 JS (Vanilla JS)**:高效的任务调度逻辑与并发控制。 * **PDF.js**:前端预处理 PDF 渲染(主页模式)。 * **Marked.js / JSZip**:实现实时 Markdown 渲染与浏览器端打包下载。 * **部署 (Deployment)**: * **Docker & Docker Compose**:多阶段构建(Multi-stage Build),产出极小的运行时镜像(基于 Debian Slim)。 ### 3. 解决痛点 (Pain Points Solved) * **性能提升**:Go 语言后端大幅降低内存占用,提升并发处理能力。 * **部署简化**:移除大量 Python 依赖(如 weasyprint, numpy 等),镜像体积更小,启动更快。 * **大文件处理**:新增的服务端 PDF 解析模式解决了前端 Canvas 渲染大文件时的性能瓶颈。 ## 📋 系统要求 ### Docker 部署 - **操作系统**: Linux / Windows 10+ / macOS - **Docker**: 20.10+ - **Docker Compose**: 2.0+ # 部署 ## 1. 启动 PaddleOCR-VL 后端 首先需要启动 OCR 核心服务(显存推荐 8G+): ```bash # 参考 PaddleOCR-VL Docker 项目 https://gitee.com/aylerh/paddleocr-vl-1.5-docker-project ``` ## 2. 启动本项目 (PandOCR Go Front) 配置 `.env` 文件(可选,默认连接 `paddleocr-vl-1.5-api`): ```properties PADDLE_SERVICE_URL=http://paddleocr-vl-1.5-api:8081/layout-parsing INNER_PORT=8008 ``` 使用 Docker Compose 一键启动: ```bash docker compose up -d --build ``` 访问地址:`http://localhost:8008` (或配置的宿主机端口) ## API 文档 启动服务后,访问 `/docs/index.html` 查看 Swagger API 文档。 # 开发 (Dev) #### 1. 环境要求 - Go 1.24+ - Wkhtmltopdf (如需本地调试 PDF 生成) #### 2. 启动服务 ```bash go mod download go run main.go ``` # 🙏 致谢 - [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) - 强大的 OCR 引擎 - [Gin](https://github.com/gin-gonic/gin) - Go Web 框架 - [Ants](https://github.com/panjf2000/ants) - Go 协程池