如何在 DSPACE 中嵌入 PDF 查看器
How to embed PDF viewer in DSPACE
如何在我的 DSPACE 实例中嵌入 PDF 查看器。我尝试了很多解决方案,但没有任何效果。 DSPACE官网上有很多建议
https://wiki.duraspace.org/display/DSPACE/Document+Viewer+Integration
没有解决方案包含如何在 dspace 代码中配置这些查看器的文档。
我想要一个嵌入 PDF 查看器的明智步骤。请帮我解决这个问题。提前致谢。
我已经通过这些网站进行了研究 -
https://wiki.duraspace.org/display/DSPACE/Document+Viewer+Integration
http://peterpants.blogspot.com/2010/02/document-preview-in-dspace-using-google.html
这取决于您使用的 DSpace 版本和 UI。我将粗略描述我们如何将 PDF.js 嵌入 DSpace 6.3 JSPUI。我们在 github 上发布了所有必要的代码更改,因此请查看那里了解详细信息。
DSpace 使用 maven overlays 将本地代码更改与正式发布的代码分开。因此,我将在以下描述中使用这些叠加层中的路径。如果我们更改的文件在您的本地代码存储库中不存在,您必须从 [dspace-source]/dspace-jspui/src/main
中的原始位置复制它们。如果您直接在那里更改代码,它应该也可以工作,但我认为这是一种不好的做法。
我们添加了 PDF.js 及其需要的所有文件 dspace/modules/jspui/src/main/webapp/static/pdfjs
。然后我们更改了dspace/modules/jspui/src/main/java/org/dspace/app/webui/jsptag/ItemTag.java
。 class 构建项目视图。虽然我希望有更好的关注点分离,一些 HTML 代码是由这个 class 生成的,包括列出所有比特流的项目视图部分。对于列出的每个文件,我们检查其 mime 类型是否设置为 application/pdf
并为这些文件添加一个 "preview" 按钮。预览按钮链接到呈现 pdf 查看器并加载目标文件的 html 站点。我们还为默认的 "Open/View" 按钮添加了一个属性 "download" ,以确保它不会启动浏览器的另一个 PDF 查看器,而是下载文件。有一个名为 "preview" 的按钮可以打开嵌入式 PDF 查看器,还有一个名为 "download" 的按钮可以将文件下载到用户的计算机,这一点很重要。您可以在 DSpace 的消息目录中将按钮的名称从 "open/view" 更改为 "download"。最后但同样重要的是,我们将 JavaScript 添加到 dspace/modules/jpsui/src/main/webapp/display-item.jsp
。 JavaScript 抑制 PDF 查看器作为普通站点加载,但使用 JQuery UI 将其作为项目视图的覆盖加载。然后我们编写了一个小 CSS 文件,帮助我们在项目视图中定位叠加层并在 dspace/modules/jspui/src/main/webapp/layout/header-default.jsp
.
中引用该文件
如上所述,所有这些更改都在 github.
上根据 DSpace 源代码 BSD 许可证作为开源发布
如何在我的 DSPACE 实例中嵌入 PDF 查看器。我尝试了很多解决方案,但没有任何效果。 DSPACE官网上有很多建议 https://wiki.duraspace.org/display/DSPACE/Document+Viewer+Integration 没有解决方案包含如何在 dspace 代码中配置这些查看器的文档。 我想要一个嵌入 PDF 查看器的明智步骤。请帮我解决这个问题。提前致谢。
我已经通过这些网站进行了研究 - https://wiki.duraspace.org/display/DSPACE/Document+Viewer+Integration http://peterpants.blogspot.com/2010/02/document-preview-in-dspace-using-google.html
这取决于您使用的 DSpace 版本和 UI。我将粗略描述我们如何将 PDF.js 嵌入 DSpace 6.3 JSPUI。我们在 github 上发布了所有必要的代码更改,因此请查看那里了解详细信息。
DSpace 使用 maven overlays 将本地代码更改与正式发布的代码分开。因此,我将在以下描述中使用这些叠加层中的路径。如果我们更改的文件在您的本地代码存储库中不存在,您必须从 [dspace-source]/dspace-jspui/src/main
中的原始位置复制它们。如果您直接在那里更改代码,它应该也可以工作,但我认为这是一种不好的做法。
我们添加了 PDF.js 及其需要的所有文件 dspace/modules/jspui/src/main/webapp/static/pdfjs
。然后我们更改了dspace/modules/jspui/src/main/java/org/dspace/app/webui/jsptag/ItemTag.java
。 class 构建项目视图。虽然我希望有更好的关注点分离,一些 HTML 代码是由这个 class 生成的,包括列出所有比特流的项目视图部分。对于列出的每个文件,我们检查其 mime 类型是否设置为 application/pdf
并为这些文件添加一个 "preview" 按钮。预览按钮链接到呈现 pdf 查看器并加载目标文件的 html 站点。我们还为默认的 "Open/View" 按钮添加了一个属性 "download" ,以确保它不会启动浏览器的另一个 PDF 查看器,而是下载文件。有一个名为 "preview" 的按钮可以打开嵌入式 PDF 查看器,还有一个名为 "download" 的按钮可以将文件下载到用户的计算机,这一点很重要。您可以在 DSpace 的消息目录中将按钮的名称从 "open/view" 更改为 "download"。最后但同样重要的是,我们将 JavaScript 添加到 dspace/modules/jpsui/src/main/webapp/display-item.jsp
。 JavaScript 抑制 PDF 查看器作为普通站点加载,但使用 JQuery UI 将其作为项目视图的覆盖加载。然后我们编写了一个小 CSS 文件,帮助我们在项目视图中定位叠加层并在 dspace/modules/jspui/src/main/webapp/layout/header-default.jsp
.
如上所述,所有这些更改都在 github.
上根据 DSpace 源代码 BSD 许可证作为开源发布