【问题标题】:Export pdf document with php using dompdf使用 dompdf 用 php 导出 pdf 文档
【发布时间】:2014-09-01 18:01:26
【问题描述】:

我有一个问题要问你,所以我尝试使用 dompdf 用 php 导出 pdf 文档,一切正常,但是当我发送 php 变量来显示时,它添加到末尾和开头。%27

public function generateTitlePage($number_cadastral='')
{
    $this->load->library('dompdf_gen');
    $dompdf = new DOMPDF();
    $html = <<<HTML
        <html>
        <head>
            <meta charset="UTF-8">
            <link rel="stylesheet"  type="text/css" media="screen" href="TitlePage.css"  />
        </head>
        <body>
            <div style="margin-top: 100px; text-align: right; padding-right:100px;">
                Number:$number_cadastral
                <div style="width: 150px;margin-left: 535px;size:1;"><hr style="margin:0px;"></div>
            </div>
            <div>
      </body>
        </html>
   HTML;

    $dompdf->load_html($html);
    $dompdf->render();
    $dompdf->stream("welcome.pdf");

在这种情况下,变量 $number_cadastral 在 .%27 之前,所以结果将是:%27.787883434.%27.为什么要添加这个 %27??请帮帮我

【问题讨论】:

  • 最好把所有 html 都放在视图中并使用 $html = $this->load->view('html_view_name',$data,TRUE);并使用该html创建pdf
  • 您是否检查过您的号码不包含任何空格?
  • 我不太喜欢所选的答案,它绕过了问题而没有真正修复它。您是否检查过您的变量不包含额外字符。 %27 似乎是单引号 URL 编码的。尝试回显 $html 变量,而不是通过 dompdf 运行它,看看会发生什么。

标签: php codeigniter codeigniter-2 php-5.3 dompdf


【解决方案1】:
<?php
    $number_cadastral = ($number_cadastral != "")?preg_replace('/[%]+/','', $number_cadastral):"";
    public function generateTitlePage($number_cadastral){
        $this->load->library('dompdf_gen');
        $dompdf = new DOMPDF();
        $html = '
            <html>
            <head>
                <meta charset="UTF-8">
                <link rel="stylesheet"  type="text/css" media="screen" href="TitlePage.css"  />
            </head>
            <body>
                <div style="margin-top: 100px; text-align: right; padding-right:100px;">
                    Number:'.$number_cadastral.'
                    <div style="width: 150px;margin-left: 535px;size:1;"><hr style="margin:0px;"></div>
                </div>
                <div>
          </body>
            </html>
       ';

        $dompdf->load_html($html);
        $dompdf->render();
        $dompdf->stream("welcome.pdf");
    }
?>

试试这个代码。

【讨论】:

  • @erhaneluion 你检查过 27 之前有空格吗?
  • 是的,没有空格
  • PDF 现在打不开我认为是来自 preg_replace 函数
  • 但是最好的正则表达式是什么。%27
  • @erhaneluion 很高兴它有帮助。我认为上面提到的一个是好的之一:)
猜你喜欢
  • 2018-07-19
  • 2014-06-05
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
相关资源
最近更新 更多