如何在DSPACE中嵌入PDF查看器

问题描述 投票:0回答:1

如何将PDF查看器嵌入到我的DSPACE实例中。我尝试了许多解决方案,但没有任何效果。 DSPACE官方网站上有很多建议https://wiki.duraspace.org/display/DSPACE/Document+Viewer+Integration没有解决方案具有如何在dspace代码中配置这些查看器的文档。我想要逐步嵌入PDF Viewer的技巧。请帮我解决这个问题。预先感谢。

我通过这些网站进行了研究-https://wiki.duraspace.org/display/DSPACE/Document+Viewer+Integrationhttp://peterpants.blogspot.com/2010/02/document-preview-in-dspace-using-google.html

pdf dspace pdf-viewer
1个回答
1
投票

这取决于您使用的DSpace的版本和UI。我将大致描述将PDF.js嵌入DSpace 6.3 JSPUI的过程。我们已经发布了github上所有必要的代码更改,因此请在那儿查看详细信息。

DSpace使用maven叠加层将本地代码更改与正式发布的代码分开。因此,在下面的描述中,我将使用这些叠加层内的路径。如果我们更改的文件在您的本地代码存储库中不存在,则必须从[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。此类构建项目视图。我希望可以更好地分离问题,但此类会生成一些HTML代码,其中包括列出所有位流的项目视图部分。对于列出的每个文件,我们检查其mime类型是否设置为application/pdf,并为这些文件添加“预览”按钮。预览按钮链接到呈现pdf查看器并加载目标文件的html站点。我们还向默认的“打开/查看”按钮添加了“下载”属性,以确保它不会启动浏览器的另一个PDF查看器,而是下载文件。具有一个称为“预览”的按钮可以打开嵌入的PDF查看器,而有一个“下载”按钮可以将文件下载到用户的计算机,这一点很重要。您可以在DSpace的消息目录中将按钮的名称从“打开/查看”更改为“下载”。最后但并非最不重要的一点是,我们向dspace/modules/jpsui/src/main/webapp/display-item.jsp添加了JavaScript。 JavaScript禁止将PDF查看器作为普通站点加载,但使用JQuery UI将其作为覆盖项加载到项目视图上。然后,我们编写了一个小的CSS文件,可帮助我们在项目视图中放置该叠加层,并在dspace/modules/jspui/src/main/webapp/layout/header-default.jsp中引用该文件。

如上所述,所有这些更改都在github上的DSpace源代码BSD许可证下作为开源发布。

© www.soinside.com 2019 - 2024. All rights reserved.