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

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

Действия по поиску и замене текста в PDF с помощью С#

  1. Настройте проект для использования Aspose.PDF for .NET с помощью диспетчера пакетов NuGet.
  2. Создайте или загрузите файл PDF, содержащий образец текста, с помощью объекта класса Document.
  3. Используя объект класса TextFragmentAbsorber, задайте текст для поиска
  4. Для всех страниц входного PDF-файла примите поглотитель текста.
  5. Получить набор фрагментов, где текст извлечен из загруженного PDF-файла
  6. Проанализируйте все фрагменты и установите новый текст
  7. Сохраните обновленный файл PDF

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

Код для замены текста в PDF с помощью С#

using Aspose.Pdf;
using Aspose.Pdf.Text;
namespace FindAndReplaceTextInPdfUsingCSharp
{
class Program
{
static void Main(string[] args) // Main function to create 7z archive in CSharp
{
// Instantiate a license to avoid watermark in output PDF
Aspose.Pdf.License licForPdf= new Aspose.Pdf.License();
licForPdf.SetLicense("Aspose.Pdf.lic");
// Create an empty PDF document
Document newPDFFile = new Document();
// Add an empty page in the newly created PDF
Page page = newPDFFile.Pages.Add();
// Add sample text in the PDF file
for(int iTxtCounter = 0 ; iTxtCounter < 15; iTxtCounter++)
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment($"my_data\nanother data"));
// Save the newly created PDF file containing the test data in it
newPDFFile.Save("InputPDFToReplaceText.pdf");
// Open PDF document to replace text in it
Document inputPDFFile = new Document("InputPDFToReplaceText.pdf");
// Set the text that is to be searched in the TextAbsorber object
TextFragmentAbsorber txtAbsorber = new TextFragmentAbsorber("my_data");
// Apply the text absorber for all the pages in the input PDF file
inputPDFFile.Pages.Accept(txtAbsorber);
// Get the collection of fragments containing extracted text from the PDF
TextFragmentCollection textFragmentCollection = txtAbsorber.TextFragments;
// Parse all the fragments and replace text using particular font, size and foreground/background color
foreach (TextFragment txtFragment in textFragmentCollection)
txtFragment.Text = "MY_DATA";
// Save resulting PDF document.
inputPDFFile.Save("OutputPDFAfterReplacingText.pdf");
System.Console.WriteLine("Done");
}
}
}

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

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

 Русский