Doorhalingsopmaak is vaak vereist om verwijderingen, revisies of voltooide taken binnen gegenereerde documenten aan te geven. Conholdate.Total for Java biedt een robuuste SDK waarmee je Word‑documenten programmatisch kunt manipuleren. In deze gids leer je hoe je doorhalende tekst toevoegt in Java, de configuratieopties verkent, best practices voor prestaties bekijkt en een volledig voorbeeld uitvoert dat je kunt aanpassen aan je eigen projecten.

Voordat u begint: vereisten en installatie

Om deze tutorial te volgen heb je nodig:

  • Java 17 of nieuwer geïnstalleerd op uw ontwikkelmachine.
  • Maven 3.6+ voor afhankelijkheidsbeheer.
  • Een IDE zoals IntelliJ IDEA of Eclipse.

Voeg de Conholdate Maven-repository en de SDK-afhankelijkheid toe aan uw pom.xml:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

Download de nieuwste SDK‑binaries van de downloadpagina als je een handmatige installatie verkiest. Zodra de afhankelijkheid is opgelost, ben je klaar om te beginnen met coderen. Het volgende gedeelte behandelt elke stap voor het toevoegen van doorgehaalde tekst in Java.

Stapsgewijze handleiding voor doorgehaalde tekst in Java

Stap 1: Laad het brondocument

Maak eerst een Document-instantie aan. Als het invoerbestand bestaat, laadt de SDK het; anders wordt er een nieuw leeg document aangemaakt.

String inputPath = "input.docx";
Document doc;
File inputFile = new File(inputPath);
if (inputFile.exists()) {
    doc = new Document(inputPath); // loads existing DOCX
} else {
    doc = new Document();          // creates a new blank document
    doc.removeAllChildren();       // ensure it's empty
}

De Document-klasse is gedocumenteerd in de API-referentie.

Stap 2: Schrijf een normale alinea

Gebruik DocumentBuilder om een gewone alinea toe te voegen. Dit toont aan dat normale tekst niet wordt beïnvloed door doorhalingsinstellingen.

DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");

Stap 3: Doorhalen toepassen

Schakel de doorhalingsvlag in op het lettertype van de builder voordat u de opgemaakte tekst schrijft.

builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false); // reset for subsequent text

Stap 4: Zoeken en voorwaardelijke doorhaling toepassen

Itereer door alle Run-objecten, zoek het woord “strike” en pas de opmaak programmatisch toe.

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
    for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
        String text = run.getText();
        if (text != null && text.toLowerCase().contains("strike")) {
            run.getFont().setStrikeThrough(true);
        }
    }
}

Stap 5: Document opslaan

Schrijf het gewijzigde document tenslotte naar schijf in DOCX formaat.

String outputPath = "output.docx";
doc.save(outputPath, SaveFormat.DOCX);

Met het document opgeslagen, kun je output.docx openen om te verifiëren dat de doorstrepende opmaak naar verwachting verschijnt.

Volledig werkend voorbeeld voor doorgehaalde tekst Java-voorbeeld

De volgende code toont de volledige workflow voor het toevoegen van doorgehaalde tekst in Java met behulp van Conholdate.Total.

import com.aspose.words.*;

import java.io.File;

public class StrikethroughExample {
    public static void main(String[] args) {
        String inputPath = "input.docx";
        String outputPath = "output.docx";

Document doc = null;
        try {
            File inputFile = new File(inputPath);
            if (inputFile.exists()) {
                doc = new Document(inputPath);
            } else {
                doc = new Document();
                doc.removeAllChildren();
            }

DocumentBuilder builder = new DocumentBuilder(doc);
            builder.moveToDocumentEnd();

builder.writeln("This is a normal paragraph.");

builder.getFont().setStrikeThrough(true);
            builder.writeln("This text is rendered with strikethrough.");
            builder.getFont().setStrikeThrough(false);

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
                for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
                    String text = run.getText();
                    if (text != null && text.toLowerCase().contains("strike")) {
                        run.getFont().setStrikeThrough(true);
                    }
                }
            }

doc.save(outputPath, SaveFormat.DOCX);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (doc != null) {
                doc = null;
            }
        }
    }
}

Opmerking: Dit codevoorbeeld toont de kernfunctionaliteit. Voordat u het in uw project gebruikt, moet u ervoor zorgen dat u alle bestandspaden en configuratiewaarden bijwerkt zodat ze overeenkomen met uw daadwerkelijke omgeving, verifiëren dat alle vereiste afhankelijkheden correct zijn geïnstalleerd, en grondig testen in uw ontwikkelomgeving. Als u problemen ondervindt, raadpleeg dan de officiële documentatie of neem contact op met het ondersteuningsteam voor hulp.

Fijn afstemmen van doorstrepingsopmaakopties

De SDK stelt je in staat om extra lettertype‑eigenschappen zoals kleur, grootte en onderstreping te regelen, terwijl de doorstreepte‑vlag ingeschakeld blijft. Bijvoorbeeld, je kunt de kleur van doorstreepte tekst wijzigen:

builder.getFont().setColor(java.awt.Color.RED);
builder.getFont().setStrikeThrough(true);
builder.writeln("Important deletion highlighted in red.");

Als u dezelfde stijl op veel runs moet toepassen, overweeg dan een herbruikbare Font-instantie te maken en deze aan elke Run toe te wijzen om repetitieve eigenschapsinstellingen te vermijden.

Prestatieoverwegingen voor doorhalen‑weergave

  1. Herbruik het Document-object - het laden van een document één keer en het uitvoeren van alle wijzigingen in één sessie vermindert I/O-overhead.
  2. Stijlwijzigingen in batch - pas de doorhalingsvlag toe op een Paragraph- of Run-collectie in plaats van deze voor elk teken te schakelen.
  3. Vermijd onnodige doorlopen - de voorwaardelijke lus die zoekt naar het woord “strike” moet alleen worden uitgevoerd wanneer je daadwerkelijk dynamische opmaak nodig hebt.
  4. Stroomuitvoer waar mogelijk - voor grote documenten kun je doc.save(OutputStream, SaveFormat.DOCX) gebruiken om direct naar een stroom te schrijven en geheugen te besparen.

Deze tips helpen het geheugengebruik laag te houden en de uitvoeringstijd snel, vooral bij het verwerken van honderden documenten in een batchtaak.

Eindgedachten

Doorstrepen van tekst in Java toevoegen is eenvoudig met Conholdate.Total for Java. De vloeiende API van de SDK stelt je in staat om normale en opgemaakte alinea’s te combineren, voorwaardelijke opmaak toe te passen en resultaten op te slaan in industriestandaardformaten. Vergeet niet je Maven‑afhankelijkheid te configureren, documentobjecten opnieuw te gebruiken en stijlen efficiënt toe te passen om optimale prestaties te behalen. Voor productie‑implementaties heb je een geldige licentie nodig; prijsdetails zijn beschikbaar op de prijspagina en een tijdelijke licentie kan worden verkregen via de tijdelijke licentie‑pagina. Veel plezier met coderen!

Vragen die u mogelijk heeft

  • Hoe pas ik doorgehaalde tekst toe in Java zonder handmatig de vlag voor elke run in te stellen?
    Gebruik DocumentBuilder.getFont().setStrikeThrough(true) voordat u de alinea schrijft. De vlag blijft actief totdat u deze reset, waardoor u meerdere regels met dezelfde stijl kunt schrijven.

  • Kan ik automatisch elke voorkoming van een trefwoord doorstrepen?
    Ja. Loop door elke Run zoals getoond in de walkthrough, controleer run.getText() op het trefwoord, en roep run.getFont().setStrikeThrough(true) aan wanneer een overeenkomst wordt gevonden.

  • Welke documentformaten behouden doorhaling bij opslaan?
    DOCX, DOC, RTF, en andere rich‑textformaten behouden het doorhalingsattribuut. Raadpleeg de officiële documentatie voor een volledige lijst van ondersteunde formaten.

  • Zal het toepassen van veel doorstreepte stijlen de verwerking van grote bestanden vertragen?
    De impact is minimaal als je de prestatie‑tips volgt: hergebruik de Document‑instantie, batch stijlwijzigingen en vermijd overbodige doorlopen. Dit houdt het geheugenverbruik laag en versnelt de verwerking.

Gerelateerde artikelen