private void FindAndReplace(Microsoft.Office.Interop.Word.Application doc, object findText, object replaceWithText) { //options object matchCase = true; object matchWholeWord = true; object matchWildCards = false; object matchSoundsLike = false; object matchAllWordForms = false; object forward = true; object format = false; object matchKashida = false; object matchDiacritics = false; object matchAlefHamza = false; object matchControl = false; object read_only = false; object visible = true; object replace = 2; object wrap = 1; //execute find and replace try { doc.ActiveDocument.Content.Select(); doc.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord, ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceWithText, ref replace, ref matchKashida, ref matchDiacritics, ref matchAlefHamza, ref matchControl); } catch (Exception ex) { FindAndReplace(doc, findText, replaceWithText); } }
private static void WordDocKiller() { while (hasRunningWord) { Microsoft.Office.Interop.Word.Application runninApp = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); if (runninApp == null) { hasRunningWord = false; } else { runninApp.Quit(false); } foreach (Microsoft.Office.Interop.Word.Document d in runninApp.Documents) { if (d.FullName.ToLower() == runninApp.Path.ToLower()) { object saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges; object originalFormat = Microsoft.Office.Interop.Word.WdOriginalFormat.wdOriginalDocumentFormat; object routeDocument = false; d.Close(ref saveOption, ref originalFormat, ref routeDocument); } } } }
public static void SaveToDirectory(string text, string directory) { //Create an instance for word app Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application(); //Set animation status for word application winword.ShowAnimation = false; //Set status for word application is to be visible or not. winword.Visible = false; //Create a missing variable for missing value object missing = System.Reflection.Missing.Value; //Create a new document Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing); //adding text to document document.Content.SetRange(0, 0); document.Content.Text = text; object fileName = directory; document.SaveAs2(ref fileName); document.Close(ref missing, ref missing, ref missing); document = null; winword.Quit(ref missing, ref missing, ref missing); winword = null; }
private void populateTemplateValues(Microsoft.Office.Interop.Word.Application wrdApp, string docPath, ModuleInfo module) { Document activeDocument = wrdApp.Documents.Open(docPath, false, ReadOnly: true); activeDocument.Content.Select(); FindAndReplace(wrdApp, "BackCover:Module Number | BackCover:Version", module.ModuleNumber + " | Version 21"); // populate fields with data }
public ExternalCommandResult Execute(Microsoft.Office.Interop.Word.Application wdApp, ref string errorMessage, ref object errorObj) { try { DoSomething(wdApp); return(ExternalCommandResult.Succeeded); } catch (Exception ex) { errorMessage = ex.Message + "\r\n\r\n" + ex.StackTrace; return(ExternalCommandResult.Failed); } }
private void CloseAllWinWord() { while (Process.GetProcessesByName("winword").Count() > 0) { Microsoft.Office.Interop.Word.Application wordInstance = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); foreach (Microsoft.Office.Interop.Word.Document doc in wordInstance.Documents) { doc.Close(); } wordInstance.Quit(false); Marshal.FinalReleaseComObject(wordInstance); wordInstance = null; } }
private void copyFirstTwoPages(Microsoft.Office.Interop.Word.Application wrdApp) { object what = WdGoToItem.wdGoToPage; object which = WdGoToDirection.wdGoToAbsolute; object count = 2; const string fileName = @"C:\Users\kstaples\Documents\ilm_covers\100101c_cover.dotx"; object fileNameAsObject = fileName; object missing = System.Reflection.Missing.Value; Range startRange = wrdApp.Selection.GoTo(ref what, ref which, ref count, ref missing); object count2 = (int)count + 2; Range endRange = wrdApp.Selection.GoTo(ref what, ref which, ref count2, ref missing); endRange.SetRange(startRange.Start, endRange.End); endRange.Select(); wrdApp.Selection.Copy(); }
private void createCover(ModuleInfo module, string docPath) { Microsoft.Office.Interop.Word.Application wrdApp = new Microsoft.Office.Interop.Word.Application(); wrdApp.Visible = false; // get section text from V19 cover // if file exists create cover // if file does not exist move on Document moduleDocument = wrdApp.Documents.Open(docPath, false, ReadOnly: true); // open template document and go through each paragraph //var sectionText = getSectionText(wrdApp, moduleDocument); // create cover for module docPath = @"C:\Users\kstaples\Documents\Cover Template BW Revised.dotx"; populateTemplateValues(wrdApp, docPath, module); wrdApp.ActiveDocument.SaveAs("C:\\Users\\kstaples\\Documents\\ilm_covers\\" + module.ModuleNumber + "_cover.docx"); }
public static void SaveText(string text) { try { //Create an instance for word app Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application(); //Set animation status for word application winword.ShowAnimation = false; //Set status for word application is to be visible or not. winword.Visible = false; //Create a missing variable for missing value object missing = System.Reflection.Missing.Value; //Create a new document Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing); //adding text to document document.Content.SetRange(0, 0); document.Content.Text = text; //Save the document Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.Filter = @"Word Files (.doc, .docx)|*.doc;*.docx|Text Files (.txt)|*.txt"; object fileName = ""; Nullable <bool> result = dlg.ShowDialog(); if (result == true) { fileName = dlg.FileName; } ; document.SaveAs2(ref fileName); document.Close(ref missing, ref missing, ref missing); document = null; winword.Quit(ref missing, ref missing, ref missing); winword = null; MessageBox.Show("Файл успешно создан"); } catch (Exception ex) { MessageBox.Show(ex.Message, "Oh shit, I'm sorry"); } }
private string getSectionText(Microsoft.Office.Interop.Word.Application wrdApp, Document activeDocument) { activeDocument.Content.Select(); for (var i = 1; i < wrdApp.Selection.ContentControls.Count; i++) { var contentControl = wrdApp.Selection.ContentControls[i]; Console.WriteLine("CC" + contentControl.Title); if (contentControl.Title == "Section") { var x = contentControl; var SectionText = x.Range.Text; activeDocument.Close(false); return(SectionText.Replace(" ", " ")); } } MessageBox.Show("Section not found."); return(""); }
//Select a template private void cbTemplate_SelectedValueChanged(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; ComboBox cb = sender as ComboBox; var template = cb.SelectedItem.ToString(); object FileName = @"C:\Users\ich\Desktop\PI_Winform\Pi.ExportTool\TemplateFile\" + template + ".docx"; object readOnly = true; object visible = true; object save = false; object missing = Type.Missing; object newTemplate = false; object docType = 0; Word._Document oDoc = null; Word._Application oWord = new Word.Application() { Visible = false }; oDoc = oWord.Documents.Open( ref FileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref visible, ref missing, ref missing, ref missing, ref missing); oDoc.ActiveWindow.Selection.WholeStory(); oDoc.ActiveWindow.Selection.Copy(); IDataObject data = Clipboard.GetDataObject(); richTextBox1.Rtf = data.GetData(DataFormats.Rtf).ToString(); oWord.Quit(ref missing, ref missing, ref missing); GetParams(); Cursor.Current = Cursors.Default; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void генерацияФОСToolStripMenuItem_Click(object sender, EventArgs e) { TicketsProgressBar.Visible = true; bool a = false; bool b = false; TicketsProgressBar.Maximum = ids.Count; Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); Document doc = app.Documents.Add(Visible: true); doc.PageSetup.BottomMargin = 56.9f; doc.PageSetup.LeftMargin = 64.1f; doc.PageSetup.TopMargin = 56.9f; doc.PageSetup.RightMargin = 43.2f; Range r = doc.Range(); r.InsertAfter("Оценочные материалы при формировании рабочих программ дисциплин (модулей)" + "\n"); r.InsertAfter("Направление подготовки / специальность: " + getMajorName() + "\n"); int majorname = getMajorName().Length; r.InsertAfter("Профиль / специализация: " + GetSprcName() + "\n"); int specName = GetSprcName().Length; r.InsertAfter("Дисциплина: " + discipline + "\n" + "\n"); int discip = discipline.Length; r.InsertAfter("Формируемые компетенции: " + GetCompetenceForDocument() + "\n" + "\n"); r.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; r.Font.Size = 10; r.Font.Name = "Arial"; for (int i = 0; i < ids.Count; i++) { int y = ids[i]; switch (y) { case 1: { if (ids[i] == 1 && a == false) { r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n"); r.InsertAfter("Показатели и критерии оценивания компетенций " + GetCompetenceForDocument() + "\n"); a = true; } else { r.InsertAfter("Показатели и критерии оценивания компетенций " + GetCompetenceForDocument() + "\n"); } break; } case 2: { if (ids[i] == 2 && a == false) { r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n"); r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче экзамена или зачета с оценкой" + "\n"); a = true; } else { r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче экзамена или зачета с оценкой" + "\n"); } break; } case 3: { if (ids[i] == 3 && a == false) { r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n"); r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче зачета" + "\n"); a = true; } else { r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при сдаче зачета" + "\n"); } break; } case 4: { if (ids[i] == 4 && a == false) { r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n"); r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при защите курсового проекта/курсовой работы" + "\n"); a = true; } else { r.InsertAfter("Шкалы оценивания компетенций " + GetCompetenceForDocument() + "при защите курсового проекта/курсовой работы" + "\n"); } break; } case 5: { if (ids[i] == 5 && a == false) { r.InsertAfter("1. Описание показателей, критериев и шкал оценивания компетенций." + "\n"); r.InsertAfter("Компетенции обучающегося оцениваются следующим образом" + "\n"); a = true; } else { r.InsertAfter("Компетенции обучающегося оцениваются следующим образом" + "\n"); a = true; } break; } case 6: { if (ids[i] == 6) { r.InsertAfter("Соответствие между бальной системой и системой оценивания по результатам тестирования устанавли-вается посредством следующей таблицы" + "\n"); } break; } case 7: { if (ids[i] == 7 && b == false) { r.InsertAfter("4. Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета, курсового проектирования." + "\n"); r.InsertAfter("Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета" + "\n"); b = true; } else { r.InsertAfter("Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета" + "\n"); } break; } case 8: { if (ids[i] == 8 && b == false) { r.InsertAfter("4. Оценка ответа обучающегося на вопросы, задачу (задание) экзаменационного билета, зачета, курсо-вого проектирования." + "\n"); r.InsertAfter("Оценка ответа обучающегося при защите курсового работы/курсового проекта" + "\n"); b = true; } else { r.InsertAfter("Оценка ответа обучающегося при защите курсового работы/курсового проекта" + "\n"); } break; } default: break; } generateTable(ids[i], doc); r.InsertAfter("\n"); TicketsProgressBar.PerformStep(); } r.SetRange(0, 74); r.Font.Bold = 1; r.Font.Size = 12; r.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; r.SetRange(74, 113); r.Font.Bold = 1; r.Font.Size = 12; int p = 114 + majorname; r.SetRange(p, p + 25); r.Font.Bold = 1; r.Font.Size = 12; p = p + 25 + specName + 1; r.SetRange(p, p + 12); r.Font.Bold = 1; r.Font.Size = 12; p = p + 12 + discip + 1; r.SetRange(p, p + 25); r.Font.Bold = 1; r.Font.Size = 12; doc.Save(); doc.Close(); app.Quit(); TicketsProgressBar.Value = 0; MessageBox.Show("Фос успешно сгенерирован", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void copyLastTwoPages(Microsoft.Office.Interop.Word.Application wrdApp) { FileInfo fi = new FileInfo(@"C:\Users\kstaples\Documents\ilm_covers\100101c_cover.dotx"); }
private void UploadFileButton_Click(object sender, RoutedEventArgs e) { try { Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); // Set filter for file extension and default file extension dlg.DefaultExt = ".doc"; dlg.Filter = "Word documents|*.doc;*.docx"; // Display OpenFileDialog by calling ShowDialog method Nullable <bool> result = dlg.ShowDialog(); // Get the selected file name and display in a TextBox if (result == true) { //string filename = dlg.FileName; //string path = System.IO.Path.GetFullPath(filename); //var document = DocX.Load(filename); //string content = document.Text; List <string> headingsList = new List <string>(); List <string> heading2List = new List <string>(); //string myhead = headingsList.ToString(); //headingsList.ToArray(); Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); Document doc = app.Documents.Open(dlg.FileName); app.Application.Visible = false; foreach (Microsoft.Office.Interop.Word.Paragraph paragraph in doc.Paragraphs) { Microsoft.Office.Interop.Word.Style style = paragraph.get_Style() as Microsoft.Office.Interop.Word.Style; string styleName = style.NameLocal; string text = paragraph.Range.Text; string agendaID = agenda_id_text.Text; string path = System.IO.Path.GetFullPath(dlg.FileName); string minuteName = System.IO.Path.GetFileNameWithoutExtension(path); if (styleName == "Heading 1") { string heading1 = text.ToString() + "\n"; MessageBox.Show(heading1); headingsList.Add(heading1); headingsList.ToArray(); /* if (styleName == "Heading 2") * { * * string heading2 = text.ToString(); * MessageBox.Show(heading2); * heading2List.Add(heading2); * * * }*/ foreach (string head in headingsList) { if (heading1.Contains("Student")) { string studentQuery = $"INSERT INTO student_agenda(agenda_Id, Agenda_name, Data) VALUES ('{agendaID}','{minuteName}','{path}')"; MySqlCommand student_cmd = new MySqlCommand(studentQuery, conn); conn.Open(); student_cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show("Uploaded successfully to Student"); } if (heading1.Contains("Faculty")) { string facultyQuery = $"INSERT INTO faculty_agenda(agenda_Id, agenda_name, Data) VALUES ('{agendaID}','{minuteName}','{path}')"; MySqlCommand faculty_cmd = new MySqlCommand(facultyQuery, conn); conn.Open(); faculty_cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show("Uploaded to Faculty Case"); } if (heading1.Contains("Approval of previous minute")) { string approveQuery = $"INSERT INTO approve_agenda(agenda_Id, agenda_name, Data) VALUES ('{agendaID}','{minuteName}','{path}')"; MySqlCommand approve_cmd = new MySqlCommand(approveQuery, conn); conn.Open(); approve_cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show("uploaded to approval"); } if (heading1.Contains("Matters arising from previous minutes")) { string reviewQuery = $"INSERT INTO review_agenda(agenda_Id, agenda_name, Data) VALUES ('{agendaID}','{minuteName}','{path}')"; MySqlCommand review_cmd = new MySqlCommand(reviewQuery, conn); conn.Open(); review_cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show("uploadded to review"); } if (heading1.Contains("Staff")) { string staffQuery = $"INSERT INTO staff_agenda(agenda_Id, agenda_name, Data) VALUES ('{agendaID}','{minuteName}','{path}')"; MySqlCommand staff_cmd = new MySqlCommand(staffQuery, conn); conn.Open(); staff_cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show("uploadded to staff"); } if (heading1.Contains("Other matters")) { string othersQuery = $"INSERT INTO others_agenda(agenda_Id, agenda_name, Data) VALUES ('{agendaID}','{minuteName}','{path}')"; MySqlCommand other_cmd = new MySqlCommand(othersQuery, conn); conn.Open(); other_cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show("uploadded to others"); } /* string agendaQuery = $"INSERT INTO agenda(fagenda_id, Agenda_name, Data) VALUES ('{agendaID}','{minuteName}','{path}')"; * * MySqlCommand agenda_cmd = new MySqlCommand(agendaQuery, conn); * conn.Open(); * agenda_cmd.ExecuteNonQuery(); * conn.Close(); * MessageBox.Show("uploaded successfully in agenda"); * * */ } //MessageBox.Show(myhead); } } //foreach (string heading in headingsList) //{ /*if (styleName == "Heading 2") * { * string heading2 = text.ToString(); * * //MessageBox.Show(heading2); * * * }*/ } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conn.Close(); } }
private void thesisProcess_DoWork(object sender, DoWorkEventArgs e) //Thread start edildiğinde bu fonksiyona girer. { int failCount = 0; thesisProcess.ReportProgress(1); //Yüzdeyi göstermek için kullandığımız method ReportProgres(x) x sinyalini gönderir. Microsoft.Office.Interop.Word.Application app = new Word.Application(); Microsoft.Office.Interop.Word.Document doc = app.Documents.Open(txt_thesispath.Text); //Yukarda seçilen dosyayı Document objesinin içine yükleme işlemi. Word.WdStatistic stat = Word.WdStatistic.wdStatisticPages; object missing = System.Reflection.Missing.Value; int pageCountNumber = doc.ComputeStatistics(stat, ref missing); //Sayfa sayısını num değişkenine atıyoruz. thesisProcess.ReportProgress(3); //Yüzde 3 //İlk sayfa sayısını kontrol ediyoruz. if (pageCountNumber < 40 || pageCountNumber > 180) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İdeal tez uzunluğu 40 - 180 sayfa arasında olmalıdır! Mevcut sayfa sayısı:" + pageCountNumber); })); } float leftmargin = doc.PageSetup.LeftMargin; //Sol boşluk, float rightmargin = doc.PageSetup.RightMargin; //Sağ boşluk, float topMargin = doc.PageSetup.TopMargin; //Üst boşluk, float bottomMargin = doc.PageSetup.BottomMargin; //Alt boşluk değerleri dokümandan okunuyor. if (rightmargin != 70.9f) //Sağ boşluğun kontrolü. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Sağ kenar boşluğu 2.5 cm olmalıdır!"); })); } if (bottomMargin != 70.9f) //Alt boşluğun kontrolü. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Alt kenar boşluğu 2.5 cm olmalıdır!"); })); } if (leftmargin != 92.15f) //Sol boşluğun kontrolü. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Sol kenar boşluğu 3.25 cm olmalıdır!"); })); } if (topMargin != 85.05f) //Üst boşluğun kontrolü. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Üst kenar boşluğu 3.0 cm olmalıdır!"); })); } thesisProcess.ReportProgress(5); int paragraphcount = doc.Paragraphs.Count; int counter = 0; int timesnewromancount = 0; int elevenpuntocounter = 0; bool onsozexists = false; bool icindekilerexist = false; bool ozetexists = false; bool kaynakExists = false; bool beyanexists = false; bool abstractExists = false; bool sekilListesiexists = false; bool eklerlistesiexists = false; bool simgelerveKisaltmalarExists = false; int ShapesCount = doc.InlineShapes.Count; int inShapesCount = doc.Shapes.Count; int tablocount = 0; int sekilcount = 0; Hashtable htSekil = new Hashtable(); Hashtable htTablo = new Hashtable(); double sekilCounter = 0; double tabloCounter = 0; foreach (Paragraph objParagraph in doc.Paragraphs) //Paragrafların her biri tek tek okunup objParagraph objesinin içine atılıyor. { if (objParagraph.Range.Font.Name == "Times New Roman") //Eğer font Times New Roman ise; { timesnewromancount++; //Times New Roman sayısı bir arttırılıyor. } if (objParagraph.Range.Font.Size == 11) //Font size'ı 11 ise; { elevenpuntocounter++; //Font size'ı kontrol eden değişkenimiz bir arttırılıyor. } if (objParagraph.Range.Text.Trim() == Constants.ICINDEKILER) //İçindekiler texti paragrafta bulundu mu? { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ICINDEKILER); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ICINDEKILER) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ICINDEKILER) + Constants.ICINDEKILER.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'İÇİNDEKİLER'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'İÇİNDEKİLER'"); //Hata ekrana bastırılır.. })); } icindekilerexist = true; } if (objParagraph.Range.Text.Trim() == Constants.OZET) //Özet texti { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.OZET); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.OZET) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.OZET) + Constants.OZET.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'Özet'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'Özet'"); //Hata ekrana bastırılır.. })); } ozetexists = true; } if (objParagraph.Range.Text.Trim() == Constants.ONSOZ) { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ONSOZ); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ONSOZ) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ONSOZ) + Constants.ONSOZ.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'ÖNSÖZ'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'ÖNSÖZ'"); //Hata ekrana bastırılır.. })); } onsozexists = true; } if (objParagraph.Range.Text.Trim() == Constants.KAYNAKLAR) { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.KAYNAKLAR); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.KAYNAKLAR) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.KAYNAKLAR) + Constants.KAYNAKLAR.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'KAYNAKLAR'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'KAYNAKLAR'"); //Hata ekrana bastırılır.. })); } kaynakExists = true; } if (objParagraph.Range.Text.Trim() == Constants.ABSTRACT) { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ABSTRACT); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ABSTRACT) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.ABSTRACT) + Constants.ABSTRACT.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'ABSTRACT'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'ABSTRACT'"); //Hata ekrana bastırılır.. })); } abstractExists = true; } if (objParagraph.Range.Text.Trim() == Constants.BEYAN) { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.BEYAN); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.BEYAN) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.BEYAN) + Constants.BEYAN.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'BEYAN'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'BEYAN'"); //Hata ekrana bastırılır.. })); } beyanexists = true; } if (objParagraph.Range.Text.Trim() == Constants.SEKILLERLISTESI) { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SEKILLERLISTESI); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SEKILLERLISTESI) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SEKILLERLISTESI) + Constants.SEKILLERLISTESI.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'ŞEKİLLER LİSTESİ'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'ŞEKİLLER LİSTESİ'"); //Hata ekrana bastırılır.. })); } sekilListesiexists = true; } if (objParagraph.Range.Text.Trim() == Constants.EKLERLISTESI) { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.EKLERLISTESI); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.EKLERLISTESI) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.EKLERLISTESI) + Constants.EKLERLISTESI.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'EKLER LİSTESİ'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'EKLER LİSTESİ'"); //Hata ekrana bastırılır.. })); } eklerlistesiexists = true; } if (objParagraph.Range.Text.Trim() == Constants.SIMGELERVEKISALTMALAR) { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SIMGELERVEKISALTMALAR); object startplusone = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SIMGELERVEKISALTMALAR) + 1; object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SIMGELERVEKISALTMALAR) + Constants.SIMGELERVEKISALTMALAR.Length; Word.Range rangeFirstChar = doc.Range(ref start, ref startplusone); Word.Range rangeothers = doc.Range(ref startplusone, ref end); float textsizefirst = rangeFirstChar.Font.Size; float textsizeothers = rangeothers.Font.Size; if (textsizefirst != 16) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İlk harf 16 punto olmalı! Bölüm :'SİMGELER VE KISALTMALAR'"); //Hata ekrana bastırılır.. })); } if (textsizeothers != 13) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Başlığın ilk harfinden sonra gelen harfler 13 punto olmalı! Bölüm :'SİMGELER VE KISALTMALAR'"); //Hata ekrana bastırılır.. })); } simgelerveKisaltmalarExists = true; } if (objParagraph.Range.Text.Contains(Constants.SEKIL)) { //Şekil 2.3. object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SEKIL); object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.SEKIL) + Constants.SEKIL.Length + 5; Word.Range rangesekil = doc.Range(ref start, ref end); bool isSekild = Helper.TextIsSekil(rangesekil.Text); if (isSekild && !htSekil.ContainsKey(rangesekil.Text)) //Eğer hashtable'da şekil yoksa kontrolü yapılıyor. { sekilcount++; //Yoksa şekil sayacı bir arttırılıyor. htSekil[rangesekil] = rangesekil.Text; //Hashtable'ın içine şekil atılıyor. double sekilNumber = Double.Parse(rangesekil.Text.Substring(6, 3)); // 4.3 if (sekilNumber < sekilCounter) //sekilCounter en son şeklin numarasını tutar. Eğer yeni gelen şekil son şekilden küçükse hata vardır. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Şekil numaraları sırayla olmalıdır!"); //Hata ekrana bastırılır.. })); } else { sekilCounter = sekilNumber; } } if (isSekild && rangesekil.Font.Size < 10) //Eğer şekil gelmiş ve font size'ı 10'dan küçükse ekrana hata bastırılır. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Şekil kısımları en az 10 boyutunda olmalı!"); })); } } //BEYAN if (objParagraph.Range.Text.Contains(Constants.TABLO)) //Şekil için yapılan yukardaki bloğun tamamı tablo için de yapılıyor. { object start = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.TABLO); object end = objParagraph.Range.Start + objParagraph.Range.Text.IndexOf(Constants.TABLO) + Constants.TABLO.Length + 5; Word.Range rangetablo = doc.Range(ref start, ref end); bool istablo = Helper.TextIsTablo(rangetablo.Text); if (istablo && !htTablo.ContainsKey(rangetablo.Text)) { tablocount++; htTablo[rangetablo] = rangetablo.Text; } if (istablo && rangetablo.Font.Size < 10) { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Tablo kısımları en az 10 boyutunda olmalı!"); })); } } thesisProcess.ReportProgress(5 + (95 * counter / doc.Paragraphs.Count)); // Progress hesaplama yüzde hesaplama Toplam paragraf sayısının mevcut paragraf indexine oranını buluyoruz. Bunu yüzde olarak gösteriyoruz. counter++; } if ((ShapesCount + inShapesCount) < (tablocount + sekilcount)) //Eğer dokümandaki shape countu tablo ve şekil count'ından küçükse o zaman tüm tablo ve şekillere isim verilmemiştir anlamına gelir. { //Bu durumda ekrana hata bastırılır. this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Tüm şekil ve tabloların altına Şekil ve Tablo numarası yazılmalıdır!"); })); } if (!beyanexists) //Yukarıdaki gibi { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("BEYAN bölümü eksik!"); })); } if (!onsozexists) //Önsöz değişkenine yukarıda atama yapıldı. Eğer atamalar sonucunda değişken true'ya çevrilmemişse; { //bu kod işler. failCount++; //fail sayısı bir arttırılır. this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("ÖNSÖZ bölümü eksik!"); // Önsöz bölümü eksik hatası ekrana bastırılır. })); } if (!icindekilerexist) //Eğer içindekiler değişkenine true atanmadıysa; { //hata ekrana bastırılır. failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("İÇİNDEKİLER bölümü eksik!"); })); } if (!ozetexists) //Yukardaki gibi { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("ÖZET bölümü eksik!"); })); } if (!abstractExists) //Yukardaki gibi { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("ABSTRACT bölümü eksik!"); })); } if (!sekilListesiexists) //Yukardaki gibi { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("ŞEKİLLER LİSTESİ bölümü eksik!"); })); } if (!eklerlistesiexists) //Yukardaki gibi { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("EKLER LİSTESİ bölümü eksik!"); })); } if (!simgelerveKisaltmalarExists) //Yukardaki gibi { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("SIMGELER VE KISALTMALAR bölümü eksik!"); })); } if (!kaynakExists) //Yukardaki gibi { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("KAYNAKLAR bölümü eksik!"); })); } if (timesnewromancount * 2 < paragraphcount) //Eğer tezin yarısından çoğu Times New Roman ile yazılmamışsa ekrana hata bastırılır. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Tezin yazım fontu Times New Roman olmalıdır! Tezdeki Times New Roman oranı = %" + 100 * timesnewromancount / paragraphcount); })); } if (elevenpuntocounter * 1.5 < paragraphcount) //Tez içeriğindeki yazıların boyutu 11 punto olmalıdır. { failCount++; this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Tezin font büyüklüğü 11 punto olmalıdır! Tezde bulunan 11 punto oranı= %" + 100 * elevenpuntocounter / paragraphcount); })); } if (failCount == 0) //Eğer hata sayısı 0 ise tezinizde hata bulunamadı diye mesaj gösteriyoruz. { this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add("Tezinizde hiçbir hata bulunamadı!"); })); } else { this.Invoke(new MethodInvoker(() => { this.listResults.Items.Add(string.Format("Tezinizde bulunan hata başlığı sayısı:{0}", failCount)); //Hata sayısı 0'dan farklıysa da tezde bulunan toplam hata sayısı gösteriliyor. })); } doc.Close(); doc = null; //return num; }