C# znajdź i zamień tekst w formacie PDF

Opcja znajdź i zamień umożliwia jednorazową zamianę określonego fragmentu tekstu w dokumencie. W ten sposób nie musisz ręcznie lokalizować i aktualizować każdego wystąpienia tekstu w całym dokumencie. Ten artykuł idzie nawet o krok dalej i opisuje, jak zautomatyzować funkcję znajdowania i zastępowania tekstu w dokumentach PDF. W szczególności dowiesz się, jak znaleźć i zamienić tekst w pliku PDF w języku C# .NET. Pokażemy również, jak zamienić tekst na określonej stronie lub w regionie strony za pomocą języka C#.

C# .NET API do znajdowania i zastępowania tekstu w formacie PDF — bezpłatne pobieranie

Aspose.PDF for .NET to biblioteka klas języka C#, która zapewnia podstawowe i zaawansowane funkcje manipulacji plikami PDF dla aplikacji .NET. Interfejs API umożliwia także bezproblemowe znajdowanie i zastępowanie tekstu w plikach PDF na różne sposoby. Możesz pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

PM> Install-Package Aspose.PDF

Znajdź i zamień tekst w formacie PDF przy użyciu języka C#

Poniżej opisano kroki znajdowania i zastępowania tekstu w dokumencie PDF.

Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst w pliku PDF przy użyciu języka C#.

// Otwórz dokument
Document pdfDocument = new Document("Document.pdf");

// Utwórz obiekt TextAbsorber, aby znaleźć wszystkie wystąpienia wprowadzonej frazy wyszukiwania
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Zaakceptuj pochłaniacz dla wszystkich stron
pdfDocument.Pages.Accept(textFragmentAbsorber);

// Pobierz wyodrębnione fragmenty tekstu
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Przejrzyj fragmenty
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Zaktualizuj tekst i inne właściwości
    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);
}
            
// Zapisz wynikowy dokument PDF.
pdfDocument.Save("updated-document.pdf");

C# Zamień tekst na określonej stronie PDF

Poniżej opisano kroki znajdowania i zastępowania tekstu na określonej stronie w dokumencie PDF.

  • Użyj klasy Document, aby załadować dokument PDF przy użyciu jego ścieżki.
  • Utwórz instancję klasy TextFragmentAbsorber i podaj wyszukiwaną frazę jej konstruktorowi.
  • Zaakceptuj absorber tekstu dla żądanej strony za pomocą [Document.Pages1.Accept(TextFragmentAbsorber)]12.
  • Przejrzyj znalezioną kolekcję TextFragmentAbsorber.TextFragments i zamień tekst w każdym fragmencie.
  • Zapisz zaktualizowany dokument PDF przy użyciu metody Document.Save(String).

Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst na określonej stronie pliku PDF przy użyciu języka C#.

// Otwórz dokument
Document pdfDocument = new Document("Document.pdf");

// Utwórz obiekt TextAbsorber, aby znaleźć wszystkie wystąpienia wprowadzonej frazy wyszukiwania
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Zaakceptuj absorber według uznania
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Pobierz wyodrębnione fragmenty tekstu
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Przejrzyj fragmenty
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Zaktualizuj tekst i inne właściwości
    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);
}

// Zapisz wynikowy dokument PDF.
pdfDocument.Save("updated-document.pdf");

Zamień tekst w regionie strony PDF w C#

Możesz także znaleźć i zamienić tekst w określonym obszarze strony w dokumencie PDF. Poniższe kroki pokazują, jak zdefiniować konkretny region, a następnie zamienić w nim tekst.

Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst w określonym regionie strony w pliku PDF przy użyciu języka C#.

// załaduj plik PDF
Document pdf = new Document("Document.pdf");

// utwórz instancję obiektu TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// wyszukaj tekst w oprawie strony
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// określ region strony dla opcji TextSearch
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// wyszukaj tekst z pierwszej strony pliku PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// iteruj przez poszczególne TextFragment
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // zaktualizuj tekst do pustych znaków
    tf.Text = "";
}

// zapisz zaktualizowany plik PDF po zastąpieniu tekstu
pdf.Save("output.pdf");

C# Zastąp tekst w PDF wyrażeniem regularnym (Regex)

Możesz także użyć wyrażeń regularnych, aby znaleźć i zamienić wystąpienia tekstu pasujące do określonego wzorca. W tym celu wystarczy podać wyrażenie regularne zamiast zwykłej frazy wyszukiwania i użyć TextSearchOptions. Aby to zrobić, wykonaj następujące czynności.

Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst w pliku PDF przy użyciu wyrażenia regularnego przy użyciu języka C#.

// Otwórz dokument
Document pdfDocument = new Document("Document.pdf");

// Utwórz obiekt TextAbsorber, aby znaleźć wszystkie frazy pasujące do wyrażenia regularnego
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// Ustaw opcję wyszukiwania tekstowego, aby określić użycie wyrażeń regularnych
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// Zaakceptuj pochłaniacz na jedną stronę
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Pobierz wyodrębnione fragmenty tekstu
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Przejrzyj fragmenty
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Zaktualizuj tekst i inne właściwości
    textFragment.Text = "New Phrase";
    // Ustaw na instancję obiektu.
    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);
}

// Zapisz plik PDF
pdfDocument.Save("output.pdf");

Wniosek

Automatyzacja PDF jest obecnie szeroko stosowana w celu manipulowania dokumentami PDF z poziomu aplikacji internetowych lub komputerowych. W tym artykule omówiono przydatną funkcję automatyzacji plików PDF umożliwiającą znajdowanie i zastępowanie tekstu w formacie PDF w języku C#. Przewodnik krok po kroku i przykłady kodu pokazują, jak znaleźć i zamienić tekst w całym pliku PDF, na określonej stronie w pliku PDF lub w regionie strony. Możesz zapoznać się z bardziej zaawansowanymi funkcjami, korzystając z dokumentacji interfejsu API.

Zobacz też