Категория

Чтение PDF-файла на C#

2024-01-25 06:59:38

Многие финансовые отчеты, исследовательские работы, юридические документы или счета-фактуры часто распространяются в формате PDF. Чтение PDF-файлов позволяет извлекать информацию, анализировать контент и выполнять задачи по обработке данных, такие как извлечение текста, поиск по ключевым словам, классификация документов и интеллектуальный анализ данных.

Используя C# для чтения PDF-файлов, вы можете автоматизировать повторяющиеся задачи и реализовать эффективный поиск конкретной информации из большой коллекции PDF-файлов. Это ценно для приложений, требующих поиска в обширных архивах, цифровых библиотеках или хранилищах документов. В этой статье будут приведены следующие примеры, которые покажут вам, как прочитать PDF-файл на C#.

Библиотека чтения PDF-файлов C#

Библиотека Spire.PDF for .NET может служить библиотекой чтения PDF-файлов, которая позволяет разработчикам интегрировать возможности чтения PDF-файлов в свои приложения. Он предоставляет функции и API для анализа, рендеринга и обработки PDF-файлов в приложениях .NET.

Вы также можете скачайте программу чтения PDF-файлов C# чтобы вручную добавить файлы DLL в качестве ссылок в ваш проект .NET или установить их напрямую через NuGet.

PM> Install-Package Spire.PDF

Чтение текста со страницы PDF на C#

Spire.PDF for .NET упрощает чтение текста PDF на C# с помощью класса PdfTextExtractor. Ниже приведены шаги для чтения всего текста с указанной страницы PDF.

  • Создайте объект PDFDocument.
  • Загрузите PDF-файл с помощью метода PdfDocument.LoadFromFile().
  • Получите конкретную страницу через свойство PdfDocument.Pages[index].
  • Создайте объект PdfTextExtractor.
  • Создайте объект PdfTextExtractOptions и задайте для свойства IsExtractAllText значение true.
  • Извлеките текст с выбранной страницы с помощью метода PdfTextExtractor.ExtractText().
  • Запишите извлеченный текст в файл TXT.

В следующем примере кода показано, как использовать C# для чтения текста PDF с указанной страницы.

  • C#
using System;
    using System.IO;
    using Spire.Pdf;
    using Spire.Pdf.Texts;
    
    namespace ExtractTextFromPage
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load a PDF file
                doc.LoadFromFile("TestPDF.pdf");
    
                //Get the first page
                PdfPageBase page = doc.Pages[0];
    
                //Create a PdfTextExtractot object
                PdfTextExtractor textExtractor = new PdfTextExtractor(page);
    
                //Create a PdfTextExtractOptions object
                PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();
    
                //Set isExtractAllText to true
                extractOptions.IsExtractAllText = true;
    
                //Read text from the PDF page
                string text = textExtractor.ExtractText(extractOptions);
    
                //Write to a txt file
                File.WriteAllText("ReadPDF.txt", text);
            }
        }
    }

Read PDF File in C#

Чтение текста из области страницы PDF в C#

Чтобы прочитать текст PDF из указанной области страницы в PDF, вы можете сначала определить прямоугольную область, а затем вызвать метод setExtractArea() класса PdfTextExtractOptions, чтобы извлечь из нее текст. Ниже приведены шаги по извлечению текста PDF из прямоугольной области страницы.

  • Создайте объект PDFDocument.
  • Загрузите PDF-файл с помощью метода PdfDocument.LoadFromFile().
  • Получите конкретную страницу через свойство PdfDocument.Pages[index].
  • Создайте объект PdfTextExtractor.
  • Создайте объект PdfTextExtractOptions и укажите область прямоугольника с помощью его свойства ExtractArea.
  • Извлеките текст из прямоугольника с помощью метода PdfTextExtractor.ExtractText().
  • Запишите извлеченный текст в файл TXT.

В следующем примере кода показано, как использовать C# для чтения текста PDF из указанной области страницы.

  • C#
using Spire.Pdf;
    using Spire.Pdf.Texts;
    using System.IO;
    using System.Drawing;
    
    namespace ExtractTextFromRectangleArea
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load a PDF file
                doc.LoadFromFile("TestPDF.pdf");
    
                //Get the first page
                PdfPageBase page = doc.Pages[0];
    
                //Create a PdfTextExtractot object
                PdfTextExtractor textExtractor = new PdfTextExtractor(page);
    
                //Create a PdfTextExtractOptions object
                PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();
    
                //Specify a rectangle area
                extractOptions.ExtractArea = new RectangleF(0, 180, 800, 160);
    
                //Read PDF text from the rectangle 
                string text = textExtractor.ExtractText(extractOptions);
    
                //Write to a txt file
                File.WriteAllText("ReadPDFArea.txt", text);
            }
        }
    }

Read PDF File in C#

Чтение PDF без сохранения макета текста на C#

Вышеупомянутые методы читают текст PDF построчно. Вы также можете читать текст PDF, не сохраняя его макет, используя стратегию SimpleExtraction. Он отслеживает текущую позицию Y каждой строки и вставляет разрыв строки в выходные данные, если позиция Y изменилась. Ниже приведены шаги для простого чтения текста PDF.

  • Создайте объект PDFDocument.
  • Загрузите PDF-файл с помощью метода PdfDocument.LoadFromFile().
  • Получите конкретную страницу через свойство PdfDocument.Pages[index].
  • Создайте объект PdfTextExtractor.
  • Создайте объект PdfTextExtractOptions и задайте для свойства IsSimpleExtraction значение true.
  • Извлеките текст с выбранной страницы с помощью метода PdfTextExtractor.ExtractText().
  • Запишите извлеченный текст в файл TXT.

В следующем примере кода показано, как использовать C# для чтения текста PDF без сохранения макета текста.

  • C#
using System.IO;
    using Spire.Pdf;
    using Spire.Pdf.Texts;
    
    namespace SimpleExtraction
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Load a PDF file
                doc.LoadFromFile("TestPDF.pdf");
    
                //Get the first page
                PdfPageBase page = doc.Pages[0];
    
                //Create a PdfTextExtractor object
                PdfTextExtractor textExtractor = new PdfTextExtractor(page);
    
                //Create a PdfTextExtractOptions object
                PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();
    
                //Set IsSimpleExtraction to true to 
                extractOptions.IsSimpleExtraction = true;
    
                //Read text from the PDF page 
                string text = textExtractor.ExtractText(extractOptions);
    
                //Write to a txt file
                File.WriteAllText("ExtractPDF.txt", text);
            }
        }
    }

Read PDF File in C#

Извлечение изображений и таблиц в PDF на C#

Помимо чтения текста PDF на C#, библиотека Spire.PDF for .NET также позволяет извлекать изображения из PDF или читать только табличные данные в файле PDF. Следующие ссылки направят вас на соответствующие официальные руководства:

Заключение

В этой статье представлены различные способы чтения PDF-файла на C#. Из приведенных примеров вы можете узнать, как читать текст PDF с указанной страницы, из указанной области прямоугольника или читать файлы PDF без сохранения макета текста. Кроме того, извлечение изображений или таблиц в файл PDF также можно выполнить с помощью библиотеки Spire.PDF for .NET.

Узнайте больше о возможностях обработки и преобразования PDF-файлов библиотеки .NET PDF, используя документацию. Если во время тестирования возникли какие-либо проблемы, свяжитесь со службой технической поддержки по электронной почте или на форуме.

Смотрите также