Dompdf对中文的支持不够友好,例如默认情况下中文段落不会自动换行。
另外,如果DOM文档中存在远程图片路径,也不能正常加载该图片,生成的pdf中显示 image not found or type unknown
错误。
解决以上两个问题,需要修改Dompdf的源文件。
支持中文换行
修改dompdf库根目录下的 dompdf/src/FrameReflower/Text.php
文件第112行(此处为dompdf 0.8版本,不同版本可能略有不同)。
//原代码
// split the text into words
$words = preg_split('/([\s-]+)/u', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
//修改为
preg_match_all("/./u", $text, $array);
$words = array(0);
加载远程图片
修改dompdf库根目录下的 dompdf/src/Options.php
文件第182行(此处为dompdf 0.8版本,不同版本可能略有不同)。
另外,DOM文档中的图片路径为绝对路径。
//Enable remote file access
private $isRemoteEnabled = true; //默认为false