public bool MoveFile(string fileName, string target) { string sourceFile = Path.Combine(GetConstants.Home(), GetConstants.Directory("indir"), fileName); string targetFile = Path.Combine(GetConstants.Home(), GetConstants.Directory(target), fileName); try { File.Move(sourceFile, targetFile); } catch { return(false); } return(true); }
private void CreateTxtFromPDF(string filename) { //ScanPageStatus scanPageStatus = new ScanPageStatus(); string tesseractPath = Path.Combine(AssemblyDirectory(), GetConstants.TesseractBinaries()); string tesseractData = Path.Combine(AssemblyDirectory(), GetConstants.TesseractData()); try { using (OCRProcessor processor = new OCRProcessor(tesseractPath)) { //Stream pdfStream2 = filename; // FileUpload1.PostedFile.InputStream; // Read in PDF image file, and convert to searchable TXT pdf file PdfLoadedDocument IDoc = new PdfLoadedDocument(filename); processor.Settings.Language = Languages.English; processor.Settings.Performance = Performance.Slow; // var zz = processor.Settings.Performance; //string tessdata = tesseractPath + @"\\Tessdata\\"; processor.PerformOCR(IDoc, tesseractData); string outFileName = Path.GetFileName(filename) + "_OCR" + Path.GetExtension(filename); string homePath = Path.GetDirectoryName(Path.GetDirectoryName(filename)); string savePath = Path.Combine(homePath, GetConstants.Directory("out"), outFileName); // If file exists - delete it first. if (File.Exists(savePath)) { File.SetAttributes(savePath, FileAttributes.Normal); File.Delete(savePath); } IDoc.Save(savePath); IDoc.Close(true); IDoc.Dispose(); scanPageStatus.scannedFileName = savePath; scanPageStatus.rc = 0; scanPageStatus.statusMessage = String.Format("File {0} scanned and saved to {1}", filename, scanPageStatus.scannedFileName); } } catch (Exception ex) { scanPageStatus.scannedFileName = ""; scanPageStatus.statusMessage = String.Format("Error {0} when running OCR on source file {1}", ex, filename); scanPageStatus.rc = -1; } // return scanPageStatus; }
//private string inDir = GetConstants.Directory("indir"); //private string processedDir = GetConstants.Directory("processed"); //private string errorDir = GetConstants.Directory("error"); //private string home = GetConstants.Home(); //public const string inDir = "in"; //public const string processedDir = "processed"; //public const string errorDir = "error"; public FileStatus CheckNextFile() { FileStatus fileStatus = new FileStatus(); //FileProcessor tools = new FileProcessor(); //string targetPath = Path.Combine(home, inDir); string targetPath = Path.Combine(GetConstants.Home(), GetConstants.Directory("indir")); if (Directory.Exists(targetPath)) { fileStatus.fileName = GetNextFile(targetPath); if (fileStatus.fileName.Length == 0) { fileStatus.rc = 1; fileStatus.statusMessage = String.Format("No more files in source directory {0}", targetPath); } else { fileStatus.rc = CheckFile(fileStatus.fileName); if (fileStatus.rc < 0) { if (MoveFile(Path.GetFileName(fileStatus.fileName), GetConstants.Directory("indir"), GetConstants.Directory("error"))) { fileStatus.statusMessage = String.Format("Soure file {0} invalid. Moved to error directory", Path.GetFileName(fileStatus.fileName)); } else { fileStatus.statusMessage = String.Format("Soure file {0} invalid; error moving to error directory", Path.GetFileName(fileStatus.fileName)); } } } } else { fileStatus.statusMessage = String.Format("Invalid source directory {0}", targetPath); fileStatus.rc = -10; } return(fileStatus); }