Beispiel #1
0
        //Метод выполняющий команду и возвращающий результат в виде массива
        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);
            }
        }
Beispiel #2
0
 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);
     }
 }