【发布时间】:2019-02-28 01:04:21
【问题描述】:
我想改进我的脚本,以便在用户将鼠标移动到模板上的对象上时为每个对象设置 PDF 封面。
实际流程:
到目前为止,我可以根据带有一些附加字段的对象上传.pdf和.epub文件格式:title,language ...
PDF 存储在我的项目中的media 目录中。
在主页面中,我会像这样显示所有对象:
正如您在每个出版物的末尾看到的那样,有一个glyphicon,到目前为止,它可以在另一个选项卡中显示对象 PDF 文件。
预期的想法:
我想知道是否有办法显示带有 PDF 文件的窗口。最好只显示第一个 PDF 页面,以便为每个对象定义一个封面。
在我的 HTML 文件中,我有这一行可以让我的 PDF 显示到另一个选项卡中:
<td class="col-md-1"><a id="download-image_{{ document.id }}" href="http://localhost:8000/media/{{ document.upload }}"><span class="glyphicon glyphicon-blackboard"></span></a></td>
我假设我需要处理这一行并从pdf.js 添加javascript,以便仅获取第一页并将其显示为图片。
我阅读了 PDF.js 文档,希望获得一些帮助以显示我的第一个 PDF 页面。 PDF.js 中的文档和示例是杂项,但我不知道如何做到这一点。
编辑:
感谢 Kedas mendi,根据他的回答,这就是我所拥有的。但我没有克服显示我的 pdf。
在我的 html 文件中,我有一个表格:
<script src="https://mozilla.github.io/pdf.js/build/pdf.js"></script>
<script src="../static/freepub/js/customPdf.js"></script>
<table>
<td class="col-md-1">
<canvas class="the-canvas"><a href="http://localhost:8000/media/{{ document.upload }}"><span class="glyphicon glyphicon-blackboard"></span></a></canvas>
</td>
</table>
还有我的 customPdf.js 文件:
pdfjsLib.getDocument('http://localhost:8000/media/media/loremipsum.pdf').then(function(pdf) {
pdf.getPage(1).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
});
page.render(renderContext);
});
到目前为止,getDocument() 指向一个特定的 pdf 文件,但它最后会是一个 django 变量。
无论如何,我不显示任何 PDF 文件
【问题讨论】:
-
您为此使用 pdf.js,无需后端。你可以使用 js 做任何事情
-
好的,我得看看我怎么能做到这一点^^
-
mozilla.github.io/pdf.js,他们的网站,例如和东西
-
当你没有javascript知识时不容易,但谢谢你;)但是,如果有人可以帮助我解决我现有的代码^^
标签: javascript jquery ajax pdf pdf.js