# Markdown-To-PDF **Repository Path**: qijinliangcom_admin/Markdown-To-PDF ## Basic Information - **Project Name**: Markdown-To-PDF - **Description**: Markdown 转 PDF 批量转换工具 这是一个基于 Python3 和 PyQt6 开发的高级图形化工具,支持将多个 Markdown (.md) 文件批量转换为 PDF 格式。 本项目经过重构优化,拥有现代化的 UI 界面,内置中文排版优化和 Emoji 彩色图标支持,解决了常见的乱码和渲染问题。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-19 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Markdown 转 PDF 批量转换工具 (Pro 版) 这是一个基于 Python3 和 PyQt6 开发的高级图形化工具,支持将多个 Markdown (.md) 文件批量转换为 PDF 格式。 本项目经过重构优化,拥有现代化的 UI 界面,内置中文排版优化和 Emoji 彩色图标支持,解决了常见的乱码和渲染问题。 ## ✨ 核心功能 * **🎨 现代化 UI**:清爽的蓝白配色,圆角设计,交互流畅。 * **🚀 批量转换**:一键转换多个文件,后台异步处理,支持 5000+ 行大文件。 * **🅰️ 完美排版**: * **本地图片支持**:智能解析相对路径,完美显示本地图片。 * **Emoji 支持**:内置 Twemoji 引擎,自动将 Markdown 中的 Emoji (如 🚀, 🛠️, 🏳️‍🌈) 转换为彩色图片。 * **中文优化**:内置 CSS 样式,强制使用微软雅黑/PingFang SC,解决乱码。 * **🛡️ 智能容错**:自动处理网络错误、文件占用、权限不足等异常情况。 ## 🛠️ 环境准备 ### 1. 安装 Python 依赖库 请在终端中运行: ```bash pip install -r requirements.txt ``` *(如果没有 requirements.txt,可运行: `pip install PyQt6 markdown2 pdfkit emoji pillow`)* ### 2. 安装转换引擎 (wkhtmltopdf) 本工具依赖 `wkhtmltopdf` 进行渲染,**必须安装**。 #### 🍎 macOS 用户 本项目根目录下已包含安装包:**`wkhtmltox-0.12.6-2.macos-cocoa.pkg`** 1. 找到该文件并双击安装。 2. 安装完成后即可使用。 *(注:Homebrew 源已移除该软件,请务必使用本地包安装)* #### 🪟 Windows 用户 1. 前往 [官网下载](https://wkhtmltopdf.org/downloads.html)。 2. 下载并安装(建议安装到默认路径)。 ## 🚀 启动方式 ```bash python3 main.py ``` ## 🧪 测试用例 本项目包含 9 个全方位的测试用例 (位于 `test_files/` 目录),覆盖各种极端场景: | 测试文件 | 测试重点 | | :--- | :--- | | `01_basic_features.md` | 基础排版 (粗体/斜体/列表/引用) | | `02_code_and_tables.md` | 代码高亮 & 表格样式 | | `03_rich_content_emoji.md` | 彩色 Emoji & 网络图片 | | `04_complex_structure.md` | 复杂嵌套 & 自动换行 | | `05_mixed_languages.md` | 多语言支持 (中/日/韩/俄) | | `06_edge_cases.md` | 边界测试 (特殊符号/HTML注入) | | `07_local_resources.md` | **本地图片相对路径引用** | | `08_pagination.md` | 强制分页 & 打印布局 | | `09_large_document.md` | 性能测试 (5000+行长文档) | ## ❓ 常见问题 (FAQ) **Q: 转换时提示 `Network Error` 或 `HostNotFoundError`?** A: 这通常是因为 Markdown 文件中包含了无法访问的远程图片链接。工具会自动跳过这些图片并继续转换,建议检查网络连接或替换为本地图片。 **Q: Emoji 显示为方块?** A: 请确保运行的是最新版代码,我们已内置了 Twemoji 图片替换功能,不再依赖系统字体。 **Q: 报错 `wkhtmltopdf exited with non-zero code 1`?** A: 1. **iCloud 同步目录**:请将文件移到**桌面**或**文档**目录重试。 2. **文件被占用**:请关闭已打开的 PDF 文件。