
prerna.reactor.frame.gaas.qa.PreprocessQAReactor Maven / Gradle / Ivy
The newest version!
//package prerna.reactor.frame.gaas.qa;
//
//import java.io.File;
//import java.io.FileNotFoundException;
//import java.io.IOException;
//import java.io.PrintWriter;
//
//import org.apache.commons.compress.utils.FileNameUtils;
//import org.apache.pdfbox.cos.COSDocument;
//import org.apache.pdfbox.io.RandomAccessFile;
//import org.apache.pdfbox.pdfparser.PDFParser;
//import org.apache.pdfbox.pdmodel.PDDocument;
//import org.apache.pdfbox.text.PDFTextStripper;
//
//import prerna.reactor.frame.gaas.AbstractGaasBaseReactor;
//import prerna.sablecc2.om.PixelDataType;
//import prerna.sablecc2.om.ReactorKeysEnum;
//import prerna.sablecc2.om.nounmeta.NounMetadata;
//import prerna.util.AssetUtility;
//import prerna.util.Utility;
//import prerna.util.Constants;
//
//import org.apache.logging.log4j.LogManager;
//import org.apache.logging.log4j.Logger;
//
//
//public class PreprocessQAReactor extends AbstractGaasBaseReactor {
//
// // preprocesses documents in a given folder
// // essentially turns it into a text file and drops it into the folder / text directory
//
// private static final Logger classLogger = LogManager.getLogger(PreprocessQAReactor.class);
//
// public PreprocessQAReactor() {
// this.keysToGet = new String[]{ReactorKeysEnum.FILE_PATH.getKey(), ReactorKeysEnum.SEPARATOR.getKey()};
// this.keyRequired = new int[] {1, 0};
// }
//
//
//
// @Override
// public NounMetadata execute() {
//
// organizeKeys();
// String folderName = keyValue.get(keysToGet[0]);
// String separator = "=x=x=x=";
// if(keyValue.containsKey(keysToGet[1]))
// separator = keyValue.get(keysToGet[1]);
//
// // check if directory exists
// // create a text directory
// // pick all the pdf files
// // convert them to text file
// String txtFolderName = folderName;
// if(this.insight != null)
// {
// String projectId = getProjectId();
// String basePath = AssetUtility.getProjectAssetFolder(projectId);
// folderName = basePath + "/" + folderName;
// }
// txtFolderName = folderName + "/processed";
// File inputFolder = new File(folderName);
// if(!inputFolder.exists())
// return NounMetadata.getErrorNounMessage("No such folder ");
//
// // create the text directory
// File txtFolder = new File(txtFolderName);
// if(!txtFolder.exists())
// {
// txtFolder.mkdir();
// }
//
// StringBuffer processedFiles = new StringBuffer(" Processed Files : ");
//
// // grab all the pdf
// String [] inputFiles = inputFolder.list();
// for(int inputFileIndex = 0;inputFileIndex < inputFiles.length;inputFileIndex++)
// {
// String inputFileName = inputFiles[inputFileIndex];
// if(inputFileIndex > 0)
// processedFiles.append(", ");
// if(inputFileName.endsWith(".pdf")) // this is a pdf file // need a better way
// {
// inputFileName = Utility.normalizePath(folderName) + DIR_SEPARATOR + inputFileName;
// String documentName = FileNameUtils.getBaseName(inputFileName);
// processedFiles.append(documentName);
// String txtOutputFileName = txtFolder + DIR_SEPARATOR + documentName + ".txt" ;
// //convertPDFFile2Text(inputFileName, txtOutputFileName, documentName, separator);
// String csvOutputFileName = txtFolder + DIR_SEPARATOR + documentName + ".csv" ;
// convertPDFFile2CSV(inputFileName, csvOutputFileName, documentName, separator);
// }
// }
// return new NounMetadata(processedFiles + "", PixelDataType.CONST_STRING);
// }
//
// public void convertPDFFile2CSV(String pdfFile, String outputFile, String documentName, String separator)
// {
// try {
// File f = new File(pdfFile);
// String parsedText;
// PDFParser parser = new PDFParser(new RandomAccessFile(f, "r"));
// parser.parse();
//
// COSDocument cosDoc = parser.getDocument();
//
// PDFTextStripper pdfStripper = new PDFTextStripper();
// PrintWriter pw = new PrintWriter(outputFile);
// StringBuffer row = new StringBuffer();
// row.append("Source").append(",").append("Page").append(",").append("Content").append("\r\n");
// pw.print(row + "");
// // get total number of pages
// PDDocument pdDoc = new PDDocument(cosDoc);
// int totalPages = pdDoc.getNumberOfPages();
// for(int pageIndex = 0;pageIndex < totalPages;pageIndex++)
// {
// row = new StringBuffer();
// pdfStripper.setStartPage(pageIndex);
// pdfStripper.setEndPage(pageIndex);
// parsedText = pdfStripper.getText(pdDoc);
// parsedText = parsedText.replace("\n", " ");
// parsedText = parsedText.replace("\r", " ");
// parsedText = parsedText.replace("\\", "\\\\");
// parsedText = parsedText.replace("\"", "'");
// if(parsedText.length() == 0)
// parsedText = " ";
// //parsedText = parsedText.replace("\'", "\\'");
//
// row.append("\"").append(documentName).append("\", ").append(pageIndex).append(",\"").append(parsedText).append("\"\r\n");
// //parsedText = documentName + "::::Page <" + pageIndex + ">::::" + parsedText;
// //System.err.println(parsedText);
// pw.print(row+"");
// //System.out.println(row);
// //pw.print(separator);
// pw.flush();
// }
// // finished writing
// pw.close();
// } catch (FileNotFoundException e) {
// // TODO Auto-generated catch block
// classLogger.error(Constants.STACKTRACE, e);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
//
// public void convertPDFFile2Text(String pdfFile, String outputFile, String documentName, String separator)
// {
// try {
// File f = new File(pdfFile);
// String parsedText;
// PDFParser parser = new PDFParser(new RandomAccessFile(f, "r"));
// parser.parse();
//
// COSDocument cosDoc = parser.getDocument();
//
// PDFTextStripper pdfStripper = new PDFTextStripper();
// PrintWriter pw = new PrintWriter(outputFile);
//
// // get total number of pages
// PDDocument pdDoc = new PDDocument(cosDoc);
// int totalPages = pdDoc.getNumberOfPages();
// for(int pageIndex = 0;pageIndex < totalPages;pageIndex++)
// {
// pdfStripper.setStartPage(pageIndex);
// pdfStripper.setEndPage(pageIndex);
// parsedText = pdfStripper.getText(pdDoc);
// parsedText = documentName + "::::Page <" + pageIndex + ">::::" + parsedText;
// //System.err.println(parsedText);
// pw.print(parsedText);
// pw.print(separator);
// pw.flush();
// }
// // finished writing
// pw.close();
// } catch (FileNotFoundException e) {
// // TODO Auto-generated catch block
// classLogger.error(Constants.STACKTRACE, e);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
//
//
//// public static void main(String [] args)
//// {
//// PreprocessQAReactor reac = new PreprocessQAReactor();
//// reac.keyValue = new HashMap();
//// reac.keyValue.put(reac.keysToGet[0], "C:\\Users\\pkapaleeswaran\\workspacej3\\SemossDev\\project\\FrameTester__9f78e44f-64cc-456a-925f-b5062783315f\\app_root\\version\\assets\\qa_models");
//// reac.execute();
////
//// }
//
//
//
//}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy