Toolbox | epub文件繁体转简体

2,028 阅读2分钟

Toolbox | epub文件繁体转简体

前言:

最近,网络找书看,下载下来的资源都是繁体字。虽然,我看到懂繁体字,但是,总是有一些字很偏,并且看着这些真的头大、眼睛疼。我就想能不能将它转换为简体。也方便我看。想到就去做咯,开干。

简单介绍

我们这本采用的类库,简单介绍一下

  1. epublib-core
  • "epublib-core" 是一个用于处理 EPUB 格式电子书的 Java 类库。
  • 它提供了一组功能强大的 API,用于创建、读取、修改和生成 EPUB 文件。
  • 通过该类库,您可以访问 EPUB 文件的元数据、章节内容、样式表等,并进行相应的操作。
  • 它是一个开源项目,提供了丰富的文档和示例代码,方便您在 Java 程序中集成和使用 EPUB 功能。
  1. opencc4j
  • 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();
        }


    }
}

效果展示:

5C3278A3F62E0DDF896483C6043785E2.png 2215AA14716C1EFC64EBEE3454284856.png

写在最后

我们真的是站在巨人的肩膀上,如果没有这些方便的类库,真的自己实现感觉困难重重,相关的规则匹配就很麻烦。再加上网络上那些转换软件和网站。真的气死人了都,好用的寥寥无几,还不如自己实现一个更简单。