文档属性是 word 文档中包含的一些与文档有关的重要信息,如标题、主题、作者、公司、关键词等。通过读取这些信息,我们可以快速识别文档,确定文档类型或来源,以及提高文档储存和组织的效率。需要注意的是,如果文档属性中的作者、公司等个人信息不方便被他人知晓时,我们就需要删除这些属性以保护隐私。本文将介绍如何使用 spire.doc for java 通过程序读取或删除 word 文档中的属性。
安装 spire.doc for java
首先,您需要在 java 程序中添加 spire.doc.jar 文件作为依赖项。您可以从这个链接下载 jar 文件;如果您使用 maven,则可以通过在 pom.xml 文件中添加以下代码导入 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.doc
11.9.5
读取 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 天的临时许可证。