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 定义书签?

iText(锐普) - 将部分标题与第一行文本保持会导致令人不快的书签

原来部分有一个名为 BookmarkTitle 的属性,如果设置了该属性,则指定将用于书签标题的文本。

因此,在我创建 Section 之后,但在我开始向其添加文本之前(通过我的 AddTextToSection() 函数),我从 m_section 中提取文本。标题.块并将其设置为m_section。书签标题。