为有中文需求的客户提供多渠道中文技术支持.

Mon Oct 28, 2024 6:00 am

有一个段落使用Paragraph 只能获取到文本信息,使用Structure_Document_Tag_Inline 可以取到内容部件内容,有什么方案可以真的获取这个完整的信息吗?包含内容部件的内容

yp280203
 
Posts: 3
Joined: Mon Oct 28, 2024 5:46 am

Mon Oct 28, 2024 6:52 am

以上问题已解决,再追加2个问题。
1.使用 FixedLayoutPage分页时,有一个大表格,跨页的那种,这种FixedLayoutLine就返回空了。有没有方案可以判断这个表格是处理于第几页?比如表格跨了3页 在 3,4,5页,可以能判定出第3,4,5页是表格内容

2.参考官网案例按页读出word时,如附件所示,会报异常,并不是所有的add异常,遇到个别的会报异常,

yp280203
 
Posts: 3
Joined: Mon Oct 28, 2024 5:46 am

Mon Oct 28, 2024 9:55 am

您好,

感谢您的留言。对于问题1,你可以参考以下代码获取表格所处的页码范围。如果还有什么问题,请随时反馈。
Code: Select all
// 创建一个新的文档对象
        Document document = new Document();

        // 从指定文件加载文档内容
        document.loadFromFile("test.docx");

        // 创建一个固定布局文档对象
        FixedLayoutDocument layoutDoc = new FixedLayoutDocument(document);

        int startIndex = 0;
        int endIndex=0;
        int temp=0;
        for (int i = 0; i < layoutDoc.getPages().getCount(); i++)
        {
            FixedLayoutPage page = layoutDoc.getPages().get(i);
            for (int j = 0; j < page.getColumns().getCount(); j++) {
                for (int k = 0; k < page.getColumns().get(j).getRows().getCount(); k++) {
                    //表布局在FixedLayoutRow
                    FixedLayoutRow layoutRow =page.getColumns().get(j).getRows().get(k);
                    if (layoutRow != null) {
                        if (temp==0){
                            startIndex=layoutRow.getPageIndex();
                        }
                        temp++;
                        endIndex=layoutRow.getPageIndex();
                    }
                }
            }

        }
        System.out.println("表格在第"+startIndex+"页到第"+endIndex+"页");

对于问题2,请向我们提供你的完整测试代码和输入文档进行调查。您可以在此处上传或通过电子邮件(Amin.gan@e-iceblue.com)发送给我们。提前感谢。

Sincerely,
Amin
E-iceblue support team
User avatar

Amin.Gan
 
Posts: 281
Joined: Mon Jul 15, 2024 5:40 am

Tue Oct 29, 2024 11:48 am

已通过邮件将代码和文档发送,请排查一下。

yp280203
 
Posts: 3
Joined: Mon Oct 28, 2024 5:46 am

Wed Oct 30, 2024 9:48 am

您好,

感谢您的反馈。我调整了你的代码,然后使用最新版(Spire.Doc for Java版本: 12.10.3)进行测试,结果一切正常。你可以更新版本后再进行尝试,如果还有什么问题,请随时提供反馈。
Code: Select all
 private void parsePageData(int pageIndex, FixedLayoutDocument layoutDoc) {
        // 获取第一个页面
        FixedLayoutPage page = layoutDoc.getPages().get(pageIndex);
        if(page.getColumns().getCount()>0){
         。。。
        }
    }

Sincerely,
Amin
E-iceblue support team
User avatar

Amin.Gan
 
Posts: 281
Joined: Mon Jul 15, 2024 5:40 am

Return to 中文技术支持