Вам потрібне високошвидкісне рішення для пошуку та заміни тексту в купі PDF-файлів за допомогою C#? Не варто хвилюватися, оскільки ця стаття містить потужний механізм пошуку та заміни тексту у файлах PDF за кілька простих кроків. Давайте дізнаємося, як це працює.

C# знаходить і замінює текст у PDF

Параметр «Знайти та замінити» дає змогу замінити окремий фрагмент тексту в документі за один раз. Таким чином, вам не доведеться вручну знаходити та оновлювати кожне входження тексту в усьому документі. Отже, давайте подивимося, як знайти та замінити текст у PDF-файлі на C#. Ви також можете використовувати ті самі вказівки та надані зразки коду, щоб замінити текст у пакеті PDF-файлів.

Бібліотека C# для пошуку та заміни тексту в PDF

Щоб знайти та замінити текст у файлах PDF, ми будемо використовувати Aspose.PDF for .NET. Це бібліотека класів C#, яка надає як базові, так і розширені функції обробки PDF для програм .NET. Бібліотека також дозволяє знаходити та замінювати текст у файлах PDF різними способами з високою точністю та швидкістю.

Ви можете завантажити DLL бібліотеки або встановити її за допомогою NuGet.

PM> Install-Package Aspose.PDF

Пошук і заміна тексту в PDF за допомогою C#

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

  • Використовуйте клас Document, щоб завантажити документ PDF, використовуючи його шлях.
  • Створіть екземпляр класу TextFragmentAbsorber і надайте пошукову фразу його конструктору.
  • Прийміть поглинач тексту для всіх сторінок PDF-файлу за допомогою Document.Pages.Accept(TextFragmentAbsorber).
  • Отримайте витягнуті фрагменти тексту в об’єкт TextFragmentCollection.
  • Перегляньте знайдену TextFragmentCollection і замініть текст у кожному фрагменті.
  • Збережіть оновлений PDF-документ за допомогою методу Document.Save(String).

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

У наведеному нижче прикладі коду показано, як знайти та замінити текст у 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");

C# Заміна тексту на певній сторінці 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
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");

C# Замінити текст у 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");

Безкоштовна бібліотека C# для заміни тексту в PDF

Ви можете отримати безкоштовну тимчасову ліцензію і замінювати текст у файлах PDF без будь-яких обмежень.

Ознайомтеся з бібліотекою C# PDF

Ви можете ознайомитися з розширеними функціями бібліотеки C# PDF за допомогою документації.

Висновок

Автоматизація PDF широко поширена в наші дні для маніпулювання PDF-документами з веб-програм або настільних програм. У цій статті описано корисну функцію автоматизації PDF, яка полягає в пошуку та заміні тексту в PDF на C#. У покроковому посібнику та зразках коду показано, як знайти та замінити текст у цілому PDF-файлі, окремій сторінці PDF-файлу чи регіоні сторінки.

Дивись також