我有一个需要阅读DocX文件的所有内容的项目,但我不知道如何获得它。我可以获得的所有事情只是段落列表。我想在文本框中获取数据,这是我的代码:

List<Object> texts = getAllElementFromObject(document.getMainDocumentPart(), P.class);

我试图使用方法 getAllElementFromObject(document.getMainDocumentPart(), CTTextbox.class);

但仍然无法获取文本框数据。

我的方法 getAllElementFromObject():

    public static List<Object> getAllElementFromObject(Object obj, Class<?> toSearch) {
    List<Object> result = new ArrayList<Object>();
    if (obj instanceof JAXBElement) obj = ((JAXBElement<?>) obj).getValue();
    if (obj.getClass().equals(toSearch))
        result.add(obj);
    else if (obj instanceof ContentAccessor) {
        List<?> children = ((ContentAccessor) obj).getContent();
        for (Object child : children) {
            result.addAll(getAllElementFromObject(child, toSearch));
    return result;

看答案

文本框中创建单词看起来像:

<w:pict> <v:shapetype o:spt="202.0" path="m,l,21600r21600,l21600,xe" coordsize="21600,21600" id="_x0000_t202"> <v:stroke joinstyle="miter"/> <v:path gradientshapeok="t" o:connecttype="rect"/> </v:shapetype> <v:shape o:gfxdata="UEsDB..8EAABkcnMvZG93bnJldzAAAAhwUAAAAA" type="#_x0000_t202" style="margin-left:0;margin-top:0;width:186.95pt;height:110.55pt;z-index:251659264;visibility:visible;mso-wrap-style:square;mso-width-percent:400;mso-height-percent:200;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:center;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:400;mso-height-percent:200;mso-width-relative:margin;mso-height-relative:margin;v-text-anchor:top" id="Text Box 2" o:spid="_x0000_s1026"> <v:textbox style="mso-fit-shape-to-text:t"> <w:txbxContent> <w:t>foo</w:t> </w:txbxContent> </v:textbox> </v:shape> </w:pict>

这里相关对象是:

  • org.docx4j.vml.cttextbox.
  • org.docx4j.wml.cdtxbxcontent(可能包含内容控件)
  • 由于Pict以自IntementAccessor以来,您的代码不起作用。

    所以相反,请尝试 https://github.com/plutext/docx4j/blob/master/dc/main/java/org/docx4j/finders/classfinder.java.

  • docx4j java api中的strikethough选项
  • noclassdeyomound尝试使用Grails Controller中的Java类和DocX4j
  • 不能在Wildfly 10和Java 8上使用docx4j
  • docx4j xml如何获得jaxbnodes的“值”
  • Apache Tika:Docx文件通过Java中的REST解析
  • 如何将HTML文件应用于docx4j的标题
  • 与JIRA插件集成DOCX4J的问题
  • 如何使用POI或DOCX4J将HTML文本写入Microsoft Word文档?
  • docx4j用xml中的图片替换文本
  • 使用DOCX4J从DOCX获取所有MailMerge字段
  • 计算机网络——第三章 数据链路层——课后习题答案
  • [无线]无线传输距离预估计算
  • 使用navicat连接mysql报client does not support authentication protocol requested by server解决办法
  • 2021-02-02
  • 注意!Python开发中最容易掉进去的10个坑!你遇到过那些
  • java基础-手把手教你做JDK环境变量配置
  • 十多家大厂Android面试真题锦集干货整理,不吃透都对不起自己
  • 如何整合apache和tomcat
  • 中粮粮油化工厂人员定位解决方案,解决目前化化工厂普遍问题-新导智能
  • 【Scala一】Scala各种符号的含义
  • json插件下载 java_利用json2POJO with Lombok 插件自动生成java类的操作
  • Mac上PDF压缩软件哪款好用?推荐PDF Squeezer ‪4
  • Which are the use of other index.html in a PhoneGap app?
  • Does identifier casing really matter?
  • Xpath - no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id=\"preheader-row-1\"]//tbody/tr/td//a//b"
  • MySql Trigger After Update does not update even when all is correct
  • casting operator - const vs non-const
  • Deconstruct element in array and then join again
  • Single pattern to accommodate multiple regular expression patterns using Java
  • Oracle service bus Invocation Error
  • Is JMS suitable for an online game?
  • Alternative to Lambda?
  • 网站内容人工审核和清理中!本站和cxyzjd等抄袭本站模板的网站没有任何关系,请注意分辨!
    本站在春节期间即将改版,对人工核实过的涉及csdn版权文章做删除处理,
    仅保留摘要,大家可以点击摘要后面的“查看原文”跳转到csdn查看。改版后的网站不再发布任何和csdn有关的文章,谢谢理解。
    由于数据、程序改动较大,加之时间匆忙,本次改版会持续数日,可能会间歇性影响用户访问。
    同时由于csdn自身存在大量版权争议文章,例如机器人账号、转载和不实标注原创问题,本次数据改动均采取人工核实,难免有遗漏和偏差,请来信指正。