如何打印动态生成的pdf dataUrl
How to print dynamically generated pdf dataUrl?
我正在尝试从网页打印动态生成的PDF文件。
var $iframe = $('<iframe>');
$iframe.appendTo('body');
$iframe.load(function() {
var iframe = $iframe[0];
var result = iframe.contentWindow.document.execCommand("print", false, null);
if (!result) iframe.contentWindow.print();
$.remove($iframe);
});
$iframe.attr('src', dataUrl);
execCommand()给出错误信息:
Uncaught SecurityError: Blocked a frame with origin"http://localhost:2520"访问原点为"null"的帧。请求访问的帧具有"http"协议,该帧为access有一个"data"协议。协议必须匹配。
同样,设置src attr会给出警告:
资源被解释为文档,但使用MIME类型application/pdf:
dataUrl看起来像这样:
data:application/pdf;base64,JVBERi0xLjQKJdP...
编辑:@Mike C
我可以创建iframe并显示pdf,但是当我打印时,它是空白的。
<style type="text/css" media="print">
body * { display:none }
iframe#theframe { display:block }
</style>
var $iframe = $('<iframe id="theframe" src="'+dataUrl+'"></iframe>');
$iframe.appendTo('body');
$iframe.load(function() {
setTimeout(function() {
window.print();
}, 1000);
});
尝试使用window.open()
, document.write()
, setTimeout()
var popup = window.open("", "w");
var html = '<!doctype html><html><head></head>'
+ '<body marginwidth="0" marginheight="0" style="background-color: rgb(38,38,38)">'
+ '<embed width="100%" height="100%" name="plugin" src="data:application/pdf;base64,JVBERi0xLjQKJdP..." type="application/pdf">'
+ '<script>setTimeout("print()", 1000)</script></body></html>';
popup.document.write(html);
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- 如何将PDF作为二进制文件传递到window.open()
- 当图像转换为本地存储的DataURL时,EXIF被删除
- javascript.点击显示嵌入的pdf
- Javascript/Jquery Blob not showing Chrome PDF
- 在提交时打开thankyou.html+下载PDF
- 生成pdf或其他非html文件时的错误处理
- how to convert html <div> to pdf
- 将画布转换为pdf:黑色背景
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- 以PDF附件的形式通过电子邮件发送谷歌文档
- 将Meteor中的base64 PDF作为电子邮件附件
- 无法执行文件.退出Acrobat PDF中的操作
- 在浏览器中检测本机或第三方PDF插件
- 下载HTML5/Javascript MOBILE应用程序中的PDF文件
- 下载所选语言的pdf文件
- 将网页转换为具有样式的pdf
- 在Internet Explorer中从二进制文件打开PDF
- 将画布数据URL导出为PDF--如何?DataURL太长,无法传递到服务器
- 如何打印动态生成的pdf dataUrl