Durchgestrichene Formatierung wird häufig benötigt, um Löschungen, Überarbeitungen oder erledigte Aufgaben in generierten Dokumenten anzuzeigen. Conholdate.Total for Java bietet ein robustes SDK, mit dem Sie Word‑Dokumente programmgesteuert manipulieren können. In diesem Leitfaden lernen Sie, wie Sie durchgestrichenen Text in Java hinzufügen, Konfigurationsoptionen erkunden, bewährte Methoden zur Leistung einsehen und ein vollständiges Beispiel ausführen, das Sie an Ihre eigenen Projekte anpassen können.
Bevor Sie beginnen: Voraussetzungen und Installation
Um diesem Tutorial zu folgen, benötigen Sie:
- Java 17 oder neuer, das auf Ihrer Entwicklungsmaschine installiert ist.
- Maven 3.6+ für die Abhängigkeitsverwaltung.
- Eine IDE wie IntelliJ IDEA oder Eclipse.
Fügen Sie das Conholdate Maven-Repository und die SDK-Abhängigkeit zu Ihrer pom.xml hinzu:
<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 die neuesten SDK‑Binärdateien von der Download‑Seite, wenn Sie eine manuelle Einrichtung bevorzugen. Sobald die Abhängigkeit gelöst ist, sind Sie bereit, mit dem Codieren zu beginnen. Der nächste Abschnitt führt Sie durch jeden Schritt, um durchgestrichenen Text in Java hinzuzufügen.
Schritt-für-Schritt-Anleitung zum Durchstreichen von Text in Java
Schritt 1: Laden des Quelldokuments
Zuerst erstellen Sie eine Document‑Instanz. Wenn die Eingabedatei existiert, lädt das SDK sie; andernfalls wird ein neues leeres Dokument erstellt.
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
}
Die Document-Klasse ist in der API-Referenz dokumentiert.
Schritt 2: Normalen Absatz schreiben
Verwenden Sie DocumentBuilder, um einen regulären Absatz hinzuzufügen. Dies demonstriert, dass normaler Text von Durchstreichungs‑Einstellungen nicht betroffen ist.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");
Schritt 3: Durchgestrichene Formatierung anwenden
Aktivieren Sie das Durchstreichungs‑Flag in der Schrift des Builders, bevor Sie den formatierten Text schreiben.
builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false); // reset for subsequent text
Schritt 4: Suchen und bedingtes Durchstreichen anwenden
Durchlaufen Sie alle Run-Objekte, finden Sie das Wort “strike” und wenden Sie die Formatierung programmgesteuert an.
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);
}
}
}
Schritt 5: Dokument speichern
Schreiben Sie schließlich das modifizierte Dokument auf die Festplatte im DOCX Format.
String outputPath = "output.docx";
doc.save(outputPath, SaveFormat.DOCX);
Nachdem das Dokument gespeichert wurde, können Sie output.docx öffnen, um zu überprüfen, ob die Durchstreichformatierung wie erwartet angezeigt wird.
Vollständiges funktionierendes Beispiel für durchgestrichenen Text Java-Beispiel
Der folgende Code demonstriert den vollständigen Workflow zum Hinzufügen von durchgestrichenem Text in Java mit 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;
}
}
}
}
Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie alle Dateipfade und Konfigurationswerte an Ihre tatsächliche Umgebung anpassen, dass alle erforderlichen Abhängigkeiten ordnungsgemäß installiert sind, und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.
Feinabstimmung der Durchstreichungs‑Stiloptionen
Das SDK ermöglicht es Ihnen, zusätzliche Schriftattribute wie Farbe, Größe und Unterstreichung zu steuern, während das Durchstreich‑Flag aktiviert bleibt. Zum Beispiel können Sie die Farbe von durchgestrichenem Text ändern:
builder.getFont().setColor(java.awt.Color.RED);
builder.getFont().setStrikeThrough(true);
builder.writeln("Important deletion highlighted in red.");
Wenn Sie denselben Stil auf viele Runs anwenden müssen, sollten Sie in Erwägung ziehen, eine wiederverwendbare Font‑Instanz zu erstellen und sie jedem Run zuzuweisen, um wiederholte Property‑Einstellungen zu vermeiden.
Leistungsüberlegungen für die Durchstreichungsdarstellung
- Wiederverwenden Sie das
Document-Objekt - das Laden eines Dokuments einmal und das Durchführen aller Änderungen in einer einzigen Sitzung reduziert den I/O‑Overhead. - Stiländerungen stapeln - wenden Sie das Durchstreich‑Flag auf eine
Paragraph‑ oderRun‑Sammlung an, anstatt es für jedes Zeichen umzuschalten. - Vermeiden Sie unnötige Durchläufe - die bedingte Schleife, die nach dem Wort “strike” sucht, sollte nur ausgeführt werden, wenn Sie tatsächlich dynamische Formatierung benötigen.
- Ausgabe streamen, wenn möglich - bei großen Dokumenten verwenden Sie
doc.save(OutputStream, SaveFormat.DOCX), um direkt in einen Stream zu schreiben und Speicher zu sparen.
Diese Tipps helfen, den Speicherverbrauch niedrig und die Ausführungszeit schnell zu halten, insbesondere beim Verarbeiten von Hunderten von Dokumenten in einem Batch‑Job.
Abschließende Gedanken
Das Hinzufügen von Durchstreichungen in Java ist mit Conholdate.Total for Java einfach. Die fluente API des SDK ermöglicht das Mischen von normalen und formatierten Absätzen, das Anwenden von bedingter Formatierung und das Speichern der Ergebnisse in branchenüblichen Formaten. Denken Sie daran, Ihre Maven‑Abhängigkeit zu konfigurieren, Dokumentobjekte wiederzuverwenden und Stile effizient anzuwenden, um optimale Leistung zu erzielen. Für Produktionsbereitstellungen benötigen Sie eine gültige Lizenz; Preisinformationen finden Sie auf der Preisseite und eine temporäre Lizenz kann von der Seite für temporäre Lizenz erhalten werden. Viel Spaß beim Coden!
Fragen, die Sie haben könnten
Wie wende ich Durchstreichungstext in Java an, ohne das Flag für jeden Lauf manuell zu setzen?
Verwenden SieDocumentBuilder.getFont().setStrikeThrough(true)bevor Sie den Absatz schreiben. Das Flag bleibt aktiv, bis Sie es zurücksetzen, sodass Sie mehrere Zeilen mit demselben Stil schreiben können.Kann ich jedes Vorkommen eines Schlüsselworts automatisch durchstreichen?
Ja. Durchlaufen Sie jedesRunwie im Durchgang gezeigt, prüfen Sierun.getText()auf das Schlüsselwort und rufen Sierun.getFont().setStrikeThrough(true)auf, wenn eine Übereinstimmung gefunden wird.Welche Dokumentformate behalten Durchstreichungen beim Speichern bei?
DOCX, DOC, RTF, und andere Rich‑Text‑Formate behalten das Durchstreichungs‑Attribut bei. Weitere Informationen finden Sie in der offiziellen Dokumentation für eine vollständige Liste der unterstützten Formate.Wird das Anwenden vieler Durchstreichungsstile die Verarbeitung großer Dateien verlangsamen?
Der Einfluss ist minimal, wenn Sie die Leistungstipps befolgen: Wiederverwenden Sie dieDocument‑Instanz, führen Sie Stiländerungen stapelweise durch und vermeiden Sie redundante Durchläufe. Dadurch bleibt der Speicherverbrauch gering und die Verarbeitung wird beschleunigt.
