【问题标题】:Adding CSS Into Dompdf Library in Codeignator在 Codeigniter 中将 CSS 添加到 Dompdf 库中
【发布时间】:2019-08-01 11:21:11
【问题描述】:

我能够使用 Dompdf 库从 Codeigniter 框架生成 PDF 文件,但生成的 pdf 没有我在创建页面时使用的样式,我如何添加 CSS 以与 HTML 一起呈现

我创建 PDF 的函数如下所示

function generateReport($id = null){
 $this->load->library('pdf');

    $data['title'] = 'Student Report';
    $details = $this->student_model->get_single_student($id);
    $result = $this->student_model->get_single_student_result($id);
    $data['student'] = $details;
    $data['result'] = $result;
    $filename = $data['student']['admission_no'];
  $this->pdf->load_view('admin/mark/singleMarkShow', $data);
  $this->pdf->render();
  $this->pdf->stream($filename.".pdf");
 }

这是 PDF 生成的

enter image description here

我创建的用于导出 pdf 的 HTML 页面就像

enter image description here

【问题讨论】:

  • DOMPDF 是 DOMPDF。框架(Codeigniter)在这里完全无关紧要。另外,请向我们展示您使用复制/理解问题所需的最少代码所做的工作
  • 实际上,这并非完全无关紧要,因为 Codeigniter+DomPDF 集成有一些可能实际上导致 OP 问题的怪癖(例如 CSS 文件的链接方式)。我确实同意视图代码丢失了

标签: css codeigniter bootstrap-4 dompdf


【解决方案1】:
//Try something like this, hopes it help you.

$pdf = new Dompdf();
$html = "<div>PDF content...</div>";
$html .= '<link type="text/css" href="/give/path/of/pdffile.css" rel="stylesheet" />';
$pdf->loadHtml($html);

【讨论】:

    【解决方案2】:

    我与 DomPDF 的斗争不止一种,所以我知道您可能会感到困惑。

    您没有显示视图代码 ('admin/mark/singleMarkShow'),但如果您需要 CSS 样式,您基本上有两种选择:

    1.- 您可以在视图中链接 CSS 文件,方式与链接任何 HTML 文件的方式几乎相同(&lt;link rel="stylesheet" href="file.css"&gt; 但您需要输入 CSS 文件的完整绝对路径,而不是相对的。因此,您的 href 应该类似于 FCPATH./assets/css/style.css 请记住,使用诸如 bootstrap 之类的大型 CSS 文件会导致 DomPDF 变慢很多(详情请参阅HERE

    2.- 您可以在视图中内联您需要的样式。只需像在任何 html 文件上一样使用您需要的样式(以减少开销),例如:

    <style>
    body {
      font-size: 11px;
    }
    
    small {
      font-size: 65%;
    }
    (...)
    </style>
    

    这将使渲染速度更快,但在重新设计时需要更新用于单独创建 PDF 文件的所有视图。

    此外,无论您做出何种选择,请记住 domPDF 期望所有内容的绝对路径,因此即使对于图像,您也需要您的 src 属性才能使用 $_SERVER['DOCUMENT_ROOT']FCPATH 以及其余的路径相对路径来自主 index.php 文件

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      相关资源
      最近更新 更多