Arbeiten mit Kommentaren
Versuchen Sie es online
Sie können diese Funktionalität mit unserem Kostenlose Online Entfernung von Anmerkungen ausprobieren.
Aspose.Words ermöglicht Benutzern das Arbeiten mit Kommentaren – Kommentare in einem Dokument in Aspose.Words werden durch die Comment-Klasse dargestellt. Verwenden Sie außerdem die CommentRangeStart- und CommentRangeEnd-Klassen, um den Textbereich anzugeben, der einem Kommentar zugeordnet werden soll.
Einen Kommentar hinzufügen
Mit Aspose.Words können Sie Kommentare auf verschiedene Arten hinzufügen:
- Verwendung der Comment-Klasse
- Verwendung der CommentRangeStart- und CommentRangeEnd-Klassen
Das folgende Codebeispiel zeigt, wie Sie mithilfe der Comment-Klasse einen Kommentar zu einem Absatz hinzufügen:
Das folgende Codebeispiel zeigt, wie Sie mithilfe eines Textbereichs und der CommentRangeStart- und CommentRangeEnd-Klassen einen Kommentar zu einem Absatz hinzufügen:
Kommentare extrahieren oder entfernen
Die Verwendung von Kommentaren in einem Word-Dokument (zusätzlich zum Verfolgen von Änderungen) ist eine gängige Vorgehensweise bei der Überprüfung von Dokumenten, insbesondere wenn es mehrere Prüfer gibt. Es kann Situationen geben, in denen das Einzige, was Sie von einem Dokument benötigen, die Kommentare sind. Angenommen, Sie möchten eine Liste mit Überprüfungsergebnissen erstellen oder Sie haben alle nützlichen Informationen aus dem Dokument gesammelt und möchten einfach unnötige Kommentare entfernen. Möglicherweise möchten Sie die Kommentare eines bestimmten Rezensenten anzeigen oder entfernen.
In diesem Beispiel werden wir uns einige einfache Methoden zum Sammeln von Informationen aus den Kommentaren in einem Dokument und zum Entfernen von Kommentaren aus einem Dokument ansehen. Im Einzelnen behandeln wir Folgendes:
- Extrahieren Sie alle Kommentare aus einem Dokument oder nur die von einem bestimmten Autor.
- Entfernen Sie alle Kommentare aus einem Dokument oder nur von einem bestimmten Autor.
So extrahieren oder entfernen Sie Kommentare
Der Code in diesem Beispiel ist eigentlich recht einfach und alle Methoden basieren auf dem gleichen Ansatz. Ein Kommentar in einem Word-Dokument wird durch ein Comment-Objekt im Aspose.Words-Dokumentobjektmodell dargestellt. Um alle Kommentare in einem Dokument zu sammeln, verwenden Sie die get_child_nodes-Methode, wobei der erste Parameter auf NodeType.COMMENT eingestellt ist. Stellen Sie sicher, dass der zweite Parameter der get_child_nodes-Methode auf true eingestellt ist: Dadurch wird get_child_nodes gezwungen, rekursiv aus allen untergeordneten Knoten auszuwählen, anstatt nur die unmittelbar untergeordneten Knoten zu sammeln.
Um zu veranschaulichen, wie Kommentare aus einem Dokument extrahiert und entfernt werden, führen wir die folgenden Schritte durch:
- Öffnen Sie ein Word-Dokument mit der Document-Klasse
- Holen Sie sich alle Kommentare aus dem Dokument in eine Sammlung
- So extrahieren Sie Kommentare:
- Gehen Sie die Sammlung mit dem foreach-Operator durch
- Extrahieren und listen Sie den Namen des Autors, Datum und Uhrzeit sowie den Text aller Kommentare auf
- Extrahieren und listen Sie den Namen des Autors, Datum und Uhrzeit sowie den Text von Kommentaren auf, die von einem bestimmten Autor verfasst wurden, in diesem Fall dem Autor “ks”
- So entfernen Sie Kommentare:
- Gehen Sie mit dem for-Operator rückwärts durch die Sammlung
- Kommentare entfernen
- Speichern Sie die Änderungen
So extrahieren Sie alle Kommentare
Die get_child_nodes-Methode ist sehr nützlich und Sie können sie jedes Mal verwenden, wenn Sie eine Liste von Dokumentknoten jeglicher Art benötigen. Die resultierende Sammlung verursacht keinen unmittelbaren Mehraufwand, da die Knoten nur dann in dieser Sammlung ausgewählt werden, wenn Sie Elemente darin aufzählen oder darauf zugreifen.
Das folgende Codebeispiel zeigt, wie der Name des Autors, Datum und Uhrzeit sowie der Text aller Kommentare im Dokument extrahiert werden:
So extrahieren Sie Kommentare eines bestimmten Autors
Nachdem Sie Comment-Knoten in einer Sammlung ausgewählt haben, müssen Sie nur noch die benötigten Informationen extrahieren. In diesem Beispiel werden die Initialen des Autors, Datum, Uhrzeit und der Klartext des Kommentars in einer Zeichenfolge zusammengefasst. Sie könnten es stattdessen auch auf andere Weise speichern.
Die überladene Methode, die die Kommentare eines bestimmten Autors extrahiert, ist fast identisch. Sie überprüft lediglich den Namen des Autors, bevor die Informationen zum Array hinzugefügt werden.
Das folgende Codebeispiel zeigt, wie der Name des Autors, Datum und Uhrzeit sowie der Text der Kommentare des angegebenen Autors extrahiert werden:
So entfernen Sie Kommentare
Wenn Sie alle Kommentare entfernen, ist es nicht nötig, durch die Sammlung zu blättern und die Kommentare einzeln zu löschen. Sie können sie entfernen, indem Sie clear in der Kommentarsammlung aufrufen.
Das folgende Codebeispiel zeigt, wie alle Kommentare im Dokument entfernt werden:
Wenn Sie Kommentare selektiv entfernen müssen, ähnelt der Vorgang eher dem Code, den wir zum Extrahieren von Kommentaren verwendet haben.
Das folgende Codebeispiel zeigt, wie Kommentare des angegebenen Autors entfernt werden:
Der wichtigste hier hervorzuhebende Punkt ist die Verwendung des for-Operators. Im Gegensatz zur einfachen Extraktion möchten Sie hier einen Kommentar löschen. Ein geeigneter Trick besteht darin, die Sammlung rückwärts vom letzten Comment zum ersten zu iterieren. Der Grund dafür: Wenn Sie am Ende beginnen und rückwärts gehen, bleibt der Index der vorhergehenden Elemente unverändert und Sie können sich zum ersten Element in der Sammlung zurückarbeiten.
Das folgende Codebeispiel zeigt die Methoden zum Extrahieren und Entfernen von Kommentaren:
So entfernen Sie einen Kommentar zwischen CommentRangeStart und CommentRangeEnd
Mit Aspose.Words können Sie auch Kommentare zwischen den CommentRangeStart- und CommentRangeEnd-Knoten entfernen.
Das folgende Codebeispiel zeigt, wie Text zwischen CommentRangeStart und CommentRangeEnd entfernt wird:
# Open the document.
doc = aw.Document(docs_base.my_dir + "Comments.docx")
commentStart = doc.get_child(aw.NodeType.COMMENT_RANGE_START, 0, True).as_comment_range_start()
commentEnd = doc.get_child(aw.NodeType.COMMENT_RANGE_END, 0, True).as_comment_range_end()
currentNode = commentStart
isRemoving = True
while (currentNode != None and isRemoving) :
if (currentNode.node_type == aw.NodeType.COMMENT_RANGE_END) :
isRemoving = False
nextNode = currentNode.next_pre_order(doc)
currentNode.remove()
currentNode = nextNode
# Save the document.
doc.save(docs_base.artifacts_dir + "WorkingWithComments.remove_region_text.docx")
Kommentarantwort hinzufügen oder entfernen
Die add_reply-Methode fügt eine Antwort auf diesen Kommentar hinzu. Bitte beachten Sie, dass aufgrund der bestehenden Microsoft Office-Einschränkungen nur eine Antwortebene im Dokument zulässig ist. Eine Ausnahme vom Typ InvalidOperationException wird ausgelöst, wenn diese Methode für den vorhandenen Antwortkommentar aufgerufen wird.
Sie können die remove_reply-Methode verwenden, um die angegebene Antwort auf diesen Kommentar zu entfernen.
Das folgende Codebeispiel zeigt, wie man einem Kommentar eine Antwort hinzufügt und die Antwort des Kommentars entfernt:
Lesen Sie die Antwort des Kommentars
Die replies-Eigenschaft gibt eine Sammlung von Comment-Objekten zurück, die unmittelbar untergeordnete Elemente des angegebenen Kommentars sind.
Das folgende Codebeispiel zeigt, wie Sie die Antworten eines Kommentars durchlaufen und diese auflösen: