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#.
- Interfejs API języka C# do znajdowania i zastępowania tekstu w formacie PDF
- Znajdź i zamień tekst w formacie PDF przy użyciu języka C#
- Zastąp tekst na określonej stronie w formacie PDF
- Zamień tekst w regionie strony PDF
- Znajdź i zamień tekst w pliku PDF za pomocą Regex
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.
- 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 pochłaniacz tekstu dla wszystkich stron pliku PDF za pomocą Document.Pages.Accept(TextFragmentAbsorber).
- Pobierz wyodrębnione fragmenty tekstu do obiektu TextFragmentCollection.
- Przejrzyj znalezione TextFragmentCollection i zastąp tekst w każdym fragmencie.
- Zapisz zaktualizowany dokument PDF za pomocą metody Document.Save(String).
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.
- 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.Pages[0].Accept(TextFragmentAbsorber).
- Zdefiniuj obszar strony za pomocą klasy Rectangle.
- Przejrzyj w pętli 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 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.
- 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.
- Utwórz instancję klasy TextSearchOptions i przekaż true do jej konstruktora, aby włączyć wyszukiwanie oparte na wyrażeniach regularnych.
- Przypisz obiekt TextSearchOptions do właściwości TextFragmentAbsorber.TextSearchOptions.
- Zaakceptuj absorber tekstu dla żądanej strony za pomocą Document.Pages[0].Accept(TextFragmentAbsorber).
- Zdefiniuj obszar strony za pomocą klasy Rectangle.
- Przejrzyj w pętli 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 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.