通过Apache POI将自定义(扩展)属性添加到docx和段落

MJZSoft

我想使用Apache POI将文件从* .fidus(Fidus Writer)平台转换为* .docx格式,反之亦然。

在* .fidus文件中,有一些属性需要将它们存储为* .docx文件中的扩展或自定义属性,然后在要将其转换回* .fidus时可以检索它们。

因此,我想知道如何使用POI的CustomProperties类或类似的东西向docx文件添加一些属性。还可以通过使用POI在docx文件中的段落中添加自定义属性(扩展属性)吗?

提前致谢。

阿克塞尔·里希特(Axel Richter)

由于*.docx文档是XML基于文档的,因此必须使用POIXMLProperties.CustomProperties,请参阅http://poi.apache.org/apidocs/org/apache/poi/POIXMLProperties.CustomProperties.html

例子:

import java.io.*;
import org.apache.poi.*;
import org.apache.poi.xwpf.usermodel.*;

import org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperty;

import java.util.GregorianCalendar;

public class DocumentProperties {

 public static void main(String[] args) throws IOException {

  XWPFDocument document = new XWPFDocument(new FileInputStream("This is a Test.docx"));

  POIXMLProperties properties = document.getProperties();
  //http://poi.apache.org/apidocs/org/apache/poi/POIXMLProperties.html

  //prints the core property Creator:
  System.out.println(properties.getCoreProperties().getCreator());

  //prints the extendend property Application:
  System.out.println(properties.getExtendedProperties().getApplication());

  //sets a custom property
  POIXMLProperties.CustomProperties customproperties = properties.getCustomProperties();
  if (!customproperties.contains("Test")) {
   customproperties.addProperty("Test", 123);
  }
  CTProperty ctproperty = customproperties.getProperty("Test");
  System.out.println(ctproperty);
  System.out.println(ctproperty.getI4());

  //the above customproperties.addProperty() can only set boolean, double, integer or string properties
  //the CTProperty contains more possibitities
  if (!customproperties.contains("Test Date")) {
   customproperties.addProperty("Test Date", 0);
   ctproperty = customproperties.getProperty("Test Date");
   ctproperty.unsetI4();
   ctproperty.setFiletime(new GregorianCalendar(2016,1,13));
  }
  ctproperty = customproperties.getProperty("Test Date");
  System.out.println(ctproperty);
  System.out.println(ctproperty.getFiletime());


  FileOutputStream out = new FileOutputStream(new File("This is a Test.docx"));
  document.write(out);
 }
}

POIXMLProperties.CustomProperties.addProperty()只能设定布尔,双,整数或字符串的属性,但底层CTProperty包含更多的可能性。

有关信息,CTProperty请参见http://grepcode.com/file/repo1.maven.org/maven2/org.apache.poi/ooxml-schemas/1.1/org/openxmlformats/schemas/officeDocument/x2006/customProperties/CTProperty.java#CTProperty

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义属性添加到SimpleSAMLPhp

来自分类Dev

通过PHP cURL将文档添加到Apache Solr

来自分类Dev

如何通过API C#和模板将自定义变量添加到SendGrid电子邮件

来自分类Dev

通过API将自定义列名称添加到Sendgrid列表

来自分类Dev

将自定义属性添加到Serilog

来自分类Dev

通过Ajax使用自定义滚动条将内容添加到元素

来自分类Dev

如何通过代码将自定义configSections添加到app.config文件

来自分类Dev

组合访问器和更改器逻辑以将自定义属性添加到模型

来自分类Dev

将自定义节点类型添加到Apache Sling WebApp

来自分类Dev

将自定义属性添加到Trello卡

来自分类Dev

我们是否可以通过该应用程序将自定义URL实时添加到info.plist中?

来自分类Dev

Elasticsearch:文档未通过自定义映射添加到索引

来自分类Dev

将自定义字段属性添加到CsvHelper

来自分类Dev

如何通过aws-cdk将自定义指标和警报添加到AWS Lambda函数

来自分类Dev

通过UFW将自定义SSH端口添加到Ubuntu 12.04 LTS

来自分类Dev

通过(?)用户数据将自定义对象(例如,使用DYRateView进行评级)添加到GMSMarker

来自分类Dev

Angular:通过控制器将自定义脚本/ css添加到局部

来自分类Dev

通过PHP cURL将文档添加到Apache Solr

来自分类Dev

apache poi读取自定义属性

来自分类Dev

通过CLI将自定义记录器添加到JBoss EAP 6.2

来自分类Dev

通过API将自定义列名称添加到Sendgrid列表

来自分类Dev

通过Admin SDK将自定义属性/值添加到Google Apps Acount

来自分类Dev

通过Ajax使用自定义滚动条将内容添加到元素

来自分类Dev

将时间戳和自定义名称添加到通过PHP上传的文件中

来自分类Dev

如何将自定义地图和自定义数据添加到Highmaps?

来自分类Dev

想要将自定义Google日历通知添加到通过Google表格创建的活动中

来自分类Dev

我们是否可以通过该应用程序将自定义URL实时添加到info.plist中?

来自分类Dev

当通过 Ajax 检索项目时,将自定义数据属性添加到 Semantic UI Dropdown

来自分类Dev

通过短代码 WordPress 将自定义文本添加到联系表 7

Related 相关文章

  1. 1

    将自定义属性添加到SimpleSAMLPhp

  2. 2

    通过PHP cURL将文档添加到Apache Solr

  3. 3

    如何通过API C#和模板将自定义变量添加到SendGrid电子邮件

  4. 4

    通过API将自定义列名称添加到Sendgrid列表

  5. 5

    将自定义属性添加到Serilog

  6. 6

    通过Ajax使用自定义滚动条将内容添加到元素

  7. 7

    如何通过代码将自定义configSections添加到app.config文件

  8. 8

    组合访问器和更改器逻辑以将自定义属性添加到模型

  9. 9

    将自定义节点类型添加到Apache Sling WebApp

  10. 10

    将自定义属性添加到Trello卡

  11. 11

    我们是否可以通过该应用程序将自定义URL实时添加到info.plist中?

  12. 12

    Elasticsearch:文档未通过自定义映射添加到索引

  13. 13

    将自定义字段属性添加到CsvHelper

  14. 14

    如何通过aws-cdk将自定义指标和警报添加到AWS Lambda函数

  15. 15

    通过UFW将自定义SSH端口添加到Ubuntu 12.04 LTS

  16. 16

    通过(?)用户数据将自定义对象(例如,使用DYRateView进行评级)添加到GMSMarker

  17. 17

    Angular:通过控制器将自定义脚本/ css添加到局部

  18. 18

    通过PHP cURL将文档添加到Apache Solr

  19. 19

    apache poi读取自定义属性

  20. 20

    通过CLI将自定义记录器添加到JBoss EAP 6.2

  21. 21

    通过API将自定义列名称添加到Sendgrid列表

  22. 22

    通过Admin SDK将自定义属性/值添加到Google Apps Acount

  23. 23

    通过Ajax使用自定义滚动条将内容添加到元素

  24. 24

    将时间戳和自定义名称添加到通过PHP上传的文件中

  25. 25

    如何将自定义地图和自定义数据添加到Highmaps?

  26. 26

    想要将自定义Google日历通知添加到通过Google表格创建的活动中

  27. 27

    我们是否可以通过该应用程序将自定义URL实时添加到info.plist中?

  28. 28

    当通过 Ajax 检索项目时,将自定义数据属性添加到 Semantic UI Dropdown

  29. 29

    通过短代码 WordPress 将自定义文本添加到联系表 7

热门标签

归档