首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MS Word add-in Javascript API中获取列表样式类型

在MS Word add-in Javascript API中获取列表样式类型
EN

Stack Overflow用户
提问于 2019-12-08 17:22:54
回答 2查看 308关注 0票数 0

我正在尝试使用Word add-in Javascript API来打印文档中列表的级别和样式类型。

我使用了以下代码:

代码语言:javascript
复制
    Word.run(function (context) {

        var range = context.document.getSelection();
        var paragraphs = context.document.body.paragraphs.load("items");
        var lists = [];
        return context.sync()
            .then(function () {
                for (var i = 0; i < paragraphs.items.length; i++) {
                    if (paragraphs.items[i].isListItem) {
                        lists.push(paragraphs.items[i].listItem.load(['level', 'listString']));
                    }
                }
            })
            .then(context.sync)
            .then(function () {
                for (var i = 0; i < lists.length; i++) {
                    range.insertText(lists[i].level.toString(), "End");
                }
            }).then(context.sync)

    })

这正确地给出了列表的级别,但listString给出的是列表编号,而不是它的类型,即对于1. This is a list item,它将返回1.。我尝试在Word.List类中使用levelTypes,但它只返回数字、项目符号或图片。我想要特定的类型,如“罗马”|“阿拉伯语”|“字母”|“实心”|“空心”等...

有API setLevelBulletsetLevelNumbering可以设置这些值,但找不到任何允许读取的API。

我尝试将其转换为OOXML,但它也没有给出所使用的列表样式的类型。

我可以使用pypandoc库在python中做到这一点。它将文档转换为HTML,然后我可以解析ul和ol标记来查找它们的类型。在Word插件中有什么方法可以做到这一点吗?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2019-12-09 05:21:26

这两个Word对象模型(COM或JavaScript)都不提供此信息。Word不是超文本标记语言,也不会从ol/ul的角度“思考”--所有列表都只是(9级)列表,每一级都有一组特定的字符(或者没有)作为段落的“前缀”。

有必要编写自己的代码来分析listString,或者使用执行此操作的库。可能基于Unicode值。

票数 0
EN

Stack Overflow用户

发布于 2020-04-29 14:50:38

我尝试将其转换为OOXML,但它也没有给出所使用的列表样式的类型。

OOXML提供了您需要的所有信息。Document.xml在标记为listItem的段落中包含listId。它引用了numbering xml文件,该文件包含特定列表上的信息及其在每个级别上的格式。ListId:s指向编号文件末尾的抽象块,它指向实际的格式定义。

不是100%确定你能不能用段落styleId指出格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59234022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档