繁体中文与简体中文转换

使用一些开源的Java库来实现,例如 Apache PDFBox 、 iText。

  1. 使用 Apache PDFBox:

导入 Apache PDFBox 的依赖。在 Maven 或 Gradle 中添加以下依赖项:

<!-- Apache PDFBox -->
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.27</version>
</dependency>

实现代码:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class PDFReader {
    public static void main(String[] args) {
        try (PDDocument document = PDDocument.load(new File("D:\test\demo\untitled1\src\main\resources\孤独六讲.pdf"))) {
            PDFTextStripper stripper = new PDFTextStripper();
            String text = stripper.getText(document);
            System.out.println(toSimple(text));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

如果想使用相对路径,可以用下面的方式:

public class Convert {
    public static void main(String[] args) {
        try (PDDocument document = PDDocument.load(Convert.class.getClassLoader().getResourceAsStream("孤独六讲.pdf"))) {
            PDFTextStripper stripper = new PDFTextStripper();
            String text = stripper.getText(document);
            System.out.println(toSimple(text));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
  1. 使用 iText:

在 Maven 或 Gradle 中添加以下依赖项:

<!-- iText -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>7.1.16</version>
</dependency>

读取PDF文档的文字内容:

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.canvas.parser.PdfTextExtractor;

public class PDFReader {
    public static void main(String[] args) {
        try (PdfDocument document = new PdfDocument(new PdfReader("D:\test\demo\untitled1\src\main\resources\孤独六讲.pdf"))) {
            StringBuilder text = new StringBuilder();
            for (int pageNum = 1; pageNum <= document.getNumberOfPages(); pageNum++) {
                text.append(PdfTextExtractor.getTextFromPage(document.getPage(pageNum)));
            }
            System.out.println(toSimple(text.toString()));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
posted @ 2024-01-15 11:50  Liku007  阅读(39)  评论(0编辑  收藏  举报