변경 내용 추적을 켜고 Java에서 Word의 변경 내용을 수락 또는 거부하는 방법
25285 단어 wordjavadocxtrackchanges
Java용 Spire.Doc 설치
먼저 Spire.Doc.jar 파일을 Java 애플리케이션의 종속성으로 추가해야 합니다. Spire.Doc.Jar을 직접 다운로드할 수 있습니다. Maven을 사용하는 경우 다음 설정을 사용하여 가져오십시오.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>5.3.16</version>
</dependency>
</dependencies>
Word에서 변경 내용 추적을 켜는 방법
Spire.Doc for Java는 변경 사항 추적 기능을 켜거나 끄는 document.setTrackChanges(boolean) 메서드를 제공합니다. 자세한 단계는 다음과 같습니다.
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
public class setTrackchanges {
public static void main(String[] args) throws Exception {
//Load the sample document
Document document = new Document();
document.loadFromFile("Sample.docx");
//Turn on the track changes function
document.setTrackChanges(true);
//Insert a new paragraph
Paragraph newPara = new Paragraph(document);
TextRange tr= newPara.appendText("• Died: November 30, 1900 in Paris, France");
tr.getCharacterFormat().setBold(true);
document.getSections().get(0).getParagraphs().insert(3,newPara);
//Remove a paragraph
document.getSections().get(0).getParagraphs().removeAt(6);
//Save the document to file
document.saveToFile("Result.Docx",FileFormat.Docx);
}
}
Word에서 모든 개정판 가져오기
Java용 Spire.Doc은 Paragraph.getInsertRevision() 메서드를 제공하여 단락이 새로 추가되었는지 감지한 다음 EditRevision.getType() 메서드를 통해 유형을 가져옵니다.
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import com.spire.doc.formatting.revisions.*;
import java.io.FileWriter;
public class getRevisions {
public static void main(String[] args) throws Exception {
//Load file
Document document = new Document();
document.loadFromFile("Result.docx");
StringBuilder insertRevision = new StringBuilder();
insertRevision.append("Insert revisions:"+"\n");
int index_insertRevision = 0;
StringBuilder deleteRevision = new StringBuilder();
deleteRevision.append("Delete revisions:"+"\n");
int index_deleteRevision = 0;
//Traverse sections
for (Section sec : (Iterable<Section>) document.getSections())
{
//Iterate through the element under body in the section
for(DocumentObject docItem : (Iterable<DocumentObject>)sec.getBody().getChildObjects())
{
if (docItem instanceof Paragraph)
{
Paragraph para = (Paragraph)docItem;
//Determine if the paragraph is an insertion revision
if (para.isInsertRevision())
{
index_insertRevision++;
insertRevision.append("Index: " + index_insertRevision+"\n");
//Get insertion revision
EditRevision insRevison = para.getInsertRevision();
//Get insertion revision type
EditRevisionType insType = insRevison.getType();
insertRevision.append("Type: " + insType+"\n");
//Get insertion revision author
String insAuthor = insRevison.getAuthor();
insertRevision.append("Author: " + insAuthor + "\n");
}
//Determine if the paragraph is a delete revision
else 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");
}
//Iterate through the element in the paragraph
for(DocumentObject obj : (Iterable<DocumentObject>)para.getChildObjects())
{
if (obj instanceof TextRange)
{
TextRange textRange = (TextRange)obj;
//Determine if the textrange is an insertion revision
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");
}
else if (textRange.isDeleteRevision())
{
index_deleteRevision++;
deleteRevision.append("Index: " + index_deleteRevision +"\n");
//Determine if the textrange is a delete revision
EditRevision delRevison = textRange.getDeleteRevision();
EditRevisionType delType = delRevison.getType();
deleteRevision.append("Type: " + delType+"\n");
String delAuthor = delRevison.getAuthor();
deleteRevision.append("Author: " + delAuthor+"\n");
}
}
}
}
}
}
//Save to a .txt file
FileWriter writer1 = new FileWriter("insertRevisions.txt");
writer1.write(insertRevision.toString());
writer1.flush();
writer1.close();
//Save to a .txt file
FileWriter writer2 = new FileWriter("deleteRevisions.txt");
writer2.write(deleteRevision.toString());
writer2.flush();
writer2.close();
}
}
Word에서 추적된 변경 내용 수락 또는 거부
Spire.Doc for Java는 모든 개정을 허용하는 document.acceptChanges() 메서드와 모든 개정을 제거하는 document.rejectChanges() 메서드를 제공합니다.
import com.spire.doc.*;
public class acceptChanges {
public static void main(String[] args) throws Exception {
//Load file
Document document = new Document();
document.loadFromFile("Result.docx");
if (document.hasChanges())
//Accept all changes
document.acceptChanges();
//Reject the changes
//doc.rejectChanges();
//Save the document to file
document.saveToFile("Acceptchangs.docx",FileFormat.Docx_2010);
}
}
Reference
이 문제에 관하여(변경 내용 추적을 켜고 Java에서 Word의 변경 내용을 수락 또는 거부하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alexis92/how-to-turn-on-track-changes-accept-or-reject-changes-in-word-in-java-1ie텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)