告别EPUB阅读方向困扰:epubhv工具让垂直/水平切换更简单
当你在平板上横屏阅读PDF文档时突然切换到EPUB格式,却发现文字依然保持垂直排版;或是从手机竖屏切换到电子书阅读器时,希望将垂直文本转为更适合宽屏的水平布局——这些场景下,一款高效的EPUB格式转换工具就成了刚需。epubhv作为专注于阅读体验优化的开源工具,通过三步核心流程即可实现阅读方向的灵活切换,同时支持简繁体转换、注音标注等增强功能,让你的电子阅读体验彻底摆脱格式束缚。
3步实现EPUB阅读方向切换
安装与基础配置
通过项目仓库克隆代码并安装依赖,仅需两条命令即可完成环境准备:
git clone https://gitcode.com/gh_mirrors/ep/epubhv
cd epubhv && ./setup.sh
该工具采用PDM进行依赖管理,setup.sh脚本会自动处理Python环境和相关依赖安装,支持Python 3.8及以上版本。
单文件转换操作
针对单个EPUB文件,使用以下命令实现方向转换:
# 转为垂直排版
python -m epubhv --file ./book.epub --method to_vertical
# 转为水平排版
python -m epubhv --file ./book.epub --method to_horizontal
转换后的文件会自动添加_vertical或_horizontal后缀保存在当前目录,原始文件不会被修改。
批量处理文件夹
当需要处理整个目录的EPUB文件时,使用批量处理模式:
# 批量转换目录下所有EPUB为垂直排版
python -m epubhv --batch ./books_dir --method to_vertical
工具会自动识别目录中的所有EPUB文件,处理完成后按原文件名规则生成转换后的文件,适合图书馆管理员或电子书爱好者整理大量文件。
出版行业批量处理解决方案
出版社在数字化转型过程中,经常需要将同一内容制作成适应不同阅读设备的版本。某教育出版社通过epubhv实现了以下工作流优化:
- 多版本同步生成:使用批量转换功能同时输出垂直/水平两个版本,相比传统人工排版效率提升80%
- 区域化适配:结合简繁体转换功能,为台湾地区生成繁体水平版,为大陆市场生成简体垂直版
- 教育内容增强:对语文教材启用注音标注功能,自动为汉字添加拼音或粤语注音
核心命令示例:
# 出版行业专用批量处理命令
python -m epubhv --batch ./textbooks --method to_horizontal \
--convert-punctuation hant --need-ruby True
EPUB文件结构解析核心原理
epubhv实现阅读方向转换的核心在于对EPUB内部结构的精准操作。EPUB本质是包含HTML内容、样式表和元数据的ZIP压缩包,工具通过以下步骤实现转换:
- 文件解压:调用
extract_one_epub_to_dir方法将EPUB文件解压到临时目录,解析META-INF/container.xml定位内容文档 - 样式注入:通过
_add_stylesheet_to_html函数向所有HTML文件插入垂直排版CSS:writing-mode: vertical-rl; text-orientation: mixed; - 标点转换:利用
punctuation.py中的convert方法根据目标语言调整标点符号方向(如将「」转换为『』) - 重新打包:通过
pack方法将修改后的内容按EPUB规范重新压缩,生成新文件
这一过程完全基于文件内容操作,不依赖任何专有格式,确保转换后的EPUB文件在所有阅读器中兼容。
高效使用技巧与扩展功能
语言处理增强
- 简繁体智能转换:自动识别源文件语言,通过
map_locale方法实现精准转换 - 粤语注音标注:启用
--need-cantonese参数为中文内容添加粤语拼音:python -m epubhv --file ./cantonese_book.epub --need-cantonese True
Web界面快速操作
对于不熟悉命令行的用户,可通过Streamlit启动Web界面:
streamlit run web.py
在浏览器中上传文件并选择转换选项,适合临时用户或教育机构的公共终端使用。
自定义样式模板
高级用户可修改epubhv.py中的make_epub_values方法,添加自定义CSS样式,实现个性化排版效果,如调整行间距、字体大小等。
通过这些功能组合,epubhv不仅解决了阅读方向切换的核心痛点,更成为EPUB文件处理的瑞士军刀。无论是个人用户优化阅读体验,还是企业级批量处理需求,都能找到适合的解决方案。项目持续维护中,欢迎通过代码贡献或问题反馈参与工具改进。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0147- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0111