Reputation: 964
I am trying to write extracted text of the pdf file into text document but currently, only the first page is being written in the text document although 6 pages are being output in the console of eclipse.
How can I fix that?
I appreciate any help.
try {
PdfReader reader = new PdfReader("D:\\hl_sv\\L09MF.pdf");
int pagenumber = reader.getNumberOfPages();
for (int i = 1; i <= pagenumber; i++) {
System.out.println("==================PAGE NUMBER " + i
+ "===================");
String line = PdfTextExtractor.getTextFromPage(reader, i);
PrintWriter out = new PrintWriter("D:\\hl_sv\\L09MF.txt");
for (String s : line.split("\n")) {
out.println(s);
}
out.close();
System.out.println(line);
}
Upvotes: 1
Views: 84
Reputation: 219
Try moving the instantiation and closing of the PrintWriter
outside of the main for
loop:
try {
PdfReader reader = new PdfReader("D:\\hl_sv\\L09MF.pdf");
int pagenumber = reader.getNumberOfPages();
PrintWriter out = new PrintWriter("D:\\hl_sv\\L09MF.txt");
for (int i = 1; i <= pagenumber; i++) {
System.out.println("==================PAGE NUMBER " + i
+ "===================");
String line = PdfTextExtractor.getTextFromPage(reader, i);
for (String s : line.split("\n")) {
out.println(s);
}
System.out.println(line);
}
out.close();
I'm not sure if that'll do the trick but it may help as the PrintWriter
keeps opening and closing every page.
Upvotes: 4
Reputation: 399
Try to use your output variable out of loop, maybe helps
try {
PdfReader reader = new PdfReader("D:\\hl_sv\\L09MF.pdf");
PrintWriter out = new PrintWriter("D:\\hl_sv\\L09MF.txt");
int pagenumber = reader.getNumberOfPages();
for (int i = 1; i <= pagenumber; i++) {
System.out.println("==================PAGE NUMBER " + i
+ "===================");
String line = PdfTextExtractor.getTextFromPage(reader, i);
for (String s : line.split("\n")) {
out.println(s);
}
System.out.println(line);
}
out.close();
Upvotes: 0