Beispiel #1
0
        private void Panel_Click(object sender, EventArgs e)
        {
            DataObj.DocumentPages documentPage = (DataObj.DocumentPages)((Panel)sender).Tag;

            ((Home)this.Tag).Navigate(new pages.YearbookView(documentPage.ParentDocument, documentPage.Page));
        }
Beispiel #2
0
        private void btnStartReading_Click(object sender, EventArgs e)
        {
            int fileCount = 1;

            foreach (TreeNode tn in treeView2.Nodes)
            {
                int pageNo = 1;
                DataObj.Document             doc           = new DataObj.Document();
                List <DataObj.DocumentPages> documentPages = new List <DataObj.DocumentPages>();

                txtReadLog.AppendText("Creating document " + tn.Text + Environment.NewLine);

                string[] textFiles = Directory.GetFiles(tn.Tag.ToString(), "*.txt");

                doc.Id                = LiteDB.ObjectId.NewObjectId();
                doc.DocumentTitle     = tn.Text;
                doc.FolderDescription = "";

                foreach (string textFile in textFiles)
                {
                    doc.FolderDescription += File.ReadAllText(textFile) + Environment.NewLine;
                }

                doc.DocumentFolderPath = tn.Tag.ToString();

                foreach (TreeNode tn1 in tn.Nodes)
                {
                    txtReadLog.AppendText("\t Reading page " + pageNo.ToString() + Environment.NewLine);

                    Bitmap documentImage = new Bitmap(Image.FromFile(tn1.Tag.ToString()));
                    Page   page;
                    string content = "";

                    using (TesseractEngine ocr = new TesseractEngine("./tessdata", "eng", EngineMode.TesseractAndCube))
                    {
                        page    = ocr.Process(documentImage);
                        content = page.GetText();
                    }

                    Regex nonAlphaNumeric = new Regex("[^a-zA-Z0-9]");

                    DataObj.DocumentPages documentPage = new DataObj.DocumentPages()
                    {
                        DocFilename    = tn1.Text,
                        DocPath        = tn1.Tag.ToString(),
                        Content        = content,
                        ThumbImg       = DataObj.DocumentPages.ConvertImageToByte(new Bitmap(documentImage), DataObj.DocumentPages.ImageResize(documentImage.Size, true, 200)),
                        Page           = pageNo,
                        ImageId        = String.Format("$/{0}/img{1}{2}", doc.Id, pageNo, nonAlphaNumeric.Replace(tn1.Text.Replace(".jpg", ""), "")),
                        ParentDocument = doc.Id,
                        DateAdded      = DateTime.Now,
                        DateEdited     = DateTime.Now
                    };

                    if (DataObj.DocumentFileHandler.AddNewImageDocument(new DataObj.DocumentFileHandler()
                    {
                        Id = documentPage.ImageId,
                        FileName = documentPage.DocFilename,
                        ImageBmp = new Bitmap(documentImage)
                    }))
                    {
                        if (DataObj.DocumentPages.InsertUpdateDocument(documentPage))
                        {
                            documentPages.Add(documentPage);
                            pageNo++;
                        }
                    }

                    fileCount++;
                }

                doc.TotalPages = pageNo;
                doc.DocPages   = documentPages;

                if (DataObj.Document.InsertUpdateDocument(doc))
                {
                    txtReadLog.AppendText("Document " + tn.Text.ToString() + " added with " + doc.TotalPages + " total pages" + Environment.NewLine);
                }
            }

            label6.Text = fileCount.ToString();
        }