DOMPDF与CSS浮动的结合

16

我不确定为什么,但HTML页面可以正常显示,但dompdf却不能使用浮动元素。

代码有2300行,太长了无法在此处贴出....但它全部是内联CSS。

<div style="float:left;"> </div>

我已经尝试了使用样式标签和行内方式来包裹css,但都没有成功。

这是HTML页面:

http://www.ems-complete.com/ccems/ccems_reports/daily_vehicle_check_sheet.php?id=5

这是dompdf链接:

http://www.ems-complete.com/ccems/ccems_reports/form_daily_vehicle_check.php?id=5

我不确定为什么,但是HTML页面可以正常显示,但是dompdf却不能使用浮动布局...

代码有2300多行,太长了无法在此发布...但所有的代码都是行内CSS...


似乎缺少一个 = - Explosion Pills
5个回答

18

浮动支持被引入到0.6.0的代码库中,但默认情况下被禁用,因为它仍在开发中。请确保已将DOMPDF_ENABLE_CSS_FLOAT设置为true以启用它。

从版本0.7.0开始,默认情况下启用了浮动支持。

话虽如此,由于该功能仍在开发中,您不会得到想要的结果。跨越多个页面的浮动对象目前无法正常工作,因为在呈现非浮动内容之前会发生分页。


1
你需要知道的是,你看到的问题之一是因为dompdf当前无法根据浮动元素自适应调整div的大小。因此,对于浮动的div,宽度仍然保持在100%。如果你为每个列指定一个宽度(比如25%),你会得到更好的结果,但是由于浮动元素大于单个页面,布局仍然很复杂。 - BrianS
现在即使将这些 CSS 值删除,也无法清除它。 - Joshua Blevins
1
啊,太好了!很高兴你正在取得进展。希望我有时间帮助你攻克难关,但如果你遇到困境,请告诉我。 - BrianS
1
没错。您需要从 https://github.com/PhenX/php-font-lib 单独下载 php-font-lib。 - BrianS
它尝试了0.8.5版本,但仍无法使用浮点数。 - Pawan Singh
显示剩余7条评论

13

建议使用 display: inline-block; 替代 float。我的项目中使用较旧版本的dompdf,我在 dompdf_config.custom.inc 文件中启用了 DOMPDF_ENABLE_CSS_FLOAT true,但是浮动结果重叠和扭曲。inline-block 是比每次使用 float left 更好更新的方式。访问以下 w3school 链接以获取更多信息。CSS 布局 - inline-block


2
叮叮叮 我们有一个获胜者! - Ted Avery

6

在dompdf_config.inc.php中使用def("DOMPDF_ENABLE_CSS_FLOAT", true);,它可以支持你的css浮动效果。


2

您需要使用 https://github.com/barryvdh/laravel-dompdf 这个插件 dompdf 来实现与Laravel 5相关的IT技术。

同时,您需要在以下路径中更改配置文件:

vendor/barrryvdh/laravel-dompdf/config/dompdf.php

def("DOMPDF_ENABLE_CSS_FLOAT", true);

1
laravel-dompdf 0.6.1似乎无法很好地处理bootstrap的.col-xs-X网格样式,因此我只是强制将它们改为display:inline-block,并更改了宽度以使它们适应@media print布局。 - Nigel Sheridan-Smith
不要更改 vendor 文件夹!当您执行 composer update 时,此更改将消失。这是一种不好的做法。首先发布配置文件。 - Tim van Uum

1
在我的情况下使用 <div style="position: absolute; left: 6px;"></div>
def("DOMPDF_ENABLE_CSS_FLOAT", true);

不起作用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接