Heim >Java >javaLernprogramm >So erhalten Sie mit Java alle eingefügten und gelöschten Revisionen in Word
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.
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:
#🎜 🎜#Ü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>Eingefügte und gelöschte Revisionen erhalten
Dokument #🎜 🎜#Beispiel und verwenden Sie die Methode Document.loadFromFile() , um ein Beispiel-Word-Dokument zu laden.
-Objekt und verwenden Sie dann die Methode StringBuilder.append() , um das aufzuzeichnen Daten.
und jedes Element unter dem Körper im Abschnitt durchqueren.
, 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.
, 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.
, um den Inhalt von StringBuilder in ein TXT-Dokument zu schreiben.
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();
}
}
# 🎜🎜#
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!