Verwenden von Structured Document Tags (SDT) in Aspose.Words für Java
Einführung in die Verwendung strukturierter Dokument-Tags (SDT) in Aspose.Words für Java
Structured Document Tags (SDT) sind eine leistungsstarke Funktion in Aspose.Words für Java, mit der Sie strukturierte Inhalte in Ihren Dokumenten erstellen und bearbeiten können. In diesem umfassenden Leitfaden führen wir Sie durch die verschiedenen Aspekte der Verwendung von SDTs in Aspose.Words für Java. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, in diesem Artikel finden Sie wertvolle Einblicke und praktische Beispiele.
Erste Schritte
Bevor wir in die Details eintauchen, richten wir unsere Umgebung ein und erstellen ein grundlegendes SDT. In diesem Abschnitt behandeln wir die folgenden Themen:
- Neues Dokument erstellen
- Hinzufügen eines strukturierten Dokument-Tags
- Speichern des Dokuments
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Erstellen Sie ein strukturiertes Dokument-Tag vom Typ CHECKBOX
StructuredDocumentTag sdtCheckBox = new StructuredDocumentTag(doc, SdtType.CHECKBOX, MarkupLevel.INLINE);
builder.insertNode(sdtCheckBox);
// Speichern des Dokuments
doc.save("WorkingWithSDT.docx");
Überprüfen des aktuellen Status eines Kontrollkästchen-SDT
Nachdem Sie Ihrem Dokument ein Kontrollkästchen-SDT hinzugefügt haben, möchten Sie möglicherweise dessen aktuellen Status programmgesteuert überprüfen. Dies kann nützlich sein, wenn Sie Benutzereingaben validieren oder bestimmte Aktionen basierend auf dem Kontrollkästchenstatus ausführen müssen.
Document doc = new Document("WorkingWithSDT.docx");
StructuredDocumentTag sdtCheckBox = (StructuredDocumentTag) doc.getChild(NodeType.STRUCTURED_DOCUMENT_TAG, 0, true);
if (sdtCheckBox.getSdtType() == SdtType.CHECKBOX) {
// Kontrollkästchen ist aktiviert
sdtCheckBox.setChecked(true);
}
doc.save("UpdatedDocument.docx");
Ändern von Inhaltssteuerelementen
In diesem Abschnitt erfahren Sie, wie Sie Inhaltssteuerelemente in Ihrem Dokument ändern. Wir behandeln drei Arten von Inhaltssteuerelementen: Nur Text, Dropdown-Liste und Bild.
Ändern des Inhaltssteuerelements für Nur-Text
Document doc = new Document("WorkingWithSDT.docx");
StructuredDocumentTag sdtPlainText = (StructuredDocumentTag) doc.getChild(NodeType.STRUCTURED_DOCUMENT_TAG, 0, true);
if (sdtPlainText.getSdtType() == SdtType.PLAIN_TEXT) {
// Löschen Sie den vorhandenen Inhalt
sdtPlainText.removeAllChildren();
// Neuen Text hinzufügen
Paragraph para = (Paragraph) sdtPlainText.appendChild(new Paragraph(doc));
Run run = new Run(doc, "New text goes here");
para.appendChild(run);
}
doc.save("ModifiedDocument.docx");
Ändern des Inhaltssteuerelements für Dropdown-Listen
Document doc = new Document("WorkingWithSDT.docx");
StructuredDocumentTag sdtDropDown = (StructuredDocumentTag) doc.getChild(NodeType.STRUCTURED_DOCUMENT_TAG, 0, true);
if (sdtDropDown.getSdtType() == SdtType.DROP_DOWN_LIST) {
// Wählen Sie das zweite Element aus der Liste
SdtListItem secondItem = sdtDropDown.getListItems().get(2);
sdtDropDown.getListItems().setSelectedValue(secondItem);
}
doc.save("ModifiedDocument.docx");
Ändern der Bildinhaltssteuerung
Document doc = new Document("WorkingWithSDT.docx");
StructuredDocumentTag sdtPicture = (StructuredDocumentTag) doc.getChild(NodeType.STRUCTURED_DOCUMENT_TAG, 0, true);
Shape shape = (Shape) sdtPicture.getChild(NodeType.SHAPE, 0, true);
if (shape.hasImage()) {
// Ersetzen Sie das Bild durch ein neues
shape.getImageData().setImage("Watermark.png");
}
doc.save("ModifiedDocument.docx");
Erstellen eines ComboBox-Inhaltssteuerelements
Mit einem ComboBox-Inhaltssteuerelement können Benutzer aus einer vordefinierten Liste von Optionen auswählen. Lassen Sie uns eines in unserem Dokument erstellen.
Document doc = new Document();
StructuredDocumentTag sdtComboBox = new StructuredDocumentTag(doc, SdtType.COMBO_BOX, MarkupLevel.BLOCK);
sdtComboBox.getListItems().add(new SdtListItem("Choose an item", "-1"));
sdtComboBox.getListItems().add(new SdtListItem("Item 1", "1"));
sdtComboBox.getListItems().add(new SdtListItem("Item 2", "2"));
doc.getFirstSection().getBody().appendChild(sdtComboBox);
doc.save("ComboBoxDocument.docx");
Arbeiten mit Rich Text Content Control
Rich-Text-Inhaltssteuerelemente eignen sich perfekt zum Hinzufügen formatierten Textes zu Ihren Dokumenten. Lassen Sie uns eines erstellen und seinen Inhalt festlegen.
Document doc = new Document();
StructuredDocumentTag sdtRichText = new StructuredDocumentTag(doc, SdtType.RICH_TEXT, MarkupLevel.BLOCK);
Paragraph para = new Paragraph(doc);
Run run = new Run(doc);
run.setText("Hello World");
run.getFont().setColor(Color.GREEN);
para.getRuns().add(run);
sdtRichText.getChildNodes().add(para);
doc.getFirstSection().getBody().appendChild(sdtRichText);
doc.save("RichTextDocument.docx");
Festlegen von Inhaltssteuerelementstilen
Sie können Inhaltssteuerelementen Stile zuweisen, um die visuelle Darstellung Ihres Dokuments zu verbessern. Sehen wir uns an, wie Sie den Stil eines Inhaltssteuerelements festlegen.
Document doc = new Document("WorkingWithSDT.docx");
StructuredDocumentTag sdt = (StructuredDocumentTag) doc.getChild(NodeType.STRUCTURED_DOCUMENT_TAG, 0, true);
// Anwenden eines benutzerdefinierten Stils
Style style = doc.getStyles().getByStyleIdentifier(StyleIdentifier.QUOTE);
sdt.setStyle(style);
doc.save("StyledDocument.docx");
Binden eines SDT an benutzerdefinierte XML-Daten
In einigen Szenarien müssen Sie möglicherweise ein SDT an benutzerdefinierte XML-Daten binden, um dynamische Inhalte zu generieren. Sehen wir uns an, wie das geht.
Document doc = new Document();
CustomXmlPart xmlPart = doc.getCustomXmlParts().add(UUID.randomUUID().toString(), "<root><text>Hello, World!</text></root>");
StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK);
doc.getFirstSection().getBody().appendChild(sdt);
sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[1]", "");
doc.save("CustomXMLBinding.docx");
Erstellen einer Tabelle mit sich wiederholenden Abschnitten, die benutzerdefinierten XML-Daten zugeordnet sind
Tabellen mit sich wiederholenden Abschnitten können für die Darstellung strukturierter Daten äußerst nützlich sein. Lassen Sie uns eine solche Tabelle erstellen und sie benutzerdefinierten XML-Daten zuordnen.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
CustomXmlPart xmlPart = doc.getCustomXmlParts().add("Books", "<books>...</books>");
Table table = builder.startTable();
builder.insertCell();
builder.write("Title");
builder.insertCell();
builder.write("Author");
builder.endRow();
builder.endTable();
StructuredDocumentTag repeatingSectionSdt = new StructuredDocumentTag(doc, SdtType.REPEATING_SECTION, MarkupLevel.ROW);
repeatingSectionSdt.getXmlMapping().setMapping(xmlPart, "/books[1]/book", "");
table.appendChild(repeatingSectionSdt);
StructuredDocumentTag repeatingSectionItemSdt = new StructuredDocumentTag(doc, SdtType.REPEATING_SECTION_ITEM, MarkupLevel.ROW);
repeatingSectionSdt.appendChild(repeatingSectionItemSdt);
Row row = new Row(doc);
repeatingSectionItemSdt.appendChild(row);
StructuredDocumentTag titleSdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.CELL);
titleSdt.getXmlMapping().setMapping(xmlPart, "/books[1]/book[1]/title[1]", "");
row.appendChild(titleSdt);
StructuredDocumentTag authorSdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.CELL);
authorSdt.getXmlMapping().setMapping(xmlPart, "/books[1]/book[1]/author[1]", "");
row.appendChild(authorSdt);
doc.save("RepeatingTableDocument.docx");
Arbeiten mit strukturierten Dokument-Tags mit mehreren Abschnitten
Strukturierte Dokument-Tags können mehrere Abschnitte in einem Dokument umfassen. In diesem Abschnitt erfahren Sie, wie Sie mit mehrteiligen SDTs arbeiten.
Document doc = new Document("MultiSectionDocument.docx");
NodeCollection tags = doc.getChildNodes(NodeType.STRUCTURED_DOCUMENT_TAG_RANGE_START, true);
for (StructuredDocumentTagRangeStart tag : tags) {
System.out.println(tag.getTitle());
}
doc.save("ModifiedMultiSectionDocument.docx");
Abschluss
Strukturierte Dokument-Tags in Aspose.Words für Java bieten eine vielseitige Möglichkeit, Inhalte in Ihren Dokumenten zu verwalten und zu formatieren. Egal, ob Sie Vorlagen, Formulare oder dynamische Dokumente erstellen müssen, SDTs bieten die Flexibilität und Kontrolle, die Sie benötigen. Indem Sie den Beispielen und Richtlinien in diesem Artikel folgen, können Sie die Leistungsfähigkeit von SDTs nutzen, um Ihre Dokumentverarbeitungsaufgaben zu verbessern.
Häufig gestellte Fragen
Was ist der Zweck von Structured Document Tags (SDTs)?
Strukturierte Dokument-Tags (SDTs) dienen der Organisation und Formatierung von Inhalten in Dokumenten und erleichtern das Erstellen von Vorlagen, Formularen und strukturierten Dokumenten.
Wie kann ich den aktuellen Status eines Checkbox-SDT überprüfen?
Sie können den aktuellen Status eines Checkbox-SDT überprüfen mit demsetChecked
Methode, wie im Artikel gezeigt.
Kann ich Stile auf Inhaltssteuerelemente anwenden?
Ja, Sie können Stile auf Inhaltssteuerelemente anwenden, um deren Erscheinungsbild im Dokument anzupassen.
Ist es möglich, ein SDT an benutzerdefinierte XML-Daten zu binden?
Ja, Sie können ein SDT an benutzerdefinierte XML-Daten binden und so eine dynamische Inhaltsgenerierung und Datenzuordnung ermöglichen.
Was sind sich wiederholende Abschnitte in SDTs?
Durch sich wiederholende Abschnitte in SDTs können Sie Tabellen mit dynamischen Daten erstellen, in denen Zeilen basierend auf den zugeordneten XML-Daten wiederholt werden können.