Як знайти та замінити текст у PDF за допомогою C#

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

Кроки для пошуку та заміни тексту в PDF за допомогою C#

  1. Налаштуйте проект на використання Aspose.PDF for .NET за допомогою менеджера пакетів NuGet
  2. Створіть або завантажте PDF-файл із зразком тексту за допомогою об’єкта класу Document
  3. Використовуючи об’єкт класу TextFragmentAbsorber, установіть текст для пошуку
  4. Для всіх сторінок у вхідному файлі PDF прийміть поглинач тексту
  5. Отримати колекцію фрагментів, де текст витягується із завантаженого файлу PDF
  6. Розберіть усі фрагменти та задайте новий текст
  7. Збережіть оновлений файл PDF

Ці кроки описують, як у PDF шукати та замінювати текст за допомогою C#. Буде створено новий файл із зразком тексту, однак ви можете завантажити наявний PDF-файл, текст якого потрібно замінити. Для пошуку тексту в PDF-файлі доступні різні варіанти, як-от ігнорування тіньового тексту, обмеження пошуку межами сторінки тощо.

Код для заміни тексту в PDF за допомогою C#

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 на сторінки в C#.

 Українська