- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我花了一些时间来处理使用 DomPDF 的非常慢的 PDF 生成过程。经过大量的摆弄和谷歌搜索,我最终得到了一个我认为我会发布的解决方案,以防你们中的一些人正在处理同样的问题。
问题:
我管理的一个电子商务网站具有允许卖家下载包含他们已完成的采购订单的 PDF 文件的功能(基本上是向买家显示的购买确认的副本)。这一直工作正常。
当我部署了一个附加功能以允许卖家下载一个 PDF 文件时,问题就开始了,其中包含在用户定义的一组日期之间生成的所有采购订单。当需要导出为单个 PDF(每页一个)的采购订单数量超过 20-30 时,该过程变得非常缓慢(如 30-60 秒)。
从数据库中获取数据并解析它不是问题。构建后来导出到 PDF 的 View 也不是问题(即使对于数百个订单,将 HTML 输出到屏幕也只需要几分之一秒),所以我基本上确定 dompdf 是问题所在。
设置如下:
1.- MySQL 数据库
2.- 应用服务器:运行linux的多个负载均衡的PHP+Nginx+PHP-fpm实例
3.- PHP 7.2
4.- dompdf 0.82(最新的)
5.- 代码点火器 3.0.9
6.- 用于格式化布局的 Bootstrap
目标是允许在可接受的时间内在一个 PDF 中下载多个(可能是数百个)采购订单。
最佳答案
解决方案:
经过大量的谷歌搜索、试验和错误,在 Stackoverflow 上查找了很多(我发现的文章都没有真正有帮助),我发现是 Bootstrap 导致了这个问题。
我使用 Bootstrap 进行非常基本的布局管理,我意识到将整个库(甚至是缩小的库)链接到发送到 dompdf 的 View 中是多余的,但我不想重新编写 View 文件。
所以,我采取了不同的方法:
获取我的 View 使用的特定类(6 个,也许是 7 个)的 CSS 定义,并将它们内联到 <style>
View 中的标记
<style>
.row {
margin-right: -15px;
margin-left: -15px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
}
.col-lg-12 {
width: 100%;
}
.text-center {
text-align: center;
}
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
line-height: 1.42857143;
color: #333;
background-color: #fff;
}
(...) the list goes on a little longer for some other bootstrap styles and other site-specific ones made by yours truly.
</style>
关于php - 使用 PHP+DomPDF 生成缓慢的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54768375/
我正在尝试使用 dompdf 生成 pdf,如何在浏览器的新选项卡中打开 pdf?就像,我单击 PDF 的链接,它应该在新选项卡中打开,而不是自动保存。我想让用户在第一次看到文件后选择保存文件。我怎么
我的 DOMPDF 有问题。 我正在尝试使用 DOMPDF 生成一个表格。 错误信息: The row #1 could not be found 完整的错误报告: > Fatal error
我将 DOMPDF 与 Laravel-dompdf 一起使用,经过数小时的研究后,我找不到能够渲染我的图像的解决方案。我已经提到了这些问题: DomPDF: Image not readable o
我在laravel 5.5和bootstrap css中使用barryvdh/laravel-dompdf(通过小的调整重命名为pdf.css)以pdf格式生成报告 这是我从报告 View 中调用 c
当使用自定义字体生成我的 PDF 并尝试像这样流式传输时:$pdf = PDF::loadView( '/pdfs/invoice',$data); return $pdf->stream();本地环
我正在使用 Bamboo invoice 作为发票生成器,我正在尝试自定义发票模板,但无论我做什么,字体似乎都无法调整。 目前我有 body { margin: 0.5in; font-family:
在 HTML 中形成的表 3 。每张纸都是一张 table 。我们需要一些东西来转换为 pdf,最后一片叶子在风景中!使用肖像它可以工作,以及如何制作相册的其中一张......我不明白...... 最
我有成功的 html 到 pdf 转换,但没有特殊字符。 下面只是我试图显示的一个特殊字符,当我将它简单地放在一个 html 文档中时,它会显示在我的 Mac 上的浏览器中。 (但不是在我的 wi
我目前正在尝试使用 Wordpress 和(最新版本的)dompdf,遇到了一个关于格式的恼人问题。 我的问题:生成的第二页似乎没有考虑主要内容的上边距,导致与我的 Logo 重叠。您可以查看生成的
我目前正在尝试使用 Wordpress 和(最新版本的)dompdf,遇到了一个关于格式的恼人问题。 我的问题:生成的第二页似乎没有考虑主要内容的上边距,导致与我的 Logo 重叠。您可以查看生成的
我尝试使用 dom pdf 创建价格标签。价格标签由一些 div 容器组成。其中一个容器具有最大高度,但这不起作用。因为如果我将此容器的文本更改为包含 200 个单词而不是 100 个单词的文本,则价
我正在安装 dompdf http://code.google.com/p/dompdf/ 一切顺利,但安装说明告诉我“编辑 dompdf_config.custom.inc.php(0.6 版)或
我正在使用 barryvdh/laravel-dompdf 包,我想创建一个可打印的页面。这是我的代码: $pdf = App::make('dompdf.wrapper'); $pdf->s
我在最新版本的 DOMPDF (0.6.0 Beta 3) 中遇到了一个非常奇怪的问题。我正在使用它为我网站上的客户创建发票。该设计要求表格单元格之间的边框为 1px。如果我使用黑色或 #000 作为
我正在尝试使用 Dompdf 从 html 文件生成漂亮的 pdf,但我无法画线 在每一页上。这是 php 文件的示例。 load_html($html); $dompdf->render(); $
我正在使用dompdf生成PDF。我已经从dompdf网站上获取了代码,将标题添加到pdf,并且可以使用,但是我想将标题放置在除第一页之外的所有页面上。有什么建议么? 最佳答案 您可以通过在第一页中出
我在 http://dompdf.github.com/ 上使用 DOMPDF 我正在努力如何设置整个页面的字体。在我制作的模板中,我在 CSS 中将字体设置为 Helvetica,但是当它生成 PD
使用的技术: PHP: v7.4 SilverStripe: v4.7 DomPDF: 1.0 在发布此内容之前,我确保能够遵循与此 DomPDF 相关的其他提示和文章,但未显示包含的图像,但图像仍然
我试图让表格在 DOMPDF 中 float 。我正在使用最新版本的 DOMPDF 0.6.0 beta2。在 dompdf_config.inc.php 中,我将 DOMPDF_ENABLE_CSS
我是 DOMPDF 的新手,我正在尝试使用 dompdf 将我表中未归档的所有记录打印为 pdf。这是以 pdf 格式打印 html 的代码。 table { font-family: ar
我是一名优秀的程序员,十分优秀!