我正在使用Symfony2捆绑KnpSnappyBundle将html twig模板转换为pdf。
KnpSnappyBundle基于Snappy包装,使用wkhtmltopdf。
我的模板使用twitter bootstrap 2.3.2 css,如下所示:
<div class="container">
<div class="row">
<div class="span12">
<h4>TITLE</h4>
</div>
</div>
<div class="row">
<div class="span6" id="customers">
<h5>TITLE</h5>
<p>TEXT</p>
<ul class="unstyled">
<li>LIST ITEM</li>
<li>LIST ITEM</li>
<li>LIST ITEM</li>
<li>LIST ITEM</li>
</ul>
</div>
<div class="span6" id="estimate">
<h5>TITLE</h5>
<ul class="unstyled">
<li>LIST ITEM</li>
<li>LIST ITEM</li>
<li>LIST ITEM</li>
<li>LIST ITEM</li>
</ul>
</div>
</div>
</div>
问题:客户和估计跨度不在同一条线上。 我不知道发生了什么。
答案 0 :(得分:90)
以下是Bootstrap3的解决方案:始终使用.col-xs-n。
原因是wkhtmltopdf在@media块中没有支持css。在bootstrap3中,只有col-xs -n规则在@media块之外。
我已经检查了bootstrap2.3.2 css,似乎spanN规则总是在@media块内。
因此,一个丑陋的解决方案会将所有spanN规则复制到顶级到另一个css文件并将其包含在html中。
答案 1 :(得分:0)
我知道这个问题很旧,但是仍然出现此问题仍然。在最近的 Laravel 5.8 和 Twitter Bootstrap 4.0.0 项目中。我设法使用.col-md .col
并通过执行以下操作获得了完美的结果:
在 config / snappy.php
上添加--viewport-size 1024x768
自变量
'pdf' => array(
'enabled' => true,
'binary' => "C:\wkhtmltopdf\bin\wkhtmltopdf --viewport-size 1024x768",
'timeout' => false,
'options' => array(),
'env' => array(),
)
然后您认为使用.col-md
或.col
不会出现任何问题。
请注意,使用公共路径将 Bootstrap 4
包含到HTML中。
//Laravel
<link rel="stylesheet" href="{{public_path('css/bootstrap4/bootstrap.min.css')}}">
答案 2 :(得分:-31)
如果您只是尝试创建托管网页的PDF,则可以使用Internet Explorer免费创建。
对于需要查看其网页和电子邮件格式的客户而言,我必须这样做才能获得批准。
即使使用自适应CSS,也应尽可能准确地自动创建网页PDF。