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