告别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 StartedRust0213
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0137
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03