微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP 使用 TCPDF 创建 PDF 并将其发送到 Angular 前端

如何解决PHP 使用 TCPDF 创建 PDF 并将其发送到 Angular 前端

我在 Angular 中向 PHP 后端发出 POST 请求。后端应创建一个 PDF 并将其发送到前端。 PDF 文件不应保存在后端。

这就是我创建 PDF 的方式:

header('Content-type: application/pdf');
        header('Content-disposition: inline; filename="myfile.pdf"');
        header('Content-transfer-encoding: binary');
        header('Accept-Ranges: bytes');
        $pdf = new TCPDF(); 
        $pdf->SetCreator('Test');
        $pdf->SetAuthor("Test test");
        $pdf->SetTitle("My testtitle");
        $pdf->SetSubject("Testsubject");
        $pdf->SetKeywords("TCPDF,PDF,example,test,guide");
        $pdf->setPrintHeader(false);
        $pdf->setPrintFooter(false);
        $pdf->SetMargins(10,10,10);
        $pdf->SetAutopageBreak(TRUE,PDF_MARGIN_BottOM);
        $pdf->setimageScale(PDF_IMAGE_SCALE_RATIO); 
        $pdf->setLanguageArray($l); 
        $pdf->AliasNbPages();
        $pdf->AddPage();
        $pdf->SetFont("freesans","BI",20);
        $pdf->writeHTML('<div>Test</div>',true,false,'');
        $pdf->Output("myfiles.pdf","I");
        exit();

这就是我在 Angular 中打开它的方式:

const thefile = new Blob([response],{ type: "application/pdf" });
    let url = window.URL.createObjectURL(thefile);
    window.open(url);

这是 Angular 中的请求头:

const headers = new HttpHeaders().set('Content-Type','application/pdf');
    headers.append('Content-disposition','inline; filename="myfile.pdf"');
    headers.append('Content-transfer-encoding','binary');
    headers.append('Accept-Ranges','bytes');
    headers.append('Access-Control-Allow-Origin','*');
    headers.append('Access-Control-Allow-Methods','POST');
    headers.append('Access-Control-Allow-Credentials','true');
    headers.append('Access-Control-Allow-Headers','Content-Type');

我总是返回一个空的 PDF 文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。