In een van de artikelen hebben we het al gehad over hoe je als .NET-ontwikkelaar woorden in documenten kunt redigeren. De strategie wordt op veel manieren gebruikt om gevoelige inhoud te wissen, privé-informatie zoals e-mailadressen of identificatienummers te verbergen of te verwijderen. In dit artikel wordt beschreven hoe u woordzoekopdrachten uitvoert in Word DOC/DOCX-documenten in Java. We zullen afzonderlijk bespreken hoe de tekst, woorden of zinsdelen kunnen worden gevonden en vervangen door verschillende technieken met Java API voor redactie.

De volgende onderwerpen zullen hieronder aan de orde komen:

Java API voor het zoeken naar woorden en het vervangen van tekst

GroupDocs biedt een Java redactie-API waarmee de inhoud van door MS Word ondersteunde bestanden en andere documenten met verschillende andere bestandsindelingen kan worden gevonden en vervangen. Naast de tekstredactie en rastering ondersteunt de API metadata, annotatie, spreadsheets en ook de functies voor het redigeren van afbeeldingen. De ondersteunde bestandsindelingen van de Word-documenten, spreadsheets, presentaties, afbeeldingen en pdf-documenten zijn beschikbaar in 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>

MS Word of andere software van derden is niet vereist voor het redactieproces. Laten we nu beginnen met verschillende benaderingen voor het zoeken en vervangen van tekst. Het volgende is de schermafbeelding van een Word-document dat in de onderstaande voorbeelden wordt gebruikt. U kunt dezelfde methoden ook gebruiken voor andere documentindelingen met weinig of geen wijziging in de broncode.

Document om tekst te redigeren

Zoek en vervang woorden of woordgroepen met Java

In de volgende stappen wordt uitgelegd hoe u de voorkomens van een woord/zin in een Word-document binnen de Java-toepassing kunt vinden en vervangen.

  • Laad het DOC/DOCX-bestand met de klasse Redactor.
  • Zoek de exacte zin of het woord met behulp van de klassen ExactPhraseRedaction en ReplacementOptions.
  • Gebruik de methode Redactor toepassen om redactie toe te passen.
  • Gebruik de uitvoerstroom om het bestand op een andere locatie op te slaan nadat u wijzigingen hebt aangebracht.
  • Sla de redactiewijzigingen op met behulp van de opslagmethode.

De volgende code zoekt en vervangt het woord “John Doe” in het bovenstaande Word-document met behulp van Java. Het vervangt alle keren dat “John Doe” voorkomt door het woord “[gecensureerd]”.

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

De uitvoer van de code is als volgt.

Bewerken met Exact Phrase

Hoofdlettergevoelig woord zoeken en tekst vervangen in Java

U lijkt voorzichtig met de exacte hoofdletter van het woord en wilt alleen het woord vervangen dat alleen overeenkomt met uw hoofdlettergevoelige zoekopdracht. De volgende code vervangt het bestaan van de exacte hoofdletterovereenkomst van het woord “John Doe” in Java.

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

De uitvoer van de code is als volgt.

Hoofdlettergevoelige redactie

Vervang tekst met reguliere expressies (RegEx) in Java

Als u niet het exacte woord wilt wijzigen, maar een bepaald patroon in uw document, kunt u de Reguliere expressies gebruiken. Met de volgende stappen kunt u elk tekstpatroon zoeken en vervangen met behulp van reguliere expressies (RegEx) binnen uw Java-toepassingen.

  • Laad het document met de klasse Redactor.
  • Maak de RegEx met behulp van de RegexRedaction.
  • Geef de tekst op met ReplacementOptions om de RegEx-overeenkomst te vervangen.
  • Gebruik de methode toepassen om alle regex-overeenkomsten te vervangen.
  • Gebruik de opslagmethode om het geredigeerde document op te halen.

De volgende code laat zien hoe u de woordzoeker in een Word-bestand uitvoert met behulp van RegEx en deze vervangt door andere tekst met behulp van Java.

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

Het volgende is de uitvoer van de bovenstaande code:

RegEx-redactie

Vervang de tekst door een gekleurd vak in Java

Als u uw inhoud niet wilt vervangen en deze alleen wilt verbergen, kunt u met de API tekst matchen door er een vak overheen te tekenen. De volgende Java-code verbergt de tekst met het zwarte rechthoekige vak.

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

De uitvoer van de bovenstaande code is als volgt.

Verberg tekst met behulp van Box

Ontvang een gratis API-licentie

U kunt een gratis tijdelijke licentie krijgen om de API te gebruiken zonder de evaluatiebeperkingen.

Conclusie

Kortom, u hebt geleerd hoe u woordzoekopdrachten kunt uitvoeren om tekst in Word-documenten te vinden met behulp van exacte tekstfrase zoeken, hoofdlettergevoelig zoeken, zoeken met reguliere uitdrukkingen en last but not least de tekst verbergen in plaats van vervangen. U kunt deze verschillende technieken gebruiken om de bevindingen op verschillende manieren te vervangen binnen MS Word-documenten.

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

Zie ook