Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS打印pdf文件_Javascript - Fatal编程技术网

Javascript JS打印pdf文件

Javascript JS打印pdf文件,javascript,Javascript,我尝试用javaScript打印pdf文件。 我从服务器获取文件的url var iframe = document.createElement('iframe'); document.body.appendChild(iframe); iframe.style.display = 'none'; iframe.src = urlBaseImage + 'Report//' + result;

我尝试用javaScript打印pdf文件。 我从服务器获取文件的url

var iframe = document.createElement('iframe');
                document.body.appendChild(iframe);

                iframe.style.display = 'none';
                iframe.src = urlBaseImage + 'Report//' + result;
                iframe.focus();
                iframe.contentWindow.print();
但他给了我一个空页面,我检查了网址,它确实是正确的。 我能做什么?
谢谢

您可以使用这个库Print.js:

用它打印PDF文件非常容易

只需将PDF文件url传递给
printJS()
函数

例如:


printJS('docs/my_pdf_file.pdf')

这里是一个类似问题的答案,也许这有帮助,或者在尝试打印之前,PDF是否成功加载到
?如果您只需在broswer的地址栏中输入PDF URL,PDF是否作为页面加载?如果前两个问题回答为“否”,那么您如何确认URL是否正确?另一方面,从Chrome 46开始,除非其
沙盒属性具有值
允许模式
,否则将被阻止在
中。请参阅此答案欢迎使用堆栈溢出!虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
 function printDisclosureDocument() {
  var doc = document.getElementById('pdfDocument');
 if (doc == 'undefined' || doc == null) {
    var pdfbox = document.createElement('embed');
    pdfbox.type = 'application/pdf';
    pdfbox.src = 'ShowPDF.aspx?refid=' + $('#MainContent_hdnRefId').val();
    pdfbox.width = '1';
    pdfbox.height = '1';
    pdfbox.id = 'pdfDocument';
    document.body.appendChild(pdfbox);
 }

if (doc != null && doc != 'undefined') {
    //Wait until PDF is ready to print    
    if (typeof doc.print === 'undefined') {
      setTimeout(function () { printDisclosureDocument(); }, 500);
    } else {
      doc.print();
    }
 }
 else {
         setTimeout(function () { printDisclosureDocument(); }, 500);
     }
 }