Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/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
Compression dompdf-设置FE压缩级别时PDF文件已损坏_Compression_Typo3_Dompdf_Extbase - Fatal编程技术网

Compression dompdf-设置FE压缩级别时PDF文件已损坏

Compression dompdf-设置FE压缩级别时PDF文件已损坏,compression,typo3,dompdf,extbase,Compression,Typo3,Dompdf,Extbase,我有一个extbase扩展,其中我有一个createpdp,在其中我从当前视图创建了一个PDF 看起来有点像这样: $html = $this->view->render(); $dompdf->setPaper('A4', 'portrait'); $dompdf->loadHtml(utf8_decode($html)); $dompdf->render(); $dompdf->stream($this->c

我有一个extbase扩展,其中我有一个createpdp,在其中我从当前视图创建了一个PDF

看起来有点像这样:

    $html = $this->view->render();
    $dompdf->setPaper('A4', 'portrait');
    $dompdf->loadHtml(utf8_decode($html));

    $dompdf->render();
    $dompdf->stream($this->clearString('filename.pdf');
    exit;
效果很好,但如果我在安装工具中将FE压缩级别设置为5,则创建的PDF文件现在已损坏,无法打开

我甚至试图关闭dompdf本身的压缩:

$dompdf->stream($this->clearString('filename.pdf',array("compress" => 0));
但这也不起作用


dompdf 0.8.0

类型3 8.7.1

php 7

感谢:


添加
header('Content-Encoding:gzip')
解决了这个问题。

检查HTTP响应的
Content-Encoding
头。如果设置了压缩,则必须使用正确的压缩方法压缩流文件。如果未设置,则不得对其进行压缩。是否存在不匹配?可能TYPO3发送了一个
Content Encoding:gzip
头,但是dompdf发送了一个未压缩的PDF,当浏览器试图解压缩它时会产生一个错误。我没有收到响应头或类似的消息-但是请求头
Accept Encoding:gzip,deflate,br
但是如果我在.htacces中输入以下内容,我会得到内容编码标题:
Addtype application/pdf.pdf AddOutputFilterByType DEFLATE application/pdf
但是仍然没有任何更改尝试在进行流式处理之前添加一个
标题('Content-Encoding:gzip')
。还要下载流文件,检查它是否以某种方式压缩,并尝试确定压缩算法(可能是gzip)。如果添加头有效,则必须确保如果
接受编码
不包含允许的算法
gzip
,则文件以未压缩方式发送。确保仅当请求
接受编码
-头包含
gzip
时才添加头。否则下载将再次中断。另外,如果gzip不是可接受的编码,则解压缩流式传输结果。