使用该方法请注意:因为此方法使用了base64解密,需要保证txt中的数据首先用了base64加密,如果只是普通的二进制数据,该方法并不适用
第一步
XML
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
第二步
java
package org.example.test.example.changefile;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ParsePDFFromString {
public static void main(String[] args) {
// 输入txt文件的路径
String txtFilePath = "C:\\Users\\EDY\\Desktop\\input.txt";
// 输出PDF文件的路径
String outputPdfPath = "C:\\Users\\EDY\\Desktop\\output.pdf";
try {
// 读取txt文件内容
String base64Data = new String(Files.readAllBytes(Paths.get(txtFilePath))).trim();
// 检查Base64数据是否为空
if (base64Data.isEmpty()) {
System.out.println("Base64 data is empty.");
return;
}
// Base64解码
byte[] pdfBytes = java.util.Base64.getDecoder().decode(base64Data);
// 检查解码后的数据是否为空
if (pdfBytes.length == 0) {
System.out.println("Decoded PDF data is empty.");
return;
}
// 将解码后的数据转换为PDF文件
try (PDDocument document = PDDocument.load(new ByteArrayInputStream(pdfBytes))) {
// 创建PDFTextStripper对象
PDFTextStripper stripper = new PDFTextStripper();
// 从PDF文档中提取文本
String text = stripper.getText(document);
// 输出提取的文本
System.out.println(text);
// 保存PDF文档
document.save(outputPdfPath);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}