我有一个包含大量pdfs的文件夹,我需要将它们全部转换为txt并将这些文本文件保存在另一个文件夹中。我想用java来做这件事。
我有这个代码来解析一个pdf,但它只适用于一个,我需要处理一个包含数千个pdf的文件夹。
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
File file = new File("C:/my.pdf");
try {
PDFParser parser = new PDFParser(new FileInputStream(file));
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
pdfStripper.setStartPage(1);
pdfStripper.setEndPage(20);
String parsedText = pdfStripper.getText(pdDoc);
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
有什么想法吗?
答案 0 :(得分:0)
你可以尝试这样的事情
PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
String parsedText=""; // append the text to this every time
File folder = new File("/yourFolder"); // put all the pdf files in a folder
File[] listOfFiles = folder.listFiles(); // get all the files as an array
for (File file : listOfFiles) { // cycle through this array
if (file.isFile()) { // for every file
try { //do the same
PDFParser parser = new PDFParser(new FileInputStream(file));
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
pdfStripper.setStartPage(1);
pdfStripper.setEndPage(pdDoc.getNumberOfPages()); // if always till the last page
parsedText += pdfStripper.getText(pdDoc) + System.lineSeparator(); // append the text to the String
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}