gpt4 book ai didi

javascript - 使用 Javascript 从浏览器访问 PDF 书签

转载 作者:行者123 更新时间:2023-11-28 02:22:04 26 4
gpt4 key购买 nike

好的,这是独家新闻。我有一份来自邮局的几乎完全锁定(仅供查看)的 PDF 文件。我必须创建一个 Web 应用程序,用户可以在其中输入书签名称,从而在 PDF 中显示正确的页面。我知道无法以编程方式跳转到特定书签。文档中没有指定目的地,也无法创建它们。有没有一种方法可以通过 JavaScript 以编程方式从 PDF 文档的书签中提取页码?我可以循环浏览书签以找到正确的书签并阅读页码吗?为什么这会如此困难?

最佳答案

我的公司,Atalasoft ,生成 Ajax/asp.net control它有能力做你想做的事。它将允许您显示 PDF,并且在服务器端,提取书签和目标并将它们发送到客户端控件并不难。

本质上,您正在用基于图像的查看器替换 Acrobat(或其他)查​​看器,该查看器在服务器端剖析 PDF 并可以告诉查看器去哪里。

这里是一些用于提取书签的示例代码 - 该代码看起来比您想象的更复杂,这是因为 PDF 中的书签是一棵完整的树。

delegate void BookmarkReceiver(PdfBookmark bookmark);

public void VisitBookmarks(PdfBookmarkList bookmarks, BookmarkReceiver receiever)
{
foreach (PdfBookmark mark in bookmarks)
{
receiver(mark);
VisitBookmarks(mark.Children);
}
}

// here's a matcher:

IList<PdfBookmark> FindBookmarksWithName(string s, PdfBookmarkTree tree)
{
List<PdfBookmark> marks = new List<PdfBookmark>();
VisitBookmarks(tree.Bookmarks, mark => if (mark.Text == s) marks.Add(mark));
return marks;
}

当然,如果您只想找到一个,则可以修改访问者以采用谓词和短路。

现在,如果您有特定的书签,那么要确定您应该转到哪个页面并不像提取页面索引那么简单。这是因为书签不必转到特定页面。书签具有与其关联的操作,并且该操作可以是单击书签时要做的事情的列表。例如,我可以创建一个单击操作,它是两个操作的列表,首先交换第一页和最后一页,然后转到第一页。

因此,您要做的就是获取点击操作并迭代列表并尝试找到“转到查看”操作,然后将目标标识为页面索引并抓取它。

是的,这比您想象的要多得多,因为 PDF 的指定比它需要的更丰富。目标页面可以是索引页面,但也可以是本地文件系统上不同文档中的页面,因此我们确实需要检查每一步都有哪些内容。

关于javascript - 使用 Javascript 从浏览器访问 PDF 书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507464/

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