文档属性是 Word 文档中包含的一些与文档有关的重要信息,如标题、主题、作者、公司、关键词等。通过读取这些信息,我们可以快速识别文档,确定文档类型或来源,以及提高文档储存和组织的效率。需要注意的是,如果文档属性中的作者、公司等个人信息不方便被他人知晓时,我们就需要删除这些属性以保护隐私。本文将介绍如何使用 Spire.Doc for Java 通过程序读取或删除 Word 文档中的属性。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从这个链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>12.11.0</version>
</dependency>
</dependencies>
读取 Word 文档中的内置属性和自定义属性
Word 文档中有两种类型的属性:内置属性和自定义属性。内置属性是一些预定义名称和类型的属性,而自定义属性是可以自定义名称、类型和值的属性。读取这两种文档属性的详细操作步骤如下:
- 创建 Document 的对象。
- 使用 Document.loadFromFile() 方法载入 Word 文档。
- 使用 Document.getBuiltinDocumentProperties() 方法和 Document.getCustomDocumentProperties() 方法获取文档所有内置属性和自定义属性。
- 使用 BuiltinDocumentProperties 类下的方法获取每个内置属性。
- 使用 CustomDocumentProperties 类下的方法,循环遍历所有自定义属性以获取每个自定义属性的名称和值。
- Java
import com.spire.doc.BuiltinDocumentProperties;
import com.spire.doc.CustomDocumentProperties;
import com.spire.doc.Document;
public class GetDocumentProperties {
public static void main(String[] args) {
//创建Document的对象
Document document = new Document();
//载入Word文档
document.loadFromFile("C:/示例.docx");
//创建StringBuilder的对象
StringBuilder properties = new StringBuilder();
//获取所有内置属性和自定义属性
BuiltinDocumentProperties builtinDocumentProperties = document.getBuiltinDocumentProperties();
CustomDocumentProperties customDocumentProperties = document.getCustomDocumentProperties();
//获取每个内置属性
String title = builtinDocumentProperties.getTitle();
String subject = builtinDocumentProperties.getSubject();
String author = builtinDocumentProperties.getAuthor();
String manager = builtinDocumentProperties.getManager();
String category = builtinDocumentProperties.getCategory();
String company = builtinDocumentProperties.getCompany();
String keywords = builtinDocumentProperties.getKeywords();
String comments = builtinDocumentProperties.getComments();
//设置文本展示格式
String builtinProperties = String.format("内置属性:\r\n标题:" + title
+ "\r\n主题:" + subject + "\r\n作者:" + author
+ "\r\n主管:" + manager + "\r\n单位:" + company
+ "\r\n类别:" + category + "\r\n关键词:"+ keywords
+ "\r\n备注:" + comments
);
//将内置属性添加到StringBuilder的对象中
properties.append(builtinProperties);
//获取每个自定义属性
properties.append("\r\n\r\n自定义属性:");
for (int i = 0; i < customDocumentProperties.getCount(); i++) {
String customProperties = String.format("\r\n" + customDocumentProperties.get(i).getName() + ":" + document.getCustomDocumentProperties().get(i).getValue());
//将自定义属性添加到StringBuilder的对象中
properties.append(customProperties);
}
//输出文档属性
System.out.println(properties);
}
}
删除 Word 文档中的内置属性和自定义属性
内置文档属性可以通过将值设置为空值来将其删除,而自定义文档属性则可以使用 CustomDocumentProperties.get().getName() 方法获取其名称,再用 CustomDocumentProperties.remove() 方法来根据其名称将其删除。详细操作步骤如下:
- 创建 Document 的对象。
- 使用 Document.loadFromFile() 方法载入 Word 文档。
- 使用 Document.getBuiltinDocumentProperties() 方法和 Document.getCustomDocumentProperties() 方法获取文档所有内置属性和自定义属性。
- 使用 BuiltinDocumentProperties 类下的方法将每个内置属性的值设置为空值,从而将其删除。
- 使用 CustomDocumentProperties.getCount() 方法获取自定义属性的数量。
- 循环遍历自定义属性,使用 CustomDocumentProperties.get().getName() 方法获取其名称,然后使用 CustomDocumentProperties.remove() 方法根据名称删除每个自定义属性。
- 使用 Document.saveToFile() 方法保存文档。
- Java
import com.spire.doc.BuiltinDocumentProperties;
import com.spire.doc.CustomDocumentProperties;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class RemoveDocumentProperties {
public static void main(String[] args) {
//创建Document的对象
Document document = new Document();
//载入Word文档
document.loadFromFile("C:/示例.docx");
//获取所有内置属性和自定义属性
BuiltinDocumentProperties builtinDocumentProperties = document.getBuiltinDocumentProperties();
CustomDocumentProperties customDocumentProperties = document.getCustomDocumentProperties();
//将每个内置属性的值设置为空值,从而将其删除
builtinDocumentProperties.setTitle("");
builtinDocumentProperties.setSubject("");
builtinDocumentProperties.setAuthor("");
builtinDocumentProperties.setManager("");
builtinDocumentProperties.setCompany("");
builtinDocumentProperties.setCategory("");
builtinDocumentProperties.setKeywords("");
builtinDocumentProperties.setComments("");
//获取自定义属性的数量
int count = customDocumentProperties.getCount();
//循环遍历所有自定义属性
for (int i = count; i > 0; i-- ){
//获取指定自定义属性的名称
String name = customDocumentProperties.get(i-1).getName();
//根据名称删除该自定义属性
customDocumentProperties.remove(name);
}
//保存文档
document.saveToFile("删除文档属性.docx", FileFormat.Auto);
document.dispose();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。