我正在尝试从pdf中提取文本,但问题是它也在读取隐藏文本。 我该如何解决这个问题?
我尝试了下面的代码
public static void iTextExample() {
String pdfFilePath = "path_to_pdf_file.pdf";
try {
PdfReader reader = new PdfReader(pdfFilePath);
int pageNo = 10;
String pageContent = PdfTextExtractor.getTextFromPage(reader,pageNo);
System.out.println("Page Content: \n" + pageContent);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
但代码也读取隐藏文本。
示例: 页面上可见文字
内容一览 简介二十三 第一章 简介 1 第二章机制 17 第 3 章技术 39 ... 索引
从 iText 中提取后的文本
斯塔德f? rs.indd V4 - 08/17/2011 第 viii 页 内容一览 简介二十三 第一章 简介 1 第二章机制 17 第 3 章技术 39 ... 索引 853 八 ffirs.inddffirs.indd viiiviii 8/19/20118/19/2011 12:22:38 PM12:22:38 PM
项目树
PDFBoxReadText
├── pom.xml
└── src
└── main
└── java
└── com
└── example
└── Main.java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>pdfbox-read-text</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>pdfbox-read-text</name>
<description>JPA Project</description>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.31</version>
</dependency>
</dependencies>
</project>
package com.example;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String pdfFilePath ="/your-path/your-pdf-file.pdf";
//config page
int startPage = 27;
int endPage = 27;
try (PDDocument document = PDDocument.load(new File(pdfFilePath))) {
PDFTextStripper textStripper = new PDFTextStripper();
textStripper.setStartPage(startPage);
textStripper.setEndPage(endPage);
String text = textStripper.getText(document);
//print text
System.out.println(text);
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行命令
mvn clean package
mvn dependency:copy-dependencies -DoutputDirectory=target/libs
java -cp "target/libs/*:target/pdfbox-read-text-0.0.1-SNAPSHOT.jar" com.example.Main
您也可以使用您喜欢的IDE工具(Eclipse、Netbeans、IDEA)打开此项目目录(或使用Import Maven Project),并在IDE工具中进行编辑和测试。