页面大小调整后 table 内容出现问题

Problem with table of contents after page resize

我有文档并更改页面大小

builder.PageSetup.PageWidth = ConvertUtil.MillimeterToPoint(219.1);
builder.PageSetup.PageHeight = ConvertUtil.MillimeterToPoint(285.7);

文档有 Table 的内容,但在改变大小后放错了 wrong sized TOC

有什么关于如何放置正常目录全页宽度的建议吗?

尝试使用不同的文档。同样的问题。

目录的宽度由目录样式中的制表位定义。因此,在增加页面宽度后,您还相应地增加了 TOC 样式制表位的大小。请看以下代码:

Document doc = new Document(@"C:\Temp\in.docx");
doc.FirstSection.PageSetup.PageWidth = doc.FirstSection.PageSetup.PageWidth + 200;
UpdateTocStyles(doc);
// Update fields to rebuild the TOC.
doc.UpdateFields();
doc.Save(@"C:\Temp\out.docx");

private void UpdateTocStyles(Document doc)
{
    // List of all TOC styles.
    StyleIdentifier[] tocStyles = new StyleIdentifier[]
    {
        StyleIdentifier.Toc1,
        StyleIdentifier.Toc2,
        StyleIdentifier.Toc3,
        StyleIdentifier.Toc4,
        StyleIdentifier.Toc5,
        StyleIdentifier.Toc6,
        StyleIdentifier.Toc7,
        StyleIdentifier.Toc8,
        StyleIdentifier.Toc9
    };

    // Calculate width of the page without left and right margins.
    double pageWidth = doc.FirstSection.PageSetup.PageWidth - doc.FirstSection.PageSetup.RightMargin - doc.FirstSection.PageSetup.LeftMargin;
    // Reset tab stops in TOC styles.
    foreach (StyleIdentifier tocStyleIdentifier in tocStyles)
    {
        Style tocStyle = doc.Styles[tocStyleIdentifier];
        tocStyle.ParagraphFormat.TabStops.Clear();
        tocStyle.ParagraphFormat.TabStops.Add(new TabStop(pageWidth, TabAlignment.Right, TabLeader.Dots));
    }

}