С# найти и заменить текст в PDF

Опция «Найти и заменить» позволяет заменить определенный фрагмент текста в документе за один раз. Таким образом, вам не нужно вручную находить и обновлять каждое вхождение текста во всем документе. Эта статья делает еще один шаг вперед и рассказывает, как автоматизировать функцию поиска и замены текста в документах PDF. В частности, вы узнаете, как находить и заменять текст в PDF-файле на C# .NET. Мы также продемонстрируем, как заменить текст на определенной странице или в области страницы с помощью C#.

C# .NET API для поиска и замены текста в PDF — скачать бесплатно

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

PM> Install-Package Aspose.PDF

Найти и заменить текст в PDF с помощью C#

Ниже приведены шаги для поиска и замены текста в документе PDF.

  • Используйте класс Document для загрузки документа PDF, используя его путь.
  • Создайте экземпляр класса TextFragmentAbsorber и укажите поисковую фразу в его конструкторе.
  • Примите поглотитель текста для всех страниц PDF, используя Document.Pages.Accept(TextFragmentAbsorber).
  • Получить извлеченные текстовые фрагменты в объект TextFragmentCollection.
  • Прокрутите найденный TextFragmentCollection и замените текст в каждом фрагменте.
  • Сохраните обновленный PDF-документ с помощью метода Document.Save(String).

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

// Открыть документ
Document pdfDocument = new Document("Document.pdf");

// Создайте объект TextAbsorber, чтобы найти все экземпляры входной поисковой фразы.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Примите поглотитель для всех страниц
pdfDocument.Pages.Accept(textFragmentAbsorber);

// Получить извлеченные текстовые фрагменты
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Перебрать фрагменты
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Обновление текста и других свойств
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// Сохраните полученный PDF-документ.
pdfDocument.Save("updated-document.pdf");

С# заменить текст на определенной странице PDF

Ниже приведены шаги для поиска и замены текста на определенной странице в документе PDF.

  • Используйте класс Document для загрузки документа PDF, используя его путь.
  • Создайте экземпляр класса TextFragmentAbsorber и укажите поисковую фразу в его конструкторе.
  • Примите поглотитель текста для нужной страницы, используя [Document.Pages1.Accept(TextFragmentAbsorber)]12.
  • Прокрутите найденную коллекцию TextFragmentAbsorber.TextFragments и замените текст в каждом фрагменте.
  • Сохраните обновленный PDF-документ с помощью метода Document.Save(String).

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

// Открыть документ
Document pdfDocument = new Document("Document.pdf");

// Создайте объект TextAbsorber, чтобы найти все экземпляры входной поисковой фразы.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Принять поглотитель для желаемого
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Получить извлеченные текстовые фрагменты
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Перебрать фрагменты
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Обновление текста и других свойств
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Сохраните полученный PDF-документ.
pdfDocument.Save("updated-document.pdf");

Заменить текст в области страницы PDF в С#

Вы также можете найти и заменить текст в определенной области страницы в документе PDF. Следующие шаги показывают, как определить конкретную область, а затем заменить текст в ней.

  • Используйте класс Document для загрузки документа PDF, используя его путь.
  • Создайте экземпляр класса TextFragmentAbsorber и укажите поисковую фразу в его конструкторе.
  • Примите поглотитель текста для нужной страницы, используя Document.Pages[0].Accept(TextFragmentAbsorber).
  • Определите область страницы с помощью класса Rectangle.
  • Прокрутите коллекцию TextFragmentAbsorber.TextFragments и замените текст в каждом фрагменте.
  • Сохраните обновленный PDF-документ с помощью метода Document.Save(String).

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

// загрузить PDF-файл
Document pdf = new Document("Document.pdf");

// создать экземпляр объекта TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// поиск текста в границах страницы
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// укажите регион страницы для TextSearch Options
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// поиск текста с первой страницы файла PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// перебирать отдельные TextFragment
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // обновить текст до пустых символов
    tf.Text = "";
}

// сохранить обновленный файл PDF после замены текста
pdf.Save("output.pdf");

С# заменить текст в PDF регулярным выражением (Regex)

Вы также можете использовать регулярные выражения для поиска и замены вхождений текста, соответствующих определенному шаблону. Для этого вам нужно только указать регулярное выражение вместо простой поисковой фразы и использовать TextSearchOptions. Ниже приведены шаги для этого.

  • Используйте класс Document для загрузки документа PDF, используя его путь.
  • Создайте экземпляр класса TextFragmentAbsorber и укажите поисковую фразу в его конструкторе.
  • Создайте экземпляр класса TextSearchOptions и передайте true его конструктору, чтобы включить поиск на основе регулярных выражений.
  • Назначьте объекту TextSearchOptions свойство TextFragmentAbsorber.TextSearchOptions.
  • Примите поглотитель текста для нужной страницы, используя Document.Pages[0].Accept(TextFragmentAbsorber).
  • Определите область страницы с помощью класса Rectangle.
  • Прокрутите коллекцию TextFragmentAbsorber.TextFragments и замените текст в каждом фрагменте.
  • Сохраните обновленный PDF-документ с помощью метода Document.Save(String).

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

// Открыть документ
Document pdfDocument = new Document("Document.pdf");

// Создайте объект TextAbsorber, чтобы найти все фразы, соответствующие регулярному выражению.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// Установите параметр текстового поиска, чтобы указать использование регулярного выражения
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// Примите поглотитель для одной страницы
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Получить извлеченные текстовые фрагменты
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Перебрать фрагменты
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Обновление текста и других свойств
    textFragment.Text = "New Phrase";
    // Установите экземпляр объекта.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Сохранить PDF
pdfDocument.Save("output.pdf");

Вывод

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

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