使用ExtractTextFromPage添加书签
当您根据文本内容添加书签时,使用Pages.Lines属性进行搜索可能会失败,因为返回的文本乱码或顺序混乱,因此基于标题的搜索永远无法匹配。 使用ExtractTextFromPage()提取页面文本,以逻辑顺序读取每一页并为您提供可信赖的字符串用于搜索。
LinkAnnotation类代替。 它内置了支持可点击链接的功能,这些链接可导航到特定页面和位置,并在可用时是推荐的方法。Pages.Lines从文本在页面上的视觉呈现方式重建文本。 当文本以非线性顺序绘制时,当使用自定义字体或编码时,或者当PDF是从HTML或具有复杂布局的第三方工具生成时,这会崩溃。 结果是不完整或混乱的文本,您无法可靠地搜索。
解决方案
1. 使用ExtractTextFromPage()读取每一页
从每页提取原始嵌入文本,而不是视觉重建。 ExtractTextFromPage()以逻辑阅读顺序返回页面内容,使得在不同PDF结构中页眉搜索更加可靠。
2. 循环每一页并为每个独特页眉添加书签
遍历所有页面,以便无论其落在哪里,都不会错过任何部分,并追踪您已看到的页眉,以便每一个仅添加一次书签。 使用"ARTICLE 2"等,它能保证每篇文章有一个书签。
输出是一组指向每个指定标题的书签,即使PDF来自动态HTML源或带有复杂格式。


