1、下载pdfbox-app-2.0.31.jar并导入到项目结构中
2.重点:实现选择本地PDF文件代码
//选择PDF文件
private void selectPdfFile() {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
extractDegreeGPA(selectedFile.getAbsolutePath());
}
}
extractDegreeGPA是我具体实现的功能,在下边
3.这里是我实现的具体提取功能,这里的PDF内容是课程学分成绩等,具体涉及到提取表格的某行列信息。
private void extractDegreeGPA(String filePath) {
try (PDDocument document = PDDocument.load(new File(filePath))) {
PDFTextStripper pdfStripper = new PDFTextStripper();
// 提取PDF中的文本
String text = pdfStripper.getText(document);
// 找到最后一页的学位课平均学分绩点
String[] pages = text.split("\\f"); // 分隔符是换页符
String lastPage = pages[pages.length - 1];
// 定位到最后一行的学位课平均学分绩点
String[] lines = lastPage.split("\n");
for (int i = lines.length - 1; i >= 0; i--) {
String line = lines[i].trim();
if (line.startsWith("学位课")) {
String[] parts = line.split("\\s+");
String degreeGPA = parts[parts.length - 2];
//System.out.println("学位课平均学分绩点: " + degreeGPA);
result.setText(degreeGPA);
break;
}
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "无法读取PDF文件:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
4.测试代码
该方法一般在某按钮事件发生时调用,这里并没有在具体场景调用,只是简单说明意思
public static void main(String args[]) {
selectPdfFile();
}
5.运行结果
出现该窗口,选择所需PDF文件能实现所需功能即可。
标签:java,String,void,extractDegreeGPA,导入,学分,PDF,PDf,fileChooser From: https://blog.csdn.net/J_R___/article/details/139720971