public static int RunPdfToText(string pdf, string txt, PdfMode mode = PdfMode.Raw) { checkInitialized(); ProcessStartInfo pr = new ProcessStartInfo(); string args; if (mode == PdfMode.Raw) { args = PdfToTextParamsRaw; } else { args = PdfToTextParamsLayout; } pr.Arguments = string.Format(args, pdf, txt); pr.FileName = PdfToTextExe; pr.WindowStyle = ProcessWindowStyle.Hidden; pr.CreateNoWindow = true; using (Process proc = Process.Start(pr)) { proc.WaitForExit(); return(proc.ExitCode); } throw new Exception(); }
public string AddPage(string imagePath, PdfMode mode, string sessionName, Rectangle dimension) { Image img = Image.FromFile(imagePath); string result = AddPage(img, mode, sessionName, dimension); img.Dispose(); return(result); }
public static List <string[]> GetPdfPages(string pdf, PdfMode mode = PdfMode.Raw) { string text = GetPdfText(pdf, mode); string[] pages = text.Split((char)0x0C); List <string[]> ret = new List <string[]>(); foreach (string page in pages) { ret.Add(splitLines(page)); } return(ret); }
public static string GetPdfText(string pdf, PdfMode mode = PdfMode.Raw) { LastWasCached = false; string existingPdf = pdf.Substring(pdf.Length - 3) + "txt"; if (File.Exists(existingPdf)) { LastWasCached = true; return(File.ReadAllText(existingPdf)); } string tmp = Path.GetTempFileName() + ".txt"; PdfToText.RunPdfToText(pdf, tmp, mode); string text = File.ReadAllText(tmp); File.Delete(tmp); return(text); }
private static void SetServer() { try { TTS.setReader(); IPAddress localAdd = IPAddress.Parse(SERVER_IP); TcpListener listener = new TcpListener(localAdd, PORT_NO); Console.WriteLine(ConfigurationManager.AppSettings["ServerInitalState"]); listener.Start(); //---incoming client connected--- TcpClient client = listener.AcceptTcpClient(); listener.Stop(); bool isVrbstyChar = false; bool isPDFMode = false; bool IsLatexDocument = false; while (client.Connected) { NetworkStream nwStream = client.GetStream(); byte[] buffer = new byte[client.ReceiveBufferSize]; //---read incoming stream--- int bytesRead = 0; string dataReceived = string.Empty; try { bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize); } catch (IOException e) { // break; } //---convert the data received into a string--- dataReceived = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("Recevie Data From Client: " + dataReceived); if (dataReceived.Length == 1) { CancelCurrentStream(); dataReceived = CurserMode.ParseSource(dataReceived); TTS.Speak(dataReceived); } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_Next"]) || dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_Stop"])) { if (TTS.getReader().State == SynthesizerState.Paused) { TTS.getReader().Dispose(); TTS.setReader(); } else { TTS.getReader().SpeakAsyncCancelAll(); } if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_Next"])) { isError = true; } dataReceived = string.Empty; isPDFMode = false; //isVrbstyChar = false; isMisSpelled = false; } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_LatexDcmnt"])) { dataReceived = string.Empty; IsLatexDocument = true; } else if (IsLatexDocument) { if (dataReceived.ToLower().Contains("\\end{document}") || dataReceived.Equals("\\end{document}")) { dataReceived = strAppendLatexDocument + dataReceived; strAppendLatexDocument = string.Empty; PdfAccessibilityMode obj = new PdfAccessibilityMode(dataReceived); obj.ConvertLatexEquationToText(); //---write back the text to the client--- byte[] hey = Encoding.ASCII.GetBytes(PdfAccessibilityMode.LatexDocument); Console.WriteLine("Sending back Client : " + PdfAccessibilityMode.LatexDocument); nwStream.Write(hey, 0, hey.Length); PdfAccessibilityMode.LatexDocument = string.Empty; dataReceived = ""; IsLatexDocument = false; nwStream.Flush(); //client.Close(); //Thread.Sleep(5000); //nwStream.Dispose(); //listener.Stop(); //nwStream.Dispose(); //nwStream.Flush(); //listener.Stop(); //client.Close(); //listener.Start(); } else { strAppendLatexDocument = dataReceived + "\n"; } } else if (isPDFMode) { PdfMode mathObj = new PdfMode(dataReceived); mathObj.filterLatexSourceCodeUsingOpenDetex(); dataReceived = ""; isPDFMode = false; } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_PDFMode"])) { CancelCurrentStream(); isPDFMode = true; dataReceived = string.Empty; Console.WriteLine(TTSProperties.MSG_PDF_MODE_ENABLED); } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_Pause"])) { TTS.TTS_Pause(); dataReceived = string.Empty; Console.WriteLine(TTSProperties.MSG_TTS_PAUSED); } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_Resume"])) { TTS.TTS_Resume(); dataReceived = string.Empty; Console.WriteLine(TTSProperties.MSG_TTS_RESUMED); } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_WordVrbsty"])) { isVrbstyChar = false; dataReceived = string.Empty; } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_CharVrbsty"])) { isVrbstyChar = true; dataReceived = string.Empty; } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_SpecialCmnd"])) { CancelCurrentStream(); isSpeicalCommand = true; dataReceived = string.Empty; } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_IncreaseSpeed"])) { int speed = TTS.getReader().Rate + 1; TTS.TTS_SetSpeed(speed); dataReceived = string.Empty; Console.WriteLine(TTSProperties.MSG_SPEED_INCREASED); } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_DecreaseSpeed"])) { int speed = TTS.getReader().Rate - 1; TTS.TTS_SetSpeed(speed); dataReceived = string.Empty; Console.WriteLine(TTSProperties.MSG_SPEED_DECREASED); } else if (CurserMode.IsCurserMode(dataReceived)) { string editorCmndValue = ConfigurationManager.AppSettings["DataReceived_EditorCmnd"]; if (dataReceived.Contains(editorCmndValue)) { dataReceived = dataReceived.Contains(editorCmndValue) ? dataReceived.Replace(editorCmndValue, "") : dataReceived; if (isVrbstyChar) { CancelCurrentStream(); //dataReceived = Encoding.Default.GetString(buffer, 0, bytesRead); TTS.VBRCharModeTTSSpeak(dataReceived); //isVrbstyChar = false; continue; } } dataReceived = CurserMode.ParseSource(dataReceived); CancelCurrentStream(); TTS.Speak(dataReceived); } else if (dataReceived.Equals(ConfigurationManager.AppSettings["DataReceived_ChangeVoice"])) { isVoiceChange = true; dataReceived = string.Empty; } else if (isVoiceChange) { isVoiceChange = false; TTS.TTS_ChangeVoice(dataReceived); dataReceived = string.Empty; Console.WriteLine(TTSProperties.MSG_VOICE_CHANGED); } else if (!string.IsNullOrEmpty(dataReceived)) { LookupTable(); //dataReceived = TextLineParsing(dataReceived); if (isMisSpelled) { dataReceived = "misspelled \r\n" + dataReceived; isMisSpelled = false; } if (isVrbstyChar && !isError && !isSpeicalCommand) { CancelCurrentStream(); //dataReceived = Encoding.Default.GetString(buffer, 0, bytesRead); TTS.VBRCharModeTTSSpeak(dataReceived); //isVrbstyChar = false; continue; } dataReceived = TextLineParsing(dataReceived); CancelCurrentStream(); TTS.Speak(dataReceived); isError = false; isSpeicalCommand = false; } } }catch (Exception ex) { throw ex; } }
public static string[] GetPdfLines(string pdf, PdfMode mode = PdfMode.Raw) { string text = GetPdfText(pdf, mode); return(splitLines(text)); }
public static string[] GetPdfFirstPageLines(string pdf, PdfMode mode = PdfMode.Raw) { return(GetPdfPages(pdf, mode)[0]); }
public string AddPage(Image image, PdfMode mode, string sessionName, Rectangle dimension) { Guid objGuid = image.FrameDimensionsList[0]; FrameDimension frameDim = new FrameDimension(objGuid); int frameCount = image.GetFrameCount(frameDim); string pageBody = string.Empty; for (int i = 0; i < frameCount; i++) { image.SelectActiveFrame(frameDim, i); switch (mode) { case PdfMode.ImageOnly: { AddImage(image, sessionName, dimension); break; } case PdfMode.Ocr: { AddImage(image, sessionName, dimension); if (OnProcessImageForOcr != null) { image = OnProcessImageForOcr(image); } _ocrController.AddToDocument(PdfSettings.Language, image, ref _hDoc, sessionName); if (_hDoc.Pages.Count > 0) { HPage page = _hDoc.Pages[_hDoc.Pages.Count - 1]; WriteUnderlayContent(page); pageBody = pageBody + page.TextUnescaped; } break; } case PdfMode.TextOnly: { _doc.NewPage(); _ocrController.AddToDocument(PdfSettings.Language, image, ref _hDoc, sessionName); HPage page = _hDoc.Pages[_hDoc.Pages.Count - 1]; WriteDirectContent(page); pageBody = pageBody + page.TextUnescaped; break; } case PdfMode.DrawBlocks: { _ocrController.AddToDocument(PdfSettings.Language, image, ref _hDoc, sessionName); HPage page = _hDoc.Pages[_hDoc.Pages.Count - 1]; WritePageDrawBlocks(image, page, sessionName, dimension); pageBody = pageBody + page.TextUnescaped; break; } case PdfMode.Debug: { _ocrController.AddToDocument(PdfSettings.Language, image, ref _hDoc, sessionName); HPage page = _hDoc.Pages[_hDoc.Pages.Count - 1]; WritePageDrawBlocks(image, page, sessionName, dimension); WriteDirectContent(page); pageBody = pageBody + page.TextUnescaped; break; } } } return(pageBody); }