Sjablonen worden veel gebruikt om op maat gemaakte documenten te genereren. Dit artikel beschrijft hoe u tekst en woorden in PDF-documenten kunt vinden en vervangen met C#. We zullen afzonderlijk bespreken hoe woorden en zinsdelen programmatisch kunnen worden vervangen, woorden kunnen worden vervangen door hoofdlettergevoelig zoeken, vervangen door reguliere expressies. Ten slotte zullen we ook leren hoe we de gezochte string kunnen verbergen met behulp van C#.
De volgende onderwerpen zullen hieronder aan de orde komen:
- .NET API voor het vervangen van tekst
- Zoek en vervang woorden of woordgroepen
- Hoofdlettergevoelig zoeken en vervangen van woorden
- Vervangen door reguliere expressies (RegEx)
- Verberg tekst met gekleurd vak
.NET Redaction API voor het vervangen van tekst
GroupDocs toont GroupDocs.Redaction for .NET, de API om inhoud en zelfs metadata van documenten, presentaties, spreadsheets, pdf-bestanden en afbeeldingen binnen de .NET-toepassing te redigeren, verbergen of verwijderen. Ga voor meer informatie over de API naar de bijbehorende documentatie.
U kunt de DLL’s of het MSI-installatieprogramma downloaden van de downloads-sectie of de API in uw .NET-applicatie installeren via [NuGet](https://www.nuget.org /packages/groupdocs.redactie).
PM> Install-Package GroupDocs.Redaction
U hoeft geen PDF-editor of andere software van derden te installeren voor redactie. Het volgende is de schermafbeelding van een PDF-document dat in de onderstaande voorbeelden wordt gebruikt. Dezelfde aanpak zal werken voor andere documentformaten met nauwelijks of geen wijziging in de code.
Zoek en vervang een woord of woordgroep in PDF met behulp van C#
U kunt deze functie gebruiken om vertrouwelijke gegevens te verbergen en ook om een nieuw aangepast document van de sjabloon te maken. In de volgende stap wordt uitgelegd hoe u een woord/zin in een PDF-document kunt vinden met andere tekst in de C#-toepassing.
- Laad het PDF-bestand met de klasse Redactor.
- Zoek de exacte zin of het woord met behulp van de ExactPhraseRedaction en [ReplacementOptions](https://apireference.groupdocs.com/ redaction/net/groupdocs.redaction.redactions/replacementoptions).
- Pas de redactie toe met de methode Apply().
- Sla het nieuwe document met wijzigingen op met behulp van de methode Save().
De volgende code zoekt en vervangt het woord in C#. Nauwkeuriger gezegd, het verbergt alle keren dat “John Doe” voorkomt door het te vervangen door het woord “[gecensureerd]”.
// Zoek de exacte zin en vervang deze door een andere tekst met behulp van 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 });
}
De uitvoer van de code is als volgt.
Zoek en vervang hoofdlettergevoelige tekst of woordgroep in PDF met behulp van C#
U kunt hoofdlettergevoelig zoeken en redigeren uitvoeren. De volgende code vervangt het hoofdlettergevoelige bestaan van het woord “John Doe” maar niet “john doe” in C#.
// Zoek de exacte woordgroep (hoofdlettergevoelig) en vervang deze door een andere tekst met behulp van 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 });
}
De uitvoer van de code is als volgt.
Tekst in PDF vervangen door reguliere expressies (RegEx) met behulp van C#
U kunt ook elk specifiek tekstpatroon vervangen door reguliere expressies. Met de volgende stappen kunt u PDF na de zoekopdracht redigeren met behulp van reguliere expressie (RegEx) binnen uw .NET-toepassing.
- Laad het PDF-document met de klasse Redactor.
- Zoek de regex-overeenkomst met behulp van de RegexRedaction klasse met [ReplacementOptions](https://apireference.groupdocs.com/redaction/ net/groupdocs.redaction.redactions/replacementoptions).
- Voer de wijzigingen in het document in met behulp van de methode Apply().
- Sla het geredigeerde document op met de juiste methode Save().
De volgende code laat zien hoe u een bepaald tekstpatroon in een PDF-document kunt vinden met behulp van RegEx en dit later kunt vervangen/verbergen door een andere tekst met behulp van C#.
// Zoek tekst met behulp van reguliere expressies en vervang deze door andere tekst met behulp van 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 });
}
De uitvoer van de bovenstaande code is als volgt.
Vervang de tekst door een gekleurd vak in C#
Als u alleen de doorzochte inhoud (privé-informatie) van uw PDF-bestand wilt verbergen, kunt u er eenvoudig een omslag op plaatsen. Met de API kunt u de gezochte tekst verbergen. De volgende C#-code plaatst de zwarte rechthoek over de genoemde privétekst.
// Zoek tekst in PDF en verberg het door er een rechthoek overheen te tekenen met 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 });
}
De uitvoer van de bovenstaande code is als volgt.
Ontvang een gratis API-licentie
U kunt een gratis tijdelijke licentie krijgen om de API te gebruiken zonder de evaluatiebeperkingen.
Conclusie
Tot slot hebben we geleerd hoe we bepaalde tekst in pdf-bestanden kunnen vinden met behulp van verschillende zoektechnieken. Later bespraken we hoe PDF-bestanden konden worden geredigeerd door de tekst in de .NET-toepassing te vervangen of te verbergen met behulp van C#. Om preciezer te zijn, we zochten gewoon naar de woorden, zinsdelen, zoeken met hoofdlettergevoeligheid en met behulp van reguliere expressies in C#. Ten slotte hebben we de zoekresultaten vervangen door een andere tekst of door deze te verbergen met een rechthoekig vak eroverheen.
Ga voor meer informatie over de API naar de documentatie. Neem voor vragen contact met ons op via het forum.