iText(锐普) - 将部分标题与第一行文本保持会导致令人不快的书签
本文关键字:书签 文本 锐普 标题 iText 一行 | 更新日期: 2023-09-27 18:36:02
我正在使用章节和章节对象创建一个PDF文档,所以我得到了漂亮的树形结构书签,这很好,但我也想将"Keep with next"应用于章节和章节标题,这样标题后的第一段就不会被推送到与标题分开的页面。
我通过用我坚持的段落定义每个部分来做到这一点:
void AddSection(Section parentSection, string newSectionTitle)
{
m_heading = new Paragraph(new Chunk(newSectionTitle));
m_section = parentSection.AddSection(indentation, m_heading);
}
然后,当我将第一个块添加到该部分时,我将其添加到该标题中:
void AddTextToSection(string text)
{
if (m_heading != null)
{
m_heading.Add(new Chunk("'n"));
m_heading.Add(new Chunk(text));
m_heading = null;
}
else
{
m_section.Add(new Chunk(text));
}
}
这很好用,除了书签然后包含标题和第一段。
有没有办法告诉章节或小节它应该在文档正文中显示文本 X,但使用文本 Y 定义书签?
原来部分有一个名为 BookmarkTitle 的属性,如果设置了该属性,则指定将用于书签标题的文本。
因此,在我创建 Section 之后,但在我开始向其添加文本之前(通过我的 AddTextToSection() 函数),我从 m_section 中提取文本。标题.块并将其设置为m_section。书签标题。