Toolbox | epub文件繁体转简体
前言:
最近,网络找书看,下载下来的资源都是繁体字。虽然,我看到懂繁体字,但是,总是有一些字很偏,并且看着这些真的头大、眼睛疼。我就想能不能将它转换为简体。也方便我看。想到就去做咯,开干。
简单介绍
我们这本采用的类库,简单介绍一下
- "epublib-core" 是一个用于处理 EPUB 格式电子书的 Java 类库。
- 它提供了一组功能强大的 API,用于创建、读取、修改和生成 EPUB 文件。
- 通过该类库,您可以访问 EPUB 文件的元数据、章节内容、样式表等,并进行相应的操作。
- 它是一个开源项目,提供了丰富的文档和示例代码,方便您在 Java 程序中集成和使用 EPUB 功能。
-
opencc4j 是一个 Java 实现的开放源代码的繁简体转换库。
-
它是基于 OpenCC 项目的 Java 版本,用于将繁体中文转换为简体中文,或者将简体中文转换为繁体中文。
-
opencc4j 提供了简单易用的 API,使您可以在 Java 程序中方便地进行中文繁简体转换。
-
该类库支持多种繁简体转换规则,包括 OpenCC 提供的默认规则库,也可以自定义规则进行转换。
依赖引入
<!-- https://mvnrepository.com/artifact/com.positiondev.epublib/epublib-core -->
<dependency>
<groupId>com.positiondev.epublib</groupId>
<artifactId>epublib-core</artifactId>
<version>3.1</version>
</dependency>
<!-- OpenCC-Java -->
<!-- https://mvnrepository.com/artifact/com.github.houbb/opencc4j -->
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>opencc4j</artifactId>
<version>1.8.1</version>
</dependency>
代码实现
package qiaose.fennv.module.proprties;
import com.github.houbb.opencc4j.util.ZhConverterUtil;
import nl.siegmann.epublib.domain.Book;
import nl.siegmann.epublib.epub.EpubReader;
import nl.siegmann.epublib.epub.EpubWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class EpubConverter {
public static void main(String[] args) {
String inputFilePath = "C:\Users\admin\Desktop\test\test\src\main\resources\12N4.epub";
String outputFilePath = "output.epub";
try {
// 读取原始的EPUB文件
FileInputStream inputFile = new FileInputStream(inputFilePath);
Book book = (new EpubReader()).readEpub(inputFile);
inputFile.close();
// 遍历书中的章节和内容,将其中的繁体字转换为简体字
for (int i = 0; i < book.getContents().size(); i++) {
String originalContent = new String(book.getContents().get(i).getData());
String simplifiedContent = ZhConverterUtil.toSimple(originalContent);
book.getContents().get(i).setData(simplifiedContent.getBytes());
}
// 将转换后的内容写入新的EPUB文件
FileOutputStream outputFile = new FileOutputStream(outputFilePath);
EpubWriter epubWriter = new EpubWriter();
epubWriter.write(book, outputFile);
outputFile.close();
System.out.println("转换完成,输出文件路径:" + outputFilePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
效果展示:
写在最后
我们真的是站在巨人的肩膀上,如果没有这些方便的类库,真的自己实现感觉困难重重,相关的规则匹配就很麻烦。再加上网络上那些转换软件和网站。真的气死人了都,好用的寥寥无几,还不如自己实现一个更简单。