gpt4 book ai didi

c# - iTextSharp - PDF 书签未指向页面

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:40 25 4
gpt4 key购买 nike

我构建了一个 TreeView 来显示给定 PDF 文档的书签。

使用 iTextSharp 我在 List 对象中获取书签并使用 Title 值显示在 TreeView 上,没问题。

当我希望 TreeView 节点引用 PDF 文档中的页码时,问题就来了。

某些 PDF 文档具有标题、页面和操作的值,例如:
标题:“扉页”,
页面:“1 XYZ -3 845 1.0”,
Action :“转到”

不过,其他的都是这种格式:
标题:“扉页”,
命名:“G1.1009819”,
Action :“GoTo”

我不知道如何处理这个“命名”值。我尝试浏览文档中的所有链接并将值与链接的目标值进行比较,但没有成功。

有谁知道这个“命名”属性代表什么?

最佳答案

这是一个命名目的地,请参阅 the keyword list一些例子。这是在文档中标记目的地的一种非常常见的方式。

您想对指定的目的地做什么?

是否要 consolidateNamedDestinations() 以便它们不再是命名目的地,而是指向文档中特定位置的链接。

或者您想创建指向指定目的地的链接? (这可能需要更多工作。我认为手头没有示例。)

如果您浏览 the examples ,您会发现我们使用 SimpleNamedDestination 对象检索命名目的地的 LinkActions 几乎与使用 SimpleBookmark 类检索书签的方式相同.

此代码片段为我们提供了 XML 文件形式的书签:

public void createXml(String src, String dest) throws IOException {
PdfReader reader = new PdfReader(src);
HashMap<String,String> map = SimpleNamedDestination.getNamedDestination(reader, false);
SimpleNamedDestination.exportToXML(map, new FileOutputStream(dest),
"ISO8859-1", true);
reader.close();
}

参见 destinations.xml为结果。

代码更简单,因为结构不是嵌套的:每个名称对应一个目的地。

关于c# - iTextSharp - PDF 书签未指向页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29348927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com