html – 使用dompdf生成PDF时文本溢出表

前端之家收集整理的这篇文章主要介绍了html – 使用dompdf生成PDF时文本溢出表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

alt text http://i45.tinypic.com/j6tmdl.png

我正在使用dompdf生成一些PDF,其中包含表格中的一些文本和图像.但是如果文本中有一个大的URL,则URL会一直包装到行尾.所有文本和URL都包含在具有固定宽度和高度的div中,但URL仍然溢出.

在浏览器中呈现的相同HTML似乎没问题.

有什么想法吗?

最佳答案
我相信DOMPDF使用相当有限的字符集来确定如何分割线.现在它只在破折号或空格处分割一条线.因此,类似于示例中的URL将会超出容器的宽度. DOMPDF只是不知道如何分解它.

从dompdf v0.6.0开始,您可以设置文本的样式,以便在任何字符处都可以删除单词,例如:

@H_403_18@

它不像打破特定角色(例如/)那样干净.如果你习惯于破解代码,你可以更优雅地解决问题.打开文本reflower类并修改分割行的正则表达式.正则表达式如下所示:

@H_403_18@preg_split('/([\s-]+)/u',$text,-1,PREG_SPLIT_DELIM_CAPTURE)

修改代码以包含您认为可以为良好的换行符添加的任何额外字符.例如,如果您希望文本中包含极长的网址,则可能会在?,&或甚至/上打开网址:

@H_403_18@$words = preg_split('/([\s-\?\&\/]+)/u',PREG_SPLIT_DELIM_CAPTURE);

在dompdf 0.6.1中,可以在dompdf / include / text_frame_reflower.cls.PHP第86和371行中找到RegEx.在即将推出的0.7.0中,可以在dompdf / src / FrameReflower / Text.PHP第106和402行中找到RegEx. .

修改RegEx的缺点是这会影响所有文本(而不仅仅是URL).

猜你在找的HTML相关文章