Firefox cross origin PDF

时间:2017-11-16 23:40:51

标签: javascript php pdf firefox

我见过很多主题,但没有一个解决方案有效。

我的应用程序使用PHP创建PDF文件,然后检索JS的路径。之后我创建了一个Iframe并告诉浏览器打印它。

以下代码仅适用于Chrome,但我的POS打印机存在chrome(已记录)的问题,会产生大量纸张。因此解决方案是使用另一个浏览器...所以我的猜测是使用Firefox。

$('#pdf-iframe').attr('src', json.pathToPdf).after(function()
{
    setTimeout(function()
    {
        document.getElementById('pdf-iframe').contentWindow.focus();
        document.getElementById('pdf-iframe').contentWindow.print();
    }, 300);
});

在谷歌浏览器中打开PDF预览版,在Firefox中我收到以下错误:

  

SecurityError:拒绝访问跨源对象

上的属性“print”的权限

到目前为止我没有成功的尝试:

  1. 使用window.frames["pdf-iframe"].focus(); window.frames["pdf-iframe"].print();
  2. 启用/停用pdfjs.disabled
  3. 使用imagick转换为PNG(并且它可以 - 它允许打印)但是收据PDF分为两页(收据只有一页)并且它自动添加页眉和页脚到img(如url) ;页码;等)
  4. 安装“CORSE”扩展程序以删除Cross-Origin
  5. security.fileuri.strict_origin_policy设为FALSE
  6. 将PDF保存为base64_encode,然后使用<iframe src="data:application/pdf;base64,my_binary_data"
  7. 已添加header("Access-Control-Allow-Origin: *");
  8. 安装了最新的Firefox版本
  9. https://sitename更改为https://www.sitename
  10. 更改了文件路径以匹配源代码的路径。代码正在sitename.com/app/files中执行,文件路径为sitename.com/public/pdf-files/mypdf.pdf
  11. 不是从PHP检索文件路径,而是使用header()readfile()函数直接读取文件
  12. 尝试使用按钮打开iframe而不是自动加载/打印

0 个答案:

没有答案