In MS Word, document properties are information which is used to describe or identify Word documents. It has four different types of which standard properties and custom properties are the most common ones. You can set details, such as title, author and subject in standard properties, and you can assign a text, time, or numeric value to custom properties.
In this article, I’ll show you how to add, read and remove the common document properties mentioned above in Word using Java. In order to realize the operations, I’ll use a free third-party library called Free Spire.Doc for Java which is a free and professional Java API that allows you to create, convert, manipulate and print Word documents without using Microsoft Office. You can download the API’s JAR from the link or install it using the following Maven configurations.
<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.free</artifactId>
<version>3.9.0</version>
</dependency>
</dependencies>
Add Document Properties to Word using Java
Add standard document properties to Word
I have an existing Word document, now I’ll set some information including author, subject, title, keywords for it.
The following are some steps to introduce how to do it.
l Load an existing Word document using Document calss
l Set relevant information for standard document properties using Document.getBuiltinDocumentProperties().setTitle() method.
l Finally, save the resulting document using Document.saveToFile(String, FileFormat) method.
The full code snippets are shown below.
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class AddBuiltInDocumentProperties {
public static void main(String[] args) {
//Load Word document
Document document = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx");
//Add built-in document properties to the Word document
document.getBuiltinDocumentProperties().setTitle("Be Glad Your Nose is on Your Face");
document.getBuiltinDocumentProperties().setSubject("an English Poem");
document.getBuiltinDocumentProperties().setAuthor("Jack Prelutsky");
document.getBuiltinDocumentProperties().setCategory("English Poems");
document.getBuiltinDocumentProperties().setKeywords("Nose, Poem");
document.getBuiltinDocumentProperties().setComments("This English poem is interesting.");
//Save the resultant document
document.saveToFile("output/SetBuiltInProperties.docx", FileFormat.Docx_2013);
}
}The following screenshot shows the document properties we added to Word
Add custom document properties to Word
Free Spire.Doc for Java offers Document.getCustomDocumentProperties().add() method to add custom
document properties to Word, and you can find full code sample as below.
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class AddCustomDocumentProperties {
public static void main(String[] args) {
//Load Word document
Document document = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx");
//Add custom document properties to the Word document
document.getCustomDocumentProperties().add("TrackingID", "AB01");
document.getCustomDocumentProperties().add("Checked By", "Wilson");
//Save the resultant document
document.saveToFile("output/SetCustomProperties.docx", FileFormat.Docx_2013);
}
}Output
Read Document Properties in Word using Java
Read standard document properties in Word
import com.spire.doc.Document;
public class ReadBuiltInDocumentProperties {
public static void main(String[] args) {
//Load Word document
Document document = new Document("C:\\Users\\Test1\\Desktop\\SetBuiltInProperties.docx");
//Read built-in properties
System.out.println("Title: " + document.getBuiltinDocumentProperties().getTitle());
System.out.println("Subject: " + document.getBuiltinDocumentProperties().getSubject());
System.out.println("author: " + document.getBuiltinDocumentProperties().getAuthor());
System.out.println("category: " + document.getBuiltinDocumentProperties().getCategory());
System.out.println("keyWords: " + document.getBuiltinDocumentProperties().getKeywords());
System.out.println("comments: " + document.getBuiltinDocumentProperties().getComments());
}
}Output
Read custom document properties in WordFree Spire.Doc for Java supports reading custom document properties by getting the specified custom
document property through index or name using Document.getCustomDocumentProperties().get()
method. The following code sample will show you how to do it.
import com.spire.doc.Document;
import com.spire.doc.DocumentProperty;
public class ReadCustomDocumentProperties {
public static void main(String[] args) {
//Load Word document
Document document = new Document("C:\\Users\\Test1\\Desktop\\SetCustomProperties.docx");
//Read the first custom document property
//DocumentProperty property = document.getCustomDocumentProperties().get(0);
DocumentProperty property = document.getCustomDocumentProperties().get("TrackingID");
System.out.println("TrackingID: " + property.getValue());
}
}Output
Delete Document Properties in Word using Java
Delete standard document properties in Word
You can delete relevant document properties by setting the value of Document.getBuiltinDocumentProperties().setTitle()
method as null.
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class DeleteBuiltInDocumentProperties {
public static void main(String[] args) {
//Load Word document
Document document = new Document("C:\\Users\\Test1\\Desktop\\SetBuiltInProperties.docx");
//Remove built-in properties by setting the value to null
document.getBuiltinDocumentProperties().setTitle("");
document.getBuiltinDocumentProperties().setSubject("");
document.getBuiltinDocumentProperties().setAuthor("");
document.getBuiltinDocumentProperties().setCategory("");
document.getBuiltinDocumentProperties().setKeywords("");
document.getBuiltinDocumentProperties().setComments("");
//Save the resultant document
document.saveToFile("output/RemoveBuiltInProperties.docx", FileFormat.Docx_2013);
}
}Delete custom document properties in Word
You can also remove custom document properties by specifying its name using Document.getCustomDocumentProperties().remove() method.
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class DeleteCustomDocumentProperties {
public static void main(String[] args) {
//Load Word document
Document document = new Document("C:\\Users\\Test1\\Desktop\\SetCustomProperties.docx");
//Remove specific custom property by name
document.getCustomDocumentProperties().remove("TrackingID");
document.getCustomDocumentProperties().remove("Checked By");
//Save the resultant document
document.saveToFile("output/RemoveCustomProperties.docx", FileFormat.Docx_2013);
}
}