//Метод выполняющий команду и возвращающий результат в виде массива public static List <PdfDescription> ExecuteAndReadFilesDescription(string query) { using (var conn = new MySqlConnection(ConnectionString())) { //Открываем соединение conn.Open(); conn.ChangeDatabase(Settings.Default.dbName); var cmd = new MySqlCommand(query, conn); var reader = cmd.ExecuteReader(); //Cоздаем необходимые переменные var newList = new List <PdfDescription>(); while (reader.Read()) { //Присвоими полученные от SQL значения соответсвующему классу var curFile = new PdfDescription { Id = Convert.ToInt32(reader.GetString(0)), PublicationName = reader.GetString(1), IsMagazine = Convert.ToBoolean(reader.GetString(2)), Date = Convert.ToDateTime(reader.GetString(3)), IssueNumber = Convert.ToInt32(reader.GetString(4)), FilePath = reader.GetString(5) }; //Запишем данные в массив newList.Add(curFile); } return(newList); } }
public static void SearchInPdfFile(PdfDescription file, string substring) { //Обнулим значение переменной file.FoundedText = null; try { using (var pdfReader = new PdfReader(file.FilePath)) { for (var page = 1; page <= pdfReader.NumberOfPages; page++) { ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); var currentPageText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy); var i = currentPageText.IndexOf(substring, StringComparison.CurrentCultureIgnoreCase); if (i == -1) { continue; } //Отформатируем найденный текст currentPageText = currentPageText.Substring(i, currentPageText.Length - i); if (currentPageText.Length >= 400) { file.FoundedText = currentPageText.Substring(0, 399).Replace("\n", " ") + "..."; } else { file.FoundedText = currentPageText.Replace("\n", " ") + "..."; } return; } } } //Обработка возможных ошибок catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }