使用 javascript (docx-js) 修改 .docx TOC 的“样式”

问题描述 投票:0回答:1

问题:

按照本教程,https://docx.js.org/#/usage/table-of-contents,我想做以下两件事:

  1. 更改表格中条目的字体和大小,因为默认值
    Times New Roman - 10
    太小了。
  2. 删除条目和页码中的“前导点”:
    a.......1
    a       1

我尝试过的(没有成功):

  1. 我所有的条目都是基于

    Heading1
    ,所以他们的级别是1。
    stylesWithLevels: [new StyleLevel("Style", 1)]
    。这不会产生任何变化。

  2. entryAndPageNumberSeparator: "\t"
    给出前导点 (
    a.......1
    ),而
    entryAndPageNumberSeparator: " "
    给出
    a 1
    。我尝试了其他组合,例如
    entryAndPageNumberSeparator: " \t"
    ,但无济于事。似乎只考虑了第一个字符。

这两个都使用有效的 TOC 进行了单独测试(根据上述教程进行了修改):

new TableOfContents("Example", {
  hyperlink: true,
  headingStyleRange: "1-1",
}),
javascript node.js docx
1个回答
0
投票

我知道这个问题不是最近才出现的,但我花了 3 个小时试图解决这个问题,终于找到了解决方案。也许这对某人有用!

这里有两个单独的主题:

  1. 更改文本样式: stylesWithLevels 不会更新文本样式。您需要创建一个类似TOC1的样式并修改它;它将应用于目录的第一级。 TOC2为第二级,依此类推。

paragraphStyles: [
    {
        id: "TOC1",
        name: "toc 1",
        basedOn: "Heading1",
        next: "Heading1",
        quickFormat: true,
        run: {
            color: "000000",
            size: 40,
        },
    },
]

  1. 删除文本和页码之间的“点”分隔符: 为此,您需要修改目录所在段落的列表:

new Paragraph({
    children: [
        new TableOfContents("Summary", {
            hyperlink: false,
            headingStyleRange: "1-1",
            entryAndPageNumberSeparator: "\t",
        }),
    ],
    tabStops: [
        {
            type: TabStopType.RIGHT,
            position: TabStopPosition.MAX,
            leader: TabStopItem.NONE
        },
    ],
})

© www.soinside.com 2019 - 2024. All rights reserved.