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

Нижче будуть розглянуті такі теми:

.NET Redaction API для заміни тексту

GroupDocs демонструє GroupDocs.Redaction for .NET, API для редагування, приховування або видалення вмісту та навіть метаданих документів, презентацій, електронних таблиць, PDF-файлів і зображень у програмі .NET. Щоб отримати додаткові відомості про API, відвідайте його документацію.

Ви можете завантажити DLL або інсталятор MSI із розділу завантажень або встановити API у своїй програмі .NET через NuGet. /packages/groupdocs.redaction).

PM> Install-Package GroupDocs.Redaction

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

Пошук і заміна слова або фрази в PDF за допомогою C#

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

  • Завантажте PDF-файл за допомогою класу Redactor.
  • Знайдіть точну фразу чи слово за допомогою ExactPhraseRedaction і [ReplacementOptions](https://apireference.groupdocs.com/ redaction/net/groupdocs.redaction.redactions/replacementoptions).
  • Застосуйте редагування за допомогою методу Apply().
  • Збережіть новий документ зі змінами за допомогою методу Save().

Наступний код знаходить і замінює слово в C#. Точніше, він приховує всі повторення слова “Джон Доу”, замінюючи його словом “[censored]”.

// Знайдіть точну фразу та замініть її іншим текстом за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Вихід коду виглядає наступним чином.

Пошук і заміна тексту або фрази з урахуванням регістру в PDF за допомогою C#

Ви можете виконати пошук і редагування з урахуванням регістру. Наступний код замінює чутливе до регістру існування слова “John Doe”, але не “john doe” у C#.

// Знайдіть точну фразу (з урахуванням регістру) і замініть її іншим текстом за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Вихід коду виглядає наступним чином.

Замініть текст у PDF на регулярні вирази (RegEx) за допомогою C#

Ви також можете замінити будь-який конкретний текстовий шаблон за допомогою регулярних виразів. Наступні кроки дозволяють відредагувати PDF після пошуку за допомогою регулярного виразу (RegEx) у вашій програмі .NET.

  • Завантажте PDF-документ за допомогою класу Redactor.
  • Знайдіть збіг регулярного виразу за допомогою класу RegexRedaction із [ReplacementOptions](https://apireference.groupdocs.com/redaction/ net/groupdocs.redaction.redactions/replacementoptions).
  • Внесіть зміни в документ за допомогою методу Apply().
  • Збережіть відредагований документ за допомогою відповідного методу Save().

У наведеному нижче коді показано, як знайти певний шаблон тексту в документі PDF за допомогою RegEx, а потім замінити/сховати його іншим текстом за допомогою C#.

// Знайти текст за допомогою регулярного виразу та замінити його іншим текстом за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Результат наведеного вище коду виглядає наступним чином.

Замініть текст кольоровим полем у C#

Якщо ви просто хочете приховати пошуковий вміст (приватну інформацію) вашого PDF-файлу, ви можете просто накрити його обкладинкою. API дозволяє приховати шуканий текст. Наступний код C# розміщує чорний прямокутник над згаданим приватним текстом.

// Знайдіть текст у PDF-файлі та сховайте його, намалювавши над ним прямокутник за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Результат наведеного вище коду виглядає наступним чином.

Отримайте безкоштовну ліцензію API

Ви можете отримати безкоштовну тимчасову ліцензію, щоб використовувати API без оціночних обмежень.

Висновок

На закінчення ми навчилися знаходити певний текст у PDF-файлах за допомогою різних методів пошуку. Пізніше ми обговорювали, як редагувати файли PDF, замінюючи або приховуючи текст у програмі .NET за допомогою C#. Точніше, ми просто шукали слова, фрази, шукали з урахуванням регістру та використовували регулярні вирази в C#. Нарешті, ми замінили результати пошуку іншим текстом або приховали його прямокутником.

Щоб дізнатися більше про API, відвідайте документацію. Якщо у вас виникли запитання, зв’яжіться з нами через форум.

Дивись також