Пример #1
0
        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();
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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;
            }
        }
Пример #6
0
        public static string[] GetPdfLines(string pdf, PdfMode mode = PdfMode.Raw)
        {
            string text = GetPdfText(pdf, mode);

            return(splitLines(text));
        }
Пример #7
0
 public static string[] GetPdfFirstPageLines(string pdf, PdfMode mode = PdfMode.Raw)
 {
     return(GetPdfPages(pdf, mode)[0]);
 }
Пример #8
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);
        }