从另一个浏览器选项卡或 window 使用 iText 访问 pdf 书签
Access pdf bookmarks from another browser tab or window using iText
我对 itext 比较陌生。我想知道这是否可能。我有一个网络应用程序,其中包含一个显示按钮和 link 到 html 页面上 pdf 书签的书签。单击显示按钮后,pdf 将使用 itext 流式传输到另一个选项卡。一旦流式传输到另一个选项卡,是否可以单击第一个选项卡上的 link 并将 pdf 设置为另一个选项卡中的书签页面?是否必须使用书签集再次流式传输 pdf?
我希望这是有道理的。
谢谢,
格雷格
您当然可以使用 iText 将书签添加到 pdf 文档。
然而显示 pdf 文档与 iText 完全无关。 iText 生成和操作 pdf,甚至从 pdf 中提取信息。但是渲染是它不做的事情。
如果您从浏览器呈现 pdf,您可能正在使用某些特定于浏览器的功能,或者例如 pdf.js(显示 pdf 文档的 javascript 库)。
您是否可以 link 到 pdf 中的特定书签完全取决于查看器是否允许您在给定书签处打开 pdf。
您似乎想要创建一个链接到 PDF 中特定页面的 HTML 文件。这可以使用开放参数来完成。有关开放参数的完整概述,请参阅 Parameters for Opening PDF Files。这是 Adobe 的出版物。它解释了 Adobe Reader 和 Adobe Acrobat 接受哪些开放参数。这些参数可能不适用于在野外发现的所有其他 PDF 查看器。
基本上,您可以像这样创建 URL:http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf#page=5&view=Fit
如果您使用 Adobe Reader 查看该文档,该文档将在第 5 页打开并且该页面适合查看 window。我已经在 Edge 和 Chrome 的 PDF 查看器上测试过了,但它不起作用。但是,如果我在 Firefox 中的 pdf.js 上尝试此操作,它会起作用。
这些是您可以使用的一些参数:
- nameddest=name 跳转到 PDF 中名称为 name 的命名目的地。
- page=pagenum 跳转到页码 pagenum 的页面。此数字表示实际页面,而不是您可能为该页面设置的标签。
- zoom=scale[ left, top] 设置缩放和滚动系数。比例值为 100 表示 100% 缩放; left 和 top 设置在原点为可见页面左上角的坐标系中,与文档旋转无关。
- view=fit[parameter] 根据页面大小设置缩放系数。 fit 的值可以是 Fit、FitH、FitV、FitB、FitBH 或 FitVH。
- viewrect=left,top,width,height 打开文件,使参数指定的矩形可见。
如果您无法控制最终用户的浏览器,我不会在这个要求上投入任何时间。我会简单地告诉给你任务的人,他要求的东西是不可能的。
但是,如果您可以说服最终用户使用像样的 PDF 查看器(最好是接受它的浏览器中的 Adobe Reader 插件),您可以使用 iText 从中提取书签或命名目标PDF 并使用它们在 HTML 中创建目录。我记得我做过一次这样的例子,现在找不到了。我想我删除了它,因为太多人抱怨 "it didn't work." 它曾经在每个人都使用 Adobe Reader 插件的日子里工作,但是现在,周围有太多的 PDF 查看器几乎没有人仍然在浏览器上下文中使用 Adobe Reader。
我对 itext 比较陌生。我想知道这是否可能。我有一个网络应用程序,其中包含一个显示按钮和 link 到 html 页面上 pdf 书签的书签。单击显示按钮后,pdf 将使用 itext 流式传输到另一个选项卡。一旦流式传输到另一个选项卡,是否可以单击第一个选项卡上的 link 并将 pdf 设置为另一个选项卡中的书签页面?是否必须使用书签集再次流式传输 pdf?
我希望这是有道理的。
谢谢, 格雷格
您当然可以使用 iText 将书签添加到 pdf 文档。
然而显示 pdf 文档与 iText 完全无关。 iText 生成和操作 pdf,甚至从 pdf 中提取信息。但是渲染是它不做的事情。
如果您从浏览器呈现 pdf,您可能正在使用某些特定于浏览器的功能,或者例如 pdf.js(显示 pdf 文档的 javascript 库)。
您是否可以 link 到 pdf 中的特定书签完全取决于查看器是否允许您在给定书签处打开 pdf。
您似乎想要创建一个链接到 PDF 中特定页面的 HTML 文件。这可以使用开放参数来完成。有关开放参数的完整概述,请参阅 Parameters for Opening PDF Files。这是 Adobe 的出版物。它解释了 Adobe Reader 和 Adobe Acrobat 接受哪些开放参数。这些参数可能不适用于在野外发现的所有其他 PDF 查看器。
基本上,您可以像这样创建 URL:http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf#page=5&view=Fit
如果您使用 Adobe Reader 查看该文档,该文档将在第 5 页打开并且该页面适合查看 window。我已经在 Edge 和 Chrome 的 PDF 查看器上测试过了,但它不起作用。但是,如果我在 Firefox 中的 pdf.js 上尝试此操作,它会起作用。
这些是您可以使用的一些参数:
- nameddest=name 跳转到 PDF 中名称为 name 的命名目的地。
- page=pagenum 跳转到页码 pagenum 的页面。此数字表示实际页面,而不是您可能为该页面设置的标签。
- zoom=scale[ left, top] 设置缩放和滚动系数。比例值为 100 表示 100% 缩放; left 和 top 设置在原点为可见页面左上角的坐标系中,与文档旋转无关。
- view=fit[parameter] 根据页面大小设置缩放系数。 fit 的值可以是 Fit、FitH、FitV、FitB、FitBH 或 FitVH。
- viewrect=left,top,width,height 打开文件,使参数指定的矩形可见。
如果您无法控制最终用户的浏览器,我不会在这个要求上投入任何时间。我会简单地告诉给你任务的人,他要求的东西是不可能的。
但是,如果您可以说服最终用户使用像样的 PDF 查看器(最好是接受它的浏览器中的 Adobe Reader 插件),您可以使用 iText 从中提取书签或命名目标PDF 并使用它们在 HTML 中创建目录。我记得我做过一次这样的例子,现在找不到了。我想我删除了它,因为太多人抱怨 "it didn't work." 它曾经在每个人都使用 Adobe Reader 插件的日子里工作,但是现在,周围有太多的 PDF 查看器几乎没有人仍然在浏览器上下文中使用 Adobe Reader。