专注 Blazor 开发,期待与你的项目合作。
联系我

PDFxtract

May 6, 2025

PDFxtract

PDFxtract 是一个使用 Next.js 构建的现代化 Web 应用,专门用于处理扫描的 PDF 文档。它利用先进的 OCR(光学字符识别)技术,精确地从扫描 PDF 内的图像中提取文本信息。扫描 PDF 的每一页都会被自动转换成高质量的 JPEG 图像,并通过 AI 驱动的 OCR 技术进行处理,以准确识别和提取文本内容,最后将结果输出为 Markdown 格式,方便用户使用和进一步编辑。

功能特性

  • 通过简单的网页界面上传 PDF 文件
  • 将每个 PDF 页面转换为高质量的 JPG 图像
  • 转换后在线预览图像
  • 将所有图像打包下载为 ZIP 压缩文件
  • 响应式和用户友好的界面

开始使用

  1. 安装依赖:

    npm install
    # 或
    yarn install
    
  2. 启动开发服务器:

    npm run dev
    # 或
    yarn dev
    
  3. 打开浏览器并访问 http://localhost:3000

使用方法

  • 点击主页上的上传按钮选择 PDF 文件
  • 等待转换完成,图像将自动显示
  • 如果需要,可将所有图像下载为 ZIP 文件

项目结构

app/                # Next.js 应用目录
  api/              # PDF转JPG和创建ZIP的API路由
components/         # React 组件 (PDF上传器, UI元素等)
public/             # 静态文件和输出图像
lib/                # 工具函数

构建与部署

  • 生产环境构建: npm run build
  • 启动生产服务器: npm start
  • 推荐部署平台: Vercel

Docker 部署

构建镜像

docker build -t pdfxtract:v0.4 .

运行容器

docker run -d -p 4012:3000 \
  -e NODE_ENV=production \
  -e NEXT_PUBLIC_GA_ID=<你的标签ID> \
  --name pdfxtract \
  pdfxtract:v0.4

Docker Compose 示例

version: '3.8'

services:
  pdfxtract:
    image: pdfxtract:v0.4
    ports:
      - "4012:3000"
    environment:
      - NODE_ENV=production
      - NEXT_PUBLIC_GA_ID=<你的标签ID>
    restart: unless-stopped

技术栈

贡献

欢迎贡献!请提交 issue 或 pull request。

想更深入了解我在做什么?

我的 GitHub 记录了我大部分的项目和想法。欢迎浏览,一起探索更多技术的可能。

去 GitHub 看看