使用一些开源的Java库来实现,例如 Apache PDFBox 、 iText。
- 使用 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();
}
}
}
- 使用 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();
}
}
}
标签:转换,String,text,繁体中文,pdf,new,main,public,简体中文
From: https://www.cnblogs.com/Liku-java/p/17965071