DOMPDF 更改 html 元素的位置

Posted

技术标签:

【中文标题】DOMPDF 更改 html 元素的位置【英文标题】:DOMPDF change the html elements places 【发布时间】:2019-04-12 13:36:12 【问题描述】:

我正在使用 laravael,我有一个集成了 CSS 的 html 视图。我想转换成PDF。如果我打开视图(如果我通过我的文档或通过我的应用程序中的链接打开它并没有问题)它工作正常,一切看起来都很好。但是,如果我得到该文件并使用 dompdf 生成 PDF,当我打开它时,背景的 css 和图像在它们的位置,但文本会改变位置并具有另一个大小。

这是我将其转换为 PDF 的方法

    $file = file_get_contents("../resources/views/panel/historial/pdfs/otros.html");

    $dompdf = new DOMPDF();
    $dompdf->loadHtml($file);
    //$dompdf->load_html_file($html);
    $dompdf->render();
    $dompdf->stream("otros.pdf", array("Attachment" => 0));

    return $dompdf;

enter image description here

【问题讨论】:

【参考方案1】:

我认为这种方式不起作用,除非 DOMPDF-Renderer 没有完整的 CSS 功能。

https://github.com/dompdf/dompdf/wiki/CSSCompatibility

这里是支持的元素列表。因此,在您的情况下,我建议您渲染一个新模板并为您的 PDF 使用不同的样式。

另一个很好的解决方案是wkhtmltopdf,它有更好的支持,但它是一个命令行工具,您必须通过 php 调用,或者如果您不需要 PHP,则直接从命令行运行它。

https://wkhtmltopdf.org/

【讨论】:

以上是关于DOMPDF 更改 html 元素的位置的主要内容,如果未能解决你的问题,请参考以下文章

根据地理位置权限更改 HTML 元素的可见性 [重复]

如何在html对象元素中更改svg位置的背景颜色[重复]

如何在 woocommerce 的注册页面中更改 HTML 表单元素的顺序/位置

如果元素超过页面高度,dompdf 分页符?

Jquery可排序“更改”事件元素位置

如何拖动 UIView 元素并更改位置?