我正在构建HTML格式的PDF列表.在列表中,我想要包含下载链接和打印按钮/链接.有没有办法在没有用户看到PDF或打开PDF查看器的情况下直接打开PDF的"打印"对话框?
将PDF下载到隐藏的iframe并触发使用JavaScript打印的一些变体?
我有一个PDF文件,我试图通过Javascript打印它.我试过这个嵌入技巧:无声打印嵌入式PDF 然而,打印功能永远不可用,它总是未定义的.
我用这段代码尝试了Iframe技巧:
function printPDF() {
if(document.getElementById("pdfDocument").contentWindow.document.readyState === "complete") {
document.getElementById("pdfDocument").focus();
document.getElementById("pdfDocument").contentWindow.print();
} else {
setInterval(printPDF(), 1000);
}
}
Run Code Online (Sandbox Code Playgroud)
(pdfDocument是iframe的ID)这会弹出打印对话框,但打印空白页.我希望embed标签的工作方式.但为什么打印功能永远不可用?
关于这个主题的大多数帖子都很老了.什么是最好的HTML5/jQuery方法呢?(或者只是普通的JS)
编辑:
这是embed标签的JS代码:
function printPDF() {
alert(document.getElementById("pdfDocument").print);
//Wait until PDF is ready to print
if (typeof document.getElementById("pdfDocument").print == 'undefined') {
setTimeout(function(){printPDF();}, 1000);
} else {
var x = document.getElementById("pdfDocument");
x.print();
}
}
Run Code Online (Sandbox Code Playgroud)
这每秒都会改变"未定义"."打印"选项永远不可用.有任何想法吗?
我们都知道NPAPI将在几个月内完全从Chrome中删除.
什么是Jzebra/QZ Java插件的替代品,可以将原始打印(发送原始ESC/P命令)发送到POS打印机?
是否有Chrome API(HTML5和Javascript)能够取代浏览器与USB或以太网中本地安装的POS打印机之间的通信?
我正在从我的服务器将一个Base64编码的pdf作为字符串加载到我的Javascript中.我的客户端应用程序使用的是AngularJS,HTML5.
我的HTML看起来像这样:
<div id="printablePdfContainer">
<iframe id="printablePdf" width="100%" height="100%"></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
我的Javascript看起来像这样:
var pdfName = 'data:application/pdf;base64,' + data[0].PrintImage;
var embeddedPdf = document.getElementById('printablePdf');
embeddedPdf.setAttribute('src', pdfName);
$scope.printDocument(embeddedPdf);
Run Code Online (Sandbox Code Playgroud)
我的printDocument功能如下所示:
$scope.printDocument = function() {
var test = document.getElementById('printablePdf');
if (typeof document.getElementById('printablePdf').print === 'undefined') {
setTimeout(function(){$scope.printDocument();}, 1000);
} else {
var x = document.getElementById('printablePdf');
x.print();
}
};
Run Code Online (Sandbox Code Playgroud)
printDocument函数取自堆栈溢出中的预先存在的问题(静默打印嵌入式PDF),这是打印嵌入式pdf的答案.但是,这似乎不再起作用了.我总是得到'未定义'
typeof document.getElementById('printablePdf').print === 'undefined'
Run Code Online (Sandbox Code Playgroud)
校验.似乎.print不存在或什么的.
所以,我的问题是:如何使用Javascript在HTML5中打印嵌入式PDF,而无需打开弹出窗口?
问候,菲尔
我使用pdf.js在页面中嵌入单页PDF,我希望能够只打印PDF,而不是整个HTML页面.
这可能吗?
我写了一些生成动态PDF文件的动作.类似于:reports/reportGenerator.action
当我调用reports/reportGenerator?param=dialy
它时会在弹出窗口中打开生成的pdf,然后我可以按打印按钮打开打印机对话框并打印它.
我现在要做的是直接打开打印机对话框.所以当我打电话reports/reportGenerator?param=dialy
和完全生成pdf文件后,打开打印机对话框.那可能吗?(我知道不能跳过打印机对话框)
更多信息:动作是这样的:
sout = response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=\"myReport.pdf\"");
sout.write(pdfBytes);
sout.flush();
sout.close();
Run Code Online (Sandbox Code Playgroud) 我有一个HTML页面,其中包含指向PDF的链接.此PDF将在新窗口中打开.父HTML页面具有File-> Print菜单项.当用户单击"打印"时,我希望能够自动打开PDF并进行打印.印刷部件是我卡住的地方.
任何帮助将非常感激.
谢谢.