页面大小调整后 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));
}
}
我有文档并更改页面大小
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));
}
}