Thursday, February 2, 2017

PDF Document Reading in Java Selenium


Below code is used to read PDF documents from JAVA code.

import org.pdfbox.cos.COSDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.pdmodel.PDDocumentInformation;
import org.pdfbox.util.PDFTextStripper;

import java.io.File;
import java.io.FileInputStream;
import java.io.PrintWriter;

public class PDFTextParser {
   
    PDFParser parser;
    String parsedText;
    PDFTextStripper pdfStripper;
    PDDocument pdDoc;
    COSDocument cosDoc;
    PDDocumentInformation pdDocInfo;
   
    // PDFTextParser Constructor
    public PDFTextParser() {
    }
   
    // Extract text from PDF Document
    String pdftoText(String fileName) {
       
        System.out.println("Parsing text from PDF file " + fileName + "....");
        File f = new File(fileName);
       
        if (!f.isFile()) {
            System.out.println("File " + fileName + " does not exist.");
            return null;
        }
       
        try {
            parser = new PDFParser(new FileInputStream(f));
        } catch (Exception e) {
            System.out.println("Unable to open PDF Parser.");
            return null;
        }
       
        try {
            parser.parse();
            cosDoc = parser.getDocument();
            pdfStripper = new PDFTextStripper();
            pdDoc = new PDDocument(cosDoc);
            parsedText = pdfStripper.getText(pdDoc);
        } catch (Exception e) {
            System.out.println("An exception occured in parsing the PDF Document.");
            e.printStackTrace();
            try {
                   if (cosDoc != null) cosDoc.close();
                   if (pdDoc != null) pdDoc.close();
               } catch (Exception e1) {
               e.printStackTrace();
            }
            return null;
        }     
        System.out.println("Done.");
        return parsedText;
    }
   
    // Write the parsed text from PDF to a file
    void writeTexttoFile(String pdfText, String fileName) {
               
                System.out.println("\nWriting PDF text to output text file " + fileName + "....");
                try {
                                PrintWriter pw = new PrintWriter(fileName);
                                pw.print(pdfText);
                                pw.close();        
 \             } catch (Exception e) {
                                System.out.println("An exception occured in writing the pdf text to file.");
                                e.printStackTrace();
                }
                System.out.println("Done.");
    }
   
    //Extracts text from a PDF Document and writes it to a text file
    public static void main(String args[]) {
               
                if (args.length != 2) {
                System.out.println("Usage: java PDFTextParser <InputPDFFilename> <OutputTextFile>");
                System.exit(1);
        }
       
        PDFTextParser pdfTextParserObj = new PDFTextParser();
        String pdfToText = pdfTextParserObj.pdftoText(args[0]);
       
        if (pdfToText == null) {
                System.out.println("PDF to Text Conversion failed.");
        }
        else {
                System.out.println("\nThe text parsed from the PDF Document....\n" + pdfToText);
                pdfTextParserObj.writeTexttoFile(pdfToText, args[1]);
        }
    } 
}



No comments:

Post a Comment