在办公室DOCX文件元数据中设置“上次修改者”字段--Apache POI 3.9-

时间:2013-08-26 19:03:00

标签: apache-poi apache-tika

使用POIXMLProperties.getCoreProperties()和POIXMLProperties.getExtendedProperties()

我可以设置除“Last Modified By”之外的所有元数据值,有没有办法设置它?

感谢您提前。

1 个答案:

答案 0 :(得分:1)

我正在使用POI 3.10-beta1,它适用于我,即您可以直接在PackageProperties中设置:

import java.util.Date;
import org.apache.poi.openxml4j.opc.*;
import org.apache.poi.openxml4j.util.Nullable;

public class LastModifiedBy {
    public static void main(String[] args) throws Exception {
        OPCPackage opc = OPCPackage.open("lastmodifed.docx");
        PackageProperties pp = opc.getPackageProperties();
        Nullable<String> foo = pp.getLastModifiedByProperty();
        System.out.println(foo.hasValue()?foo.getValue():"empty");
        pp.setLastModifiedByProperty("user"+System.currentTimeMillis());
        pp.setModifiedProperty(new Nullable<Date>(new Date()));
        opc.close();
    }
}