使用iText从其他浏览器选项卡或窗口访问pdf书签

时间:2017-09-01 16:46:05

标签: itext bookmarks

我对itext比较新。我想知道这是否可能。我有一个Web应用程序,其中包含一个显示按钮和指向html页面上pdf上的书签的链接。单击显示按钮,pdf将使用itext流式传输到另一个选项卡。一旦将其流式传输到另一个选项卡,是否可以单击第一个选项卡上的链接并将其设置为另一个选项卡中的书签页面? pdf是否必须使用书签集再次流式传输?

我希望这是有道理的。

谢谢, 格雷格

2 个答案:

答案 0 :(得分:2)

您似乎想要创建一个链接到PDF内特定页面的HTML文件。这可以使用Open Parameters完成。有关开放参数的完整概述,请参阅Parameters for Opening PDF Files。这是Adobe的出版物。它解释了Adobe Reader和Adobe Acrobat接受哪些开放参数。这些参数可能不适用于在野外找到的所有其他PDF查看器。

基本上,您可以创建如下网址:http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf#page=5&view=Fit

如果您使用Adobe Reader查看该文档,该文档将在第5页打开,该页面将适合查看窗口。我在Edge和Chrome的PDF查看器上对此进行了测试,但它不起作用。但是,如果我在Firefox中的pdf.js上试一试,那就可以了。

这些是您可以使用的一些参数:

  • nameddest = name 跳转到PDF中具有名称名称的指定目的地。
  • page = pagenum 跳转到页码为pagenum的页面。此数字表示实际页面,而不是您给页面的标签。
  • 缩放=缩放[,左,上] 设置缩放和滚动因子。比例值100表示​​100%缩放;无论文档旋转如何,左侧和顶部都设置在原点位于可见页面左上角的坐标系中。
  • view = fit [,参数] 根据页面大小设置缩放系数。 fit的值可以是Fit,FitH,FitV,FitB,FitBH或FitVH。
  • viewrect = left,top,width,height 打开文件,以便显示使用参数指定的矩形。

如果您无法控制最终用户的浏览器,我不会在此要求中投入任何时间。我只是告诉给你任务的人他要求的东西是不可能的。

但是,如果您可以说服最终用户使用体面的PDF查看器(最好是接受它的浏览器中的Adobe Reader插件),您可以使用iText从PDF中提取书签或命名目的地并使用它们在HTML中创建TOC。我记得我曾经做过一次这样的例子,但我找不到它了。我想我删除了它,因为有太多人抱怨说“它不起作用”。它曾经在每个人都在使用Adobe Reader插件的时代回归,但是现在,有很多PDF浏览器,几乎没有人在浏览器环境中使用Adobe Reader。

答案 1 :(得分:1)

您当然可以使用iText将书签添加到pdf文档中。

有关详细信息,请参阅http://developers.itextpdf.com/content/itext-7-building-blocks/chapter-6-creating-actions-destinations-and-bookmarks

但是,显示pdf文档根本与iText无关。 iText生成和操作pdf,甚至从pdf中提取信息。但渲染是它无法做到的。

如果您要从浏览器呈现pdf,您可能正在使用某些特定于浏览器的功能,或者例如pdf.js(用于显示pdf文档的javascript库)。

您是否可以链接到pdf中的特定书签完全取决于查看者是否允许您在给定书签上打开pdf。