Sjablonen worden veel gebruikt om gepersonaliseerde documenten te genereren door de sjabloonsleutels te vervangen door respectieve waarden. Dit artikel beschrijft hoe u tekst en woorden in PDF-documenten in Java kunt vinden en vervangen. We zullen afzonderlijk bespreken hoe u kunt zoeken naar woorden en zinsdelen, zoeken naar hoofdlettergevoelige woorden en het vervangen van de gevonden tekst met behulp van reguliere expressies. Ten slotte zullen we leren hoe we het doorzochte deel van de tekst kunnen verbergen met Java.

De volgende onderwerpen zullen hieronder aan de orde komen:

Java Redaction API voor het vervangen van tekst

GroupDocs biedt Java API voor het toepassen van verschillende soorten redacties. Het maakt het mogelijk om de inhoud en zelfs metadata van documenten, presentaties, spreadsheets, pdf-bestanden en afbeeldingen in de applicatie te redigeren, verbergen of verwijderen. Ga voor meer informatie over de API naar de documentatie.

Downloaden of configureren

U kunt het JAR-bestand downloaden van de downloads-sectie, of gewoon de nieuwste repository- en afhankelijkheidsconfiguraties voor pom.xml van uw maven-gebaseerde Java-applicaties downloaden.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

Een van de goede dingen is dat het niet nodig is om een PDF-editor of andere software van derden te installeren voor PDF-redactie. Het volgende is de inhoud van het PDF-document dat in de onderstaande voorbeelden wordt gebruikt voor redactie. Dezelfde aanpak zal werken voor andere documentformaten met nauwelijks verschil in de broncode.

Zoek en vervang woord of woordgroep in PDF in Java

U kunt deze functie gebruiken om privégegevens te verbergen en ook om een nieuw aangepast document te maken op basis van een willekeurig sjabloon. In de volgende stap wordt uitgelegd hoe u een woord/zin in een PDF-document kunt vinden en vervangen door een andere tekst in de Java-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/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Pas de redactie toe met behulp van de methode apply().
  • Sla het nieuwe document met de wijzigingen op met behulp van de methode save().

De volgende code zoekt en vervangt de woorden in een PDF-bestand met behulp van Java. Nauwkeuriger gezegd, het verbergt alle keren dat “John Doe” voorkomt door het te vervangen door het woord “[gecensureerd]”.

// Zoek de exacte zin in PDF en vervang deze door andere tekst met behulp van Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Sla het geredigeerde bestand op een andere locatie op met een andere naam.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.pdf");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

De uitvoer van de bovenstaande code is als volgt.

Zoek en vervang hoofdlettergevoelige tekst of woordgroep in PDF met behulp van Java

U kunt hoofdlettergevoelig zoeken en redigeren uitvoeren. De volgende code vervangt het hoofdlettergevoelige voorkomen van het woord “John Doe” maar niet “john doe” in een PDF-document dat Java gebruikt.

// Zoek de exacte woordgroep in PDF (hoofdlettergevoelig) en vervang deze door andere tekst met behulp van Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

De uitvoer van de code is als volgt.

Vervang tekst in PDF door reguliere expressies (RegEx) in Java

Op dezelfde manier kunt u elk specifiek tekstpatroon vervangen door reguliere expressies. Met de volgende stappen kunt u PDF redigeren na zoeken met reguliere expressie (RegEx) binnen uw Java-toepassingen.

  • 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/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Breng de wijzigingen in het document aan met behulp van de methode apply().
  • Sla het geredigeerde document op met de juiste save()-methode.

De volgende Java-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 andere tekst.

// Zoek tekst in PDF met behulp van reguliere expressies en vervang deze door andere tekst met behulp van Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

De uitvoer van de bovenstaande code is als volgt.

Vervang de tekst door een gekleurd vak in Java

Als u alleen de doorzochte vertrouwelijke informatie in uw PDF-bestand wilt verbergen, kunt u er eenvoudig een omslag op plaatsen. Met de API kunt u de gezochte tekst verbergen. De volgende code plaatst de zwarte rechthoek over de genoemde privétekst in Java.

// Zoek tekst in PDF en verberg deze door er een rechthoek overheen te tekenen met Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

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

Kortom, we hebben geleerd hoe we bepaalde tekst in pdf-bestanden kunnen vinden met behulp van verschillende zoektechnieken. Later hebben we de pdf-bestanden geredigeerd door de tekst in de applicaties in Java te vervangen of te verbergen. Meer precies, we hebben een eenvoudige zoekopdracht uitgevoerd naar de woorden, zinsdelen, gezocht met hoofdlettergevoeligheid en met behulp van RegEx in Java. Ten slotte hebben we de zoekresultaten gewijzigd met een andere tekst of door deze simpelweg te verbergen met een kleur eroverheen.

Ga voor meer informatie over de API naar de documentatie. Neem voor vragen contact met ons op via het forum.

Zie ook