# warehouse **Repository Path**: dovepan_git/warehouse ## Basic Information - **Project Name**: warehouse - **Description**: 送货单提取相关信息生产Excel文件。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-02 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF物料编码批量提取工具 PDF物料编码批量提取工具是一款面向仓储与质量部门的桌面应用,用于从PDF文件中批量提取物料编码、项目号、物料名称、数量、供应商等表格数据,并自动匹配仓库库位与托盘号,最终输出为格式化的 Excel 文件。工具同时支持批量处理后的 PDF 打印功能。 --- ## 主要功能 - **PDF 表格提取** - 使用 `pdfplumber` 从 PDF 中识别表格,自动提取列:`物料编码`、`项目号`、`物料名称`、`数量`、`供应商` 等(支持别名)。 - 自动处理跨页表格与跨行合并单元格(续行以 `|` 开头)。 - **供应商识别** - 通过全文正则匹配 `供应商:` 关键字获取供应商名称,并校验跨页一致性。 - **库位匹配** - 以项目号为关联键,自动匹配《库位参考表-物料存放位置.xlsx》中的 `库位号` 与 `托盘号`。 - 未匹配到的项目号会在备注中标记为 `未匹配到库位`。 - **批量处理** - 支持单个或批量 PDF 处理。 - 自动重命名(如添加 `_processed` 后缀)。 - 重复处理保护(通过 `processed_pdf_track.json` 跟踪已处理文件)。 - **PDF 打印** - 在批量处理完成后,可选择将 PDF 发送至指定打印机。 - 提供打印机选择对话框,支持 Windows 系统打印机枚举与默认打印机临时切换。 - **Excel 输出** - 输出 `.xlsx` 文件,包含蓝色表头、自动列宽、居中对齐等样式。 - 输出字段:供应商、物料编码、项目号、库位号、托盘号、物料名称、数量、来源文件、备注等。 --- ## 系统要求 - 操作系统:Windows 7/10/11(推荐 Windows 10/11) - Python:>= 3.14 - 依赖包:见 `pyproject.toml` 主要依赖: - `pdfplumber`:PDF 表格解析 - `openpyxl`:Excel 生成 - `ttkbootstrap`:现代化 GUI 界面 - `pywin32`:Windows 打印机操作与系统交互 - `pyinstaller`:打包为 exe --- ## 安装与运行 ### 1. 克隆或下载项目 ```powershell # 进入项目目录 cd d:\Projects\for_work\warehouse ``` ### 2. 安装依赖 项目使用 `uv` 进行依赖管理,执行: ```powershell uv sync ``` 或直接使用 pip: ```powershell pip install -r requirements.txt ``` > 注:如未提供 `requirements.txt`,可参考 `pyproject.toml` 中的 `dependencies` 手动安装。 ### 3. 运行程序 ```powershell uv run python run.py ``` 或: ```powershell python run.py ``` 首次运行若缺少 `config.json`,程序会自动创建默认配置文件。 --- ## 配置说明 配置文件 `config.json` 说明如下: | 配置项 | 说明 | |--------|------| | `paths.target_folder` | 待处理 PDF 文件夹路径 | | `paths.reference_file` | 库位参考表 Excel 路径 | | `paths.output_folder` | 输出 Excel 文件夹路径 | | `paths.log_folder` | 日志文件存放路径 | | `paths.track_file` | 已处理文件跟踪记录路径 | | `column_config` | 各字段的列名别名与必填设置 | | `processing.rename_after` | 处理后是否重命名原 PDF | | `processing.processed_suffix` | 重命名后缀 | | `reprocess.enabled` | 是否启用重新处理功能 | | `security.require_auth` | 是否启用启动密码 | --- ## 打包为 EXE 使用 PyInstaller 打包为独立的 Windows 可执行文件: ```powershell uv run pyinstaller warehouse.spec ``` 打包后的文件位于 `dist` 目录下,文件名为 `PDF物料编码批量提取工具_V1.2.exe`。 版本信息由 `_version.py` 和 `version_info.txt` 统一管理。 --- ## 项目结构 ```text warehouse/ ├── run.py # 程序启动入口 ├── pdf_material_gui.py # GUI 界面(ttkbootstrap) ├── pdf_material_extractor.py # 核心 PDF 提取与打印逻辑 ├── _version.py # 版本信息集中管理 ├── config.json # 用户配置文件 ├── version_info.txt # Windows exe 版本信息 ├── warehouse.spec # PyInstaller 打包配置 ├── pyproject.toml # 项目依赖与元数据 ├── uv.lock # uv 锁定文件 ├── CODE_WIKI.md # 项目 Code Wiki 文档 └── README.md # 本文档 ``` --- ## 更新日志 ### V1.2.0 - 重新打包 EXE,版本号升级为 1.2.0。 - 统一所有版本信息文件(`_version.py`、`pyproject.toml`、`version_info.txt`)。 ### V1.1.0 - 新增批量 PDF 打印功能,支持选择不同打印机设备。 - 修复打印时未使用指定打印机、重复打印等问题。 - 优化 PDF 处理性能(参考表缓存、单 PDF 单次打开、正则预编译、Excel 批量写入等)。 - 统一版本信息管理,新增 `_version.py` 集中管理版本与版权。 --- ## 版权信息 - 作者:dovepan - 版权:Copyright (C) 2026 dovepan - 公司名称:dovepan 本工具为内部使用软件,未经授权不得用于商业分发。