我正在使用mpdf来动态创建PDF文件,并且文件在浏览器中打开很好,但Adobe给了我一个错误:
Adobe Acrobat Reader DC could not open ‘example-filename.pdf’
because it is either not a supported file type or because the file
has been damaged (for example, it was sent as an email attachment
and wasn’t correctly decoded).
我查看了有关此问题的其他问题(another mpdf + adobe error),并在文本编辑器中查看了pdf.我发现文件的第一部分看起来像这样:
CapstoneDB
%PDF-1.4
%âãÏÓ
删除所有内容到%PDF-1.4(包括选项卡)后,文件在Adobe中打开很好,这很好,除了我需要能够在Adobe中打开生成的pdf而不需要手动摆弄每个代码时间.
这是我的包装函数,用html和css调用mpdf:
include('../mpdf/mpdf.php');
function user_download_pdf($html, $css_file, $filename) {
$mpdf = new mPDF();
$stylesheet = file_get_contents($css_file);
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html,2);
$mpdf->Output($filename, "D");
}
我从不向mpdf提供一个完整的html页面,通常只是一个h3和一个或多个表.也许我需要给mpdf一个完整的html页面,包括< head>,< body>等?有没有办法改变mpdf配置或我在php中调用mpdf的方式,可以摆脱pdf文件开头的html垃圾,这些文件正在解决所有问题?