在Web应用程序中,是否可以强制在客户端上打印PDF文件?如果浏览器配置为在窗口内打开PDF,我想调用window.print()会起作用,但是某些浏览器(比如我的)被配置为在外部打开PDF.
我有一个带有嵌入式PDF的网页.我的代码看起来像这样:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%">
</embed>
Run Code Online (Sandbox Code Playgroud)
我有这个javascript代码用于打印我的PDF:
function printDocument(documentId) {
//Wait until PDF is ready to print
if (typeof document.getElementById(documentId).print == 'undefined') {
setTimeout(function(){printDocument(documentId);}, 1000);
} else {
var x = document.getElementById(documentId);
x.print();
}
}
Run Code Online (Sandbox Code Playgroud)
执行此代码时,Acrobat插件将打开众所周知的打印对话框.像这样的东西:

两个问题:
关于我的系统的更多信息:
操作系统: Windows XP
浏览器: Internet Explorer 7
PDF插件: Acrobat Reader 9
我正在使用Mozilla的PDF.js预览pdf文件。我用于预览的代码如下:
function previewPDF(url,canvasName){
PDFJS.workerSrc = 'js/pdfJS/pdf.worker.js';
PDFJS.getDocument(url).then(function getPdf(pdf) {
pdf.getPage(1).then(function getPage(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.getElementById(canvasName);
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
}
Run Code Online (Sandbox Code Playgroud)
但是,现在我只需要一个打印按钮就可以打印pdf文件。我已经尝试了很多次,window.print()但是似乎没有用。您有任何想法我该怎么做吗?
先感谢您!!!