使用domPDF和axios在新选项卡中打开PDF

时间:2017-08-08 08:47:50

标签: javascript pdf vue.js dompdf

我的控制器

$pdf = PDF::loadView('pdf', $data);
$pdf->setPaper('a6', 'landscape')->setWarnings(false);
return $pdf->stream();

我在VueJS中的功能

preview() {
        axios.post('/orders/preview')
        .then(function (response) {
          window.open("data:application/pdf," + encodeURI(response.data)); 
        })
        .catch(function (error) {
          // Error callback
        });
      }

但是我得到了这个字符串

%PDF-1.3
1 0 obj
<< /Type /Catalog
/Outlines 2 0 R
/Pages 3 0 R >>
endobj
2 0 obj
<< /Type /Outlines /Count 0 >>
endobj
3 0 obj
<< /Type /Pages
/Kids [6 0 R
10 0 R
13 0 R
18 0 R
21 0 R
...

如果我尝试用window.open打开它,它只会打开一个空页... domPDF是否应该使用->stream()自动打开新标签? 或者如何在JS中使用给定的字符串打开pdf?

1 个答案:

答案 0 :(得分:0)

你可以只返回该PDF的URL,然后将用户重定向到新标签,在那里他可以看到/下载该PDF。

Download and open pdf file using Ajax