MrPencil
MrPencil

Reputation: 964

How can I write all the pages in the text document

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

Answers (2)

PDice30
PDice30

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 PrintWriterkeeps opening and closing every page.

Upvotes: 4

Saidolim
Saidolim

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

Related Questions