Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mendapatkan semua semakan yang dimasukkan dan dipadamkan dalam Word menggunakan Java

WBOY
Lepaskan: 2023-04-19 13:58:03
ke hadapan
1728 orang telah melayarinya

    Apabila ciri Track Changes didayakan dalam dokumen Word, semua tindakan pengeditan dalam dokumen, seperti sisipan, pemadaman, penggantian dan perubahan pemformatan, akan direkodkan. Kandungan yang disisipkan atau dipadam boleh diperolehi melalui kaedah yang diterangkan dalam artikel ini.

    Memperkenalkan Jar

    Kaedah 1

    Pengenalan manual: Muat turun Spire.Doc Percuma untuk Java secara setempat, nyahzip dan cari dalam folder lib Spire Fail .Doc.jar. Buka antara muka berikut dalam IDEA dan perkenalkan fail jar dalam laluan tempatan ke dalam program Java:

    Bagaimana untuk mendapatkan semua semakan yang dimasukkan dan dipadamkan dalam Word menggunakan Java

    Kaedah 2

    Muat turun melalui Maven repositori. Konfigurasikan pom.xml seperti berikut:

    <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>
    Salin selepas log masuk

    Dapatkan semakan yang disisipkan dan dipadamkan

    • Buat contoh Dokumen dan gunakan Document.loadFromFile() Kaedah ini memuatkan sampel dokumen Word.

    • Buat objek StringBuilder, dan kemudian gunakan kaedah StringBuilder.append() untuk merekod data.

    • Lintas semua Bahagian dan setiap elemen di bawah badan dalam bahagian.

    • Gunakan kaedah Paragraph.isInsertRevision() untuk menentukan sama ada perenggan ialah semakan sisipan. Jika ya, gunakan kaedah Paragraph.getInsertRevision() untuk mendapatkan semakan sisipan. Kemudian gunakan kaedah EditRevision.getType() dan kaedah EditRevision.getAuthor() untuk mendapatkan jenis semakan dan pengarang.

    • Gunakan kaedah Paragraph.inDeleteRevision() untuk menentukan sama ada perenggan ialah semakan padam. Jika ya, gunakan kaedah Paragraph.getDeleteRevision() untuk mendapatkan semakan padam. Kemudian gunakan kaedah EditRevision.getType() dan kaedah EditRevision.getAuthor() untuk mendapatkan jenis semakan dan pengarang.

    • Gelung semua elemen dalam perenggan untuk mendapatkan semakan seluruh teks.

    • Gunakan kaedah FileWriter.write() untuk menulis kandungan StringBuilder ke dalam dokumen txt.

    Jawa

    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();
    }
    }
    Salin selepas log masuk

    Dapatkan hasil:

    Bagaimana untuk mendapatkan semua semakan yang dimasukkan dan dipadamkan dalam Word menggunakan Java

    Atas ialah kandungan terperinci Bagaimana untuk mendapatkan semua semakan yang dimasukkan dan dipadamkan dalam Word menggunakan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan