css - 在 html2pdf 中使用 css floats

标签 css css-float html2pdf

我正在使用 float 将 2 个 div 放置在一起。

<a href="printbox.php">print</a>
<?php ob_start(); ?>
<style>
    #sidedish{
        float: left;

        border: 1px solid black;
        width: 100px;
        height: 100px;
    }
    #maindish{
        float: right;
        width: 200px;
        border: 1px solid black;
        height: 100px;
        text-align: center;
    }

    #container{
        width: 304px;
        height: 100px;
        border: 1px solid black;
    }
</style>

<div id="container">
<div id="sidedish"></div>
<div id="maindish"><div id="box">name</div></div>
</div>
<?php $_SESSION['boxes'] = ob_get_contents(); ?>

这是 printbox 所做的,它只是将缓冲数据呈现为 pdf,但不知何故设置的 float 在此过程中丢失了。

<?php require_once('html2pdf/html2pdf.class.php'); ?>
<?php
$html2pdf = new HTML2PDF('P', 'A4', 'en', true, 'UTF-8', array(0, 0, 0, 0));
$html2pdf->writeHTML($_SESSION['boxes']);

$html2pdf->Output('random.pdf');
?>

它在 html 上工作正常:

enter image description here

但是当我点击打印时它变成了这个:

enter image description here

知道问题出在哪里吗?

最佳答案

就个人经验而言,我认为 HTML2PDF 的输出样式充其量只是深奥的黑魔法科学。主要原因是:

  • 该类仅支持(相对较小的)CSS 样式和选择器子集
  • CSS 兼容性未记录
  • PDF 无法针对 HTML 输入进行调试

公平地说,这不仅是 HTML2PDF 的问题,也是 also for the TCPDF that HTML2PDF uses 的问题.

可能 HTML2PDFTCPDF 的几乎零设置、快速简单的替代界面,关闭更多 CSS 支持 — 但我敢肯定,甚至 TCPDF 也不会正确支持 float

您可以使用的最佳解决方法是将 float div 发送到九十年代:

<table>
    <tr>
        <td><div class="float"> ... </div></td>
        <td><div class="float"> ... </div></td>
    </tr>
</table>

您还可以从公共(public) HTML 中隐藏这种尴尬:

<?php
    $isPdf = (/* condition that tells us we're outputting PDF */) ? true : false;
    if ($isPdf) {
        echo "<table><tr><td>";
    }
?>
<div class="float"> ... </div>
<?php
    if ($isPdf) { 
        echo "</td><td>";
    }
?>
<div class="float"> ... </div>
<?php
    if ($isPdf) {
        echo "</td></tr></table>";
    }
?>

关于css - 在 html2pdf 中使用 css floats,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8776391/

相关文章:

php - HTML2PDF - 下载 pdf 文件并将其显示到页面

css - 转换 - 当我将 html 内容转换为 pdf 时,旋转和缩放不起作用

html - 渐变混合多个图像

javascript - 使用不同的数据并排呈现单个 jsp/html 页面(比较 View )

html - 如何将一个 <div> 元素放在另一个 <div> 之下

css - IE中的 float 问题

css - 用CSS填充剩余的屏幕高度

css - 基金会遵守两个选择

css - IE7 呈现怪异,需要一点帮助

php - HTML2PDF 有模糊的 pdf 输出