Boa tarde, estou tentando fazer um sistema que faça a leitura, listagem de arquivos PDF, atualmente já consegui fazer a leitura de 1 único PDF utilizando o PDFBOX mas gostaria de saber como poderia fazer uma listagem e filtragem de informações(CPF) tipo:
C:\temp\a.pdf
612.123.542-53
C:\temp\b.pdf
C:\temp\c.pdf
A ideia principal seria adicionar essa leitura juntamente com uma leitura de arquivos txt que já tenho.
Gostaria da ajuda de um ser abençoado que pudesse me dar um norte em relação a tal “problema”
Leitura do arquivo PDF
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.text.PDFTextStripperByArea;
import java.io.File;
import java.io.IOException;
public class LeituraPDF {
public static void main(String[] args) throws IOException {
File file = new File("C:\\temp\\ab.pdf");
try (PDDocument document = Loader.loadPDF(file)) {
if (!document.isEncrypted()) {
PDFTextStripperByArea stripper = new PDFTextStripperByArea();
stripper.setSortByPosition(true);
PDFTextStripper tStripper = new PDFTextStripper();
String pdfFileInText = tStripper.getText(document);
String[] lines = pdfFileInText.split("\\r?\\n");
for (String line : lines) {
System.out.println(line);
}
}
}
}
}
Eu quero implementar esse código nesse outro código a seguir que faz a listagem e filtragem:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import static conexaobd.ConexaoMySQL.getConexaoMySQL;
public class Principal {
private static String extension = "none";
private static String fileName;
public static void main(String[] args) throws SQLException, IOException {
String dir = "C:\\temp";
File aFile = new File(dir);
ReadDirectory(aFile);
getConexaoMySQL();
}
private static void ReadDirectory(File aFile) throws SQLException, IOException {
File[] listOfFiles;
listOfFiles = aFile.listFiles();
if (aFile.isDirectory()) {
listOfFiles = aFile.listFiles();
if (listOfFiles != null) {
for (File listOfFile : listOfFiles) {
if (listOfFile.isFile()) {
fileName = listOfFile.toString();
int dotPos = fileName.lastIndexOf(".");
if (dotPos > 0) {
extension = fileName.substring(dotPos);
}
if (extension.equals(".txt") || extension.equals(".pdf")) {
try {
System.out.println(listOfFile);
BuscarCPF.main(listOfFile);
} catch (FileNotFoundException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
try {
BuscarEMAIL.main(listOfFile);
} catch (FileNotFoundException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
try {
BuscarCNPJ.main(listOfFile);
} catch (FileNotFoundException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
try {
CEP.main(listOfFile);
} catch (FileNotFoundException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
if (listOfFile.isDirectory()) {
ReadDirectory(listOfFile);
}
}
}
}
if (listOfFile.isDirectory()) {
ReadDirectory(listOfFile);
}
}
}
}
}
}