HTML2PDF生成损坏的文件

时间:2013-07-03 10:18:12

标签: php pdf html2pdf

我正在使用HTML2PDF(http://html2pdf.fr/)从网页生成PDF文件。但是,我有一个奇怪的错误:生成的文件可以使用“预览”Mac工具完美显示(或者只是在选择下载的PDF文件时触摸空格键),但是当我尝试打开文件时使用Adobe Acrobat Pro,将显示以下错误消息:

Adobe reader could not open "file.pdf" because it is either not a support file type or because the file has been damaged (for example, it was sent as email attachment and was'nt correctly decoded).

以下是我如何生成PDF内容和PDF文件本身:

$content = '<page backtop="12mm" backbottom="12mm" backleft="8mm" backright="8mm" style="font-size: 10pt;">
                <h1>MyTitle</h1>
                <br>
                <table style="width: 100%;">
                    <tr>
                        <td style="width: 25%;"></td>
                        ....
                    </tr>
                </table>
            </page>';

$html2pdf = Yii::app()->ePdf->HTML2PDF('P','A4','en',true,'utf-8');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->WriteHTML($content);
$html2pdf->Output($outputname , EYiiPdf::OUTPUT_TO_DOWNLOAD );

对可能发生的事情有任何想法?也许我错过了关于格式或文件编码的一些内容?我尝试了不同的编码,但似乎没有解决问题......

提前感谢您的时间和精力! :)

1 个答案:

答案 0 :(得分:0)

解决!在处理了这个之后,我决定用纯文本编辑器打开PDF文件,我发现用于生成文件的PHP页面默认包含一个页眉和一个页脚(我是使用Yii框架),导致在PDF文件中“打印”HTML页眉和页脚代码......有没有人遇到过同样的问题,解决问题的方法是打开页面的控制器文件(' protected / controllers / myPageController.php')并更改以下行:

$this->render('index');

通过这个:

$this->renderPartial('index');

现在一切正常! ^ _ ^