A PDF to HTML converter focused on layout preservation and table extraction.
Project description
PDF to HTML Engine
一个高性能、高保真度的 PDF 转 HTML 引擎,专注于 精准布局还原、复杂表格提取 以及 跨页表格无缝处理。它针对复杂报表和布局进行了深度优化,能够满足各种高要求的 PDF 转换场景。
🚀 核心功能
- 高保真布局还原:基于原子级坐标分析,通过
padding和动态字体计算,精确还原文本的视觉位置。 - 智能表格解析:利用几何分析能力,完美支持复杂单元格合并(
rowspan/colspan)及文本对齐。 - 跨页表格合并:独有的跨页逻辑,可识别并自动合并跨页断裂的表格,支持自动剔除重复表头。
- 双阶段扫描 (Two-Pass):通过预扫描统一全局表格网格坐标,解决 PDF 转换中常见的列对齐微差问题。
- 智能下划线识别:自动关联文本与其下方的图形线条,将填空下划线还原为语义化的 HTML 标签。
- 文档样式优化:内置对常用字体、页眉页脚过滤及复杂表单样式的专项处理。
🛠️ 技术栈
- 核心语言:Python 3.8+
- PDF 驱动:PyMuPDF (fitz) & pdfplumber
- 渲染引擎:Jinja2
- 布局算法:基于坐标的行归类与视觉网格对齐算法
📂 项目结构
pdf2html-engine/
├── pdf2html_engine/ # 核心源码包
│ ├── __init__.py # 暴露核心 API (PDFConverter, parse_pdf)
│ ├── cli.py # 命令行接口实现
│ ├── converter.py # 流程协调器:管理双阶段扫描与跨页逻辑
│ ├── pdf_loader.py # 健壮加载器:修复损坏 PDF 结构
│ ├── layout_engine.py # 布局分析:处理文本行归类与样式推断
│ ├── table_extractor.py # 表格引擎:处理网格统一与合并单元格
│ └── html_renderer.py # 渲染层:基于 Jinja2 生成响应式 HTML
├── pyproject.toml # 项目配置与依赖管理
└── requirements.txt # 依赖列表
🧠 核心架构原理
- 视觉行聚类 (Visual Line Grouping):按 Y 轴坐标对字符进行聚类,容忍微小垂直偏移,实现“所见即所得”的行合并。
- 网格统一 (Grid Unification):在 Pass 1 阶段收集所有页面的表格坐标,Pass 2 强制使用统一网格,确保跨页表格视觉对齐。
- 图形关联:扫描 PDF 的
drawings层,将线条与文本位置匹配,智能判定下划线语义。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pdf2html_engine-0.1.3.tar.gz
(18.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pdf2html_engine-0.1.3.tar.gz.
File metadata
- Download URL: pdf2html_engine-0.1.3.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6f276cd2893d5a471d7d7e4273d8128918af8af07580175413915b8c052080f
|
|
| MD5 |
7e73ec75a753c9b693cfa111935a0954
|
|
| BLAKE2b-256 |
1bd8f27f6199c2dc97146fc1cfb5b377f37eb3d2940a2d51eb50d3274c4ec88d
|
File details
Details for the file pdf2html_engine-0.1.3-py3-none-any.whl.
File metadata
- Download URL: pdf2html_engine-0.1.3-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4a6b635e9955cd0ee42f509585e417ea753dc327a7fe5dd42ab7069699c1d78
|
|
| MD5 |
be226555c30cd5a493d4bf4934c518d9
|
|
| BLAKE2b-256 |
3d6f2460a1e79ceb806e1462db6b99eeab4b44b5a4fb78fc8fc3a9aa8c1dcfcd
|