Heim > Java > javaLernprogramm > Hauptteil

So erhalten Sie mit Java alle eingefügten und gelöschten Revisionen in Word

WBOY
Freigeben: 2023-04-19 13:58:03
nach vorne
1728 Leute haben es durchsucht

    Wenn die Funktion zum Verfolgen von Änderungen in einem Word-Dokument aktiviert ist, werden alle Bearbeitungsverhalten im Dokument, wie etwa Einfügungen, Löschungen, Ersetzungen und Formatierungsänderungen, aktiviert , wird aufgezeichnet. Eingefügte oder gelöschte Inhalte können mit der in diesem Artikel beschriebenen Methode abgerufen werden.

    Jar vorstellen

    Methode 1

    Manuelle Einführung: Kostenloses Spire.Doc für Java lokal herunterladen, entpacken und suchen Sie die Datei Spire.Doc.jar im lib-Ordner. Öffnen Sie die folgende Schnittstelle in IDEA und führen Sie die JAR-Datei im lokalen Pfad in das Java-Programm ein:

    So erhalten Sie mit Java alle eingefügten und gelöschten Revisionen in Word

    Methode 2

    #🎜 🎜#Über das Maven-Repository herunterladen. Konfigurieren Sie pom.xml wie folgt:

    <repositories>
    <repository>
    <id>com.e-iceblue</id>
    <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
    </repositories>
    <dependencies>
    <dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc.free</artifactId>
    <version>5.2.0</version>
    </dependency>
    </dependencies>
    Nach dem Login kopieren

    Eingefügte und gelöschte Revisionen erhalten

    • Erstellen Sie ein

      Dokument #🎜 🎜#Beispiel und verwenden Sie die Methode Document.loadFromFile() , um ein Beispiel-Word-Dokument zu laden.

    • Erstellen Sie ein
    • StringBuilder

      -Objekt und verwenden Sie dann die Methode StringBuilder.append() , um das aufzuzeichnen Daten.

    • Alle
    • Abschnitte

      und jedes Element unter dem Körper im Abschnitt durchqueren.

    • Verwenden Sie die Methode
    • Paragraph.isInsertRevision()

      , um zu bestimmen, ob es sich bei einem Absatz um eine Einfügungsrevision handelt. Wenn ja, verwenden Sie die Methode Paragraph.getInsertRevision(), um die Einfügungsrevision abzurufen. Verwenden Sie dann die Methode EditRevision.getType() und die Methode EditRevision.getAuthor() , um den Revisionstyp und den Autor abzurufen.

    • Verwenden Sie die Methode
    • Paragraph.inDeleteRevision()

      , um zu bestimmen, ob es sich bei einem Absatz um eine gelöschte Überarbeitung handelt. Wenn ja, verwenden Sie die Methode Paragraph.getDeleteRevision(), um die Löschrevision abzurufen. Verwenden Sie dann die Methode EditRevision.getType() und die Methode EditRevision.getAuthor(), um den Revisionstyp und den Autor abzurufen.

    • Durchlaufen Sie alle Elemente in einem Absatz, um textweite Überarbeitungen zu erhalten.
    • Verwenden Sie die Methode
    • FileWriter.write()

      , um den Inhalt von StringBuilder in ein TXT-Dokument zu schreiben.

    Java

    import com.spire.doc.*;
    import com.spire.doc.documents.Paragraph;
    import com.spire.doc.fields.TextRange;
    import com.spire.doc.formatting.revisions.EditRevision;
    import com.spire.doc.formatting.revisions.EditRevisionType;
    
    import java.io.FileWriter;
    
    public class GetAllRevisions {
    public static void main(String[] args)throws Exception {
    //加载示例 Word 文档
    Document document = new Document();
    document.loadFromFile("test.docx");
    
    //创建一个 StringBuilder 对象以获取插入修订
    StringBuilder insertRevision = new StringBuilder();
    insertRevision.append("INSERT REVISIONS:"+"\n");
    int index_insertRevision = 0;
    
    //创建一个 StringBuilder 对象以获取删除修订
    StringBuilder deleteRevision = new StringBuilder();
    deleteRevision.append("DELETE REVISIONS:"+"\n");
    int index_deleteRevision = 0;
    
    //遍历所有节
    for (Section sec : (Iterable<Section>) document.getSections())
    {
    //遍历section中body下的元素
    for(DocumentObject docItem : (Iterable<DocumentObject>)sec.getBody().getChildObjects())
    {
    if (docItem instanceof Paragraph)
    {
    Paragraph para = (Paragraph)docItem;
    //确定段落是否为插入修订
    if (para.isInsertRevision())
    {
    index_insertRevision++;
    insertRevision.append("Index: " + index_insertRevision + " \n");
    //获取插入修订
    EditRevision insRevison = para.getInsertRevision();
    
    //获取插入的段落文本内容
    String insertRevisionString = para.getText();
    
    //获取插入修订类型
    EditRevisionType insType = insRevison.getType();
    
    insertRevision.append("Type: " + insType + " \n");
    //获取插入修订作者
    String insAuthor = insRevison.getAuthor();
    insertRevision.append("Author: " + insAuthor + " \n" + "InsertPara:"+ insertRevisionString );
    
    }
    
    //确定段落是否为删除修订
    if (para.isDeleteRevision())
    {
    index_deleteRevision++;
    deleteRevision.append("Index: " + index_deleteRevision + " \n");
    EditRevision delRevison = para.getDeleteRevision();
    EditRevisionType delType = delRevison.getType();
    deleteRevision.append("Type: " + delType + " \n");
    String delAuthor = delRevison.getAuthor();
    deleteRevision.append("Author: " + delAuthor + " \n");
    }
    //遍历段落中的元素
    for(DocumentObject obj : (Iterable<DocumentObject>)para.getChildObjects())
    {
    if (obj instanceof TextRange)
    {
    TextRange textRange = (TextRange)obj;
    
    //确定文本范围是否为删除修订,并获取删除修订的类型、作者及删除的文本内容。
    if (textRange.isDeleteRevision())
    {
    index_deleteRevision++;
    deleteRevision.append("Index: " + index_deleteRevision +" \n");
    EditRevision delRevison = textRange.getDeleteRevision();
    EditRevisionType delType = delRevison.getType();
    deleteRevision.append("Type: " + delType+ " \n");
    String delAuthor = delRevison.getAuthor();
    deleteRevision.append("Author: " + delAuthor + " \n");
    String deletetext = textRange.getText();
    deleteRevision.append("Delete text:" + deletetext +" \n");
    }
    
    //确定文本范围是否为插入修订,并获取插入修订的类型、作者及文本内容。
    else if (textRange.isInsertRevision())
    {
    index_insertRevision++;
    insertRevision.append("Index: " + index_insertRevision +" \n");
    EditRevision insRevison = textRange.getInsertRevision();
    EditRevisionType insType = insRevison.getType();
    insertRevision.append("Type: " + insType + " \n");
    String insAuthor = insRevison.getAuthor();
    insertRevision.append("Author: " + insAuthor + " \n");
    String insertText = textRange.getText();
    insertRevision.append("insertText:"+insertText);
    }
    }
    }
    }
    }
    }
    //保存插入修订内容为txt 文件
    FileWriter writer1 = new FileWriter("insertRevisions.txt");
    writer1.write(insertRevision.toString());
    writer1.flush();
    writer1.close();
    
    //保存删除修订内容为txt 文件
    FileWriter writer2 = new FileWriter("deleteRevisions.txt");
    writer2.write(deleteRevision.toString());
    writer2.flush();
    writer2.close();
    }
    }
    Nach dem Login kopieren

    Ergebnisse erhalten:

    # 🎜🎜#

    Das obige ist der detaillierte Inhalt vonSo erhalten Sie mit Java alle eingefügten und gelöschten Revisionen in Word. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage