Moin,
ich habe eine Frage zu folgendem Skript. Mit dem Skript lese ich PDF-Dateien aus, bzw. möchte ich.
Oben in der Main Klasse lasse ich mir die Files eines Directories auflisten. Diese gebe ich dann an die Klasse Pdfreader weiter. In der Klasse Pdfreader und der Methode fread erfolgt dann das Auslesen der PDF-Datei. Unten in der Methode lese ich das Array "splittArray" aus und bekomme den kompletten Inhalt aller PDF-Dateien hintereinander ausgegeben. Soweit funktioniert das Skript. Jetzt möchte ich aber die Ausgabe in der Main-Klasse machen. Dazu gibt die Klasse Pdfreader ein String-Array zurück, welches dann in listedBdData gespeichert ist. Der Gedanke war, dass listedBdData durch listedFiles gesteuert ein File nach dem anderen durchgeht und ich in der nächsten Schleife jeweils den Inhalt von listedBdData auslesen kann. Die Schleife von listedBdData macht aber nur einen Durchgang und es weden nur die Daten des ersten Files ausgegeben. Wo ist der Denkfehler?
Vielen Dank für die Hilfe!
ich habe eine Frage zu folgendem Skript. Mit dem Skript lese ich PDF-Dateien aus, bzw. möchte ich.
Oben in der Main Klasse lasse ich mir die Files eines Directories auflisten. Diese gebe ich dann an die Klasse Pdfreader weiter. In der Klasse Pdfreader und der Methode fread erfolgt dann das Auslesen der PDF-Datei. Unten in der Methode lese ich das Array "splittArray" aus und bekomme den kompletten Inhalt aller PDF-Dateien hintereinander ausgegeben. Soweit funktioniert das Skript. Jetzt möchte ich aber die Ausgabe in der Main-Klasse machen. Dazu gibt die Klasse Pdfreader ein String-Array zurück, welches dann in listedBdData gespeichert ist. Der Gedanke war, dass listedBdData durch listedFiles gesteuert ein File nach dem anderen durchgeht und ich in der nächsten Schleife jeweils den Inhalt von listedBdData auslesen kann. Die Schleife von listedBdData macht aber nur einen Durchgang und es weden nur die Daten des ersten Files ausgegeben. Wo ist der Denkfehler?
Vielen Dank für die Hilfe!
Java:
package ReadinPdfreaderTest2;
import ReadinPdfreaderTest2.ReadinFile;
public class main {
public static void main(String[] args) {
//Vorhandene Files auflisten
String path = "D:\\Thomas\\Java\\Files\\";
String[] listedFiles;
listedFiles = ReadinFile.listFiles(path);
for (int i = 0; i < listedFiles.length; i++){
System.out.println(listedFiles[i]);
}
//Files an Pdfreader übergeben
for (int i = 0; i < listedFiles.length; i++){
String[] listedBdData;
listedBdData = Pdfreader.fread(path.concat(listedFiles[i]));
for(i = 0; i < listedBdData.length; i++){
System.out.println(listedBdData[i]);
}
}
}
Java:
public class Pdfreader {
public static String[] fread(String str){
StringBuffer buff = new StringBuffer();
try {
PdfReader reader = new PdfReader(str);
int numberOfPages = reader.getNumberOfPages();
String s;
for (int i = 1; i <= numberOfPages; i++) {
s = PdfTextExtractor.getTextFromPage(reader, i);
buff.append(s + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
//-------------------------------------------------------
//String in Array einlesen und ausgeben
String text;
text = buff.toString();
String[] splittArray = text.split("\\s+");
for (int i = 0; i < splittArray.length; i++){
//System.out.println(splittArray[i]);
}
return splittArray;
}
}