您需要使用的JavaScript库分析和呈现PDF文件。您可以使用pdf.js来达到此目的。
,你需要做的大纲:
- 在你的页面
- 开始添加pdf.js库保持在页面的PDF下载链接,但隐藏它
- 加载和渲染在将PDF网址传递给它后,使用pdf.js的pdf。
- pdf.js返回promises,因此您可以在完成加载或呈现PDF后完成额外的工作。
- 现在您取消隐藏下载链接。
我给如何使用pdf.js一个例子,它是如何返回的承诺(点击“运行代码片段”的通知后控制台日志)
我还添加在JS代码中的注释,你可能会添加额外的代码来取消隐藏下载链接。
var url = '//cdn.mozilla.net/pdfjs/helloworld.pdf';
//load the pdf
var loadingTask = PDFJS.getDocument(url);
loadingTask.promise.then(function(pdf) {
console.log('PDF loaded');
//load the page
var pageNumber = 1;
pdf.getPage(pageNumber).then(function(page) {
console.log('Page loaded');
var scale = .5;
var viewport = page.getViewport(scale);
// Prepare canvas using PDF page dimensions
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
// Render PDF page into canvas context
var renderContext = {
canvasContext: context,
viewport: viewport
};
var renderTask = page.render(renderContext);
renderTask.then(function() {
console.log('Page rendered. changing the visibility of download link');
//======================================================================
//SO NOW THE PDF IS LOADED AND RENDERED. HERE YOU NEED TO ADD EXTRA JAVASCRIPT CODE TO SHOW THE DOWNLOAD LINK
document.getElementById("dlink").style.visibility = "visible";
//======================================================================
});
});
}, function (reason) {
// PDF loading error
console.error(reason);
});
#the-canvas {
border:1px solid black;
}
#dlink {
visibility:hidden;
}
<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
<canvas id="the-canvas"></canvas>
<br>
<a href="//cdn.mozilla.net/pdfjs/helloworld.pdf" id="dlink" download>Download</a>
Firefox和Chrome会自动显示出在浏览器中的PDF后下载选项。但你必须从''标签中移除'download'属性。如果有“下载”,浏览器将不会显示它,并会提示下载。 –