如何在 dompdf 中应用引导样式
Posted
技术标签:
【中文标题】如何在 dompdf 中应用引导样式【英文标题】:How to apply bootstrap style in dompdf 【发布时间】:2015-07-11 05:13:41 【问题描述】:我正在使用引导网格来显示,我希望我的客户以 pdf 格式下载它,因此我使用的是 dompdf,但 dompdf 无法应用引导样式。我无法返回并将我的引导网格转换为基本的 html 表并使用不同的插件转换为 pdf 我发现它们既困难又费时(尤其是在安装作曲家然后更新我是新人时)有什么办法让我可以轻松地将引导样式应用于我的 pdf
$pr_dt=$_POST['hid'];//div elements which i want ot convert them to pdf and also contain bootstap lib link
include_once("../assets/converter/dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($pr_dt);
$dompdf->render();
$dompdf->stream("MRA.pdf");
或者至少有任何在线转换器将引导网格转换为 html 表格
【问题讨论】:
dompdf 的 CSS 支持对于像 Bootstrap 这样复杂的东西来说还是有点欠缺。您可以使基本设计工作,但更复杂的设计不太可能产生预期的结果。如果您提供 HTML 示例,我们可以尝试调整 CSS 以获得更好的结果。 你可能想要的是一个无头浏览器,比如PhantomJS。它确实需要在服务器上安装,但由于它基于 webkit,它产生的结果与任何现代网络浏览器一样好。 对不起,我无法访问我的网络服务器进行安装,我只能在完成后上传我的文件 【参考方案1】:您需要确保 dompdf 可以找到您的 CSS 文件。您可以使用set_base_path
执行此操作,例如:
$dompdf->set_base_path("/www/public/css/");
您还需要指定 CSS 文件,例如:
<html>
<head>
<link type="text/css" href="style.css" rel="stylesheet" />
</head>
<body>
...
【讨论】:
现在我在 lin 346 上找不到字体类 fontmetrics_cls.php 确保您的 dompdf 设置正确。检查您的 setup.php,它应该会告诉您出了什么问题,例如:pxd.me/dompdf/www/setup.php DOMPDF_PDF_BACKEND 是 CPDF 我应该改变这个【参考方案2】:将所有 CSS 代码放在同一页面中。不要不要将 CSS 引用到外部链接。
使用 margin 、padding 、top 等内联标签。
【讨论】:
【参考方案3】:我遇到了同样的挑战并通过以下方式解决了它: 在页面顶部的标记处添加 bootstrap.min.css 代码。 N.B bootstrap 3 效果最好。
【讨论】:
【参考方案4】:在html代码之前包含:
$html = '<link rel="stylesheet" href="/css/bootstrap.min.css" />';
【讨论】:
【参考方案5】:'响应现在我在第 346 行找不到字体类 fontmetrics_cls.php'
发生这种情况是因为您需要将 Dompdf 添加到应用程序配置中以包含模块。在 zf2 的模块部分中的 application.config.php 我希望这会有所帮助,因为我花了几个小时在没有任何文档的情况下寻找它。
【讨论】:
【参考方案6】:您可以使用Bootstrap v3.3.6
,它与 DomPDF 一起使用,
我已经测试过了
【讨论】:
【参考方案7】:$content .= '<style>
'.file_get_contents("./bootstrap.min.css").'
</style>';
将此添加到您的 html 代码中。它会将原始 css 打印到 html 代码中
【讨论】:
以上是关于如何在 dompdf 中应用引导样式的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DomPDF 中正确嵌入 Google 字体?打印时中断