{"repo":"chroming/pdfdir","free":true,"listed":false,"github":"https://github.com/chroming/pdfdir","clone":"git clone https://github.com/chroming/pdfdir.git","description":"PDF导航（大纲/目录）添加工具","language":"Python","stars":811,"topics":["python","pdf","pyqt","pyqt5","multi-platform"],"license":"GPL-3.0","category":"media-processing","readme_excerpt":"pdfdir —— PDF导航书签添加工具 根据已有的目录文本为你的PDF自动生成导航书签。 此项目实现逻辑深受 https://github.com/ifnoelse/pdf-bookmark 项目影响。 软件功能 根据网上或PDF中已有的目录内容自动将导航书签（大纲）插入PDF文件中。 适用于以下场景： 1. 扫描版电子书籍无导航书签； 2. 文字版电子文档无导航书签但PDF中有目录。 下载 Windows/macOS/Ubuntu: 下载地址 其他平台： 请使用源码方式运行或自行打包。 使用 基本用法 + 选择文件：在 \"PDF文件路径\" 文本框中填入pdf文件路径（如D:/统计思维.pdf）或点击 \"打开\" 按钮通过文件管理器选择所需的pdf文件。 + 目录文本：将目录文本粘贴到“目录文本”框中。如何获取目录文本。对于已有目录页的文字版或扫描版 PDF，也可以点击“自动读取目录”从 PDF 前部目录页中识别并填充目录文本。 + 编辑写入目录（可选项）：根据目录文本自动生成的实际写入目录，可双击任一目录或页数进行编辑。同时支持拖动改变顺序/目录上下级关系。 + 编辑页差（可选项）：当目录中的标注页码与 PDF 实际页数不一致时，可在“页差”中填写差值，程序会在预览中换算出实际页数。也可以点击“自动填充页差”根据目录标题在 PDF 中的位置自动推断页差；文字版 PDF 可直接使用，扫描版 PDF 需要安装 OCR 可选依赖。 + 写入：点击右下角的“写入”按钮，稍等片刻，待状态栏提示\" Finished!\"表示写入成功，此时可在pdf目录下找到包含书签的 原文件名\\ new.pdf 文件。 获取目录文本 目录文本是类似以下形式的文本内容： 即： 标题+页数 形式。文本内容一般来源于网上书店（如亚马逊）或图书介绍网站（如豆瓣读书）。图书的介绍中一般会列出该书的目录文本，如亚马逊的在 商品描述--目录 下。注意：自动生成的目录完全依赖于目录文本，如果此文本有问题则生成的目录也会有问题。 英文支持 下载源码中的language/en.qm 放到程序同目录下 language/en.qm , 之后点击程序菜单栏中的 \"语言 -- English\" 即可切换为英文界面。 已知问题 + 一般图书非正文部分（如序言，目录等）没有标页码或使用另一套页码标记，本程序将这些目录默认链接到第一页，如需修正这些链接可手动修改。 + 有些正文中的目录没有标页码，程序会将该条目录链接到上一个有页码的标题页。 其他 通过源码运行 运行源码所需环境： + Python2/3 均可，推荐Python3 + PyQt5 + PyPDF + six 注意：Python2与Python3 不兼容，某些系统（如macOS）系统自带Python2，使用 python 命令调用，若自行安装Python3则可能需要通过 python3 来调用Python3，pip同理。本文不区分python/python3, pip/pip3，请用户按当前系统所安装版本使用对应命令。 获取代码 git clone https://github.com/chroming/pdfdir 安装运行环境 安装Python: https://www.python.org/downloads/ 安装依赖包: 进入项目目录，执行： pip install -r requirements.txt pip install PyQt5 如需为扫描版 PDF 自动读取目录或自动填充页差，还需要安装 OCR 可选依赖，并执行： ","default_branch":null,"files":null,"tree":[],"storefront":"/r/chroming","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/chroming/pdfdir/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}