【问题标题】:dompdf->render(); not working in api classdompdf->渲染();不在 api 类中工作
【发布时间】:2015-07-08 18:25:40
【问题描述】:

我在尝试使用 dompdf 将 html 呈现为 pdf 时遇到问题。

我将代码放在一个类中,在过程代码之后我希望它创建一个 html 的 pdf。

这是我目前的代码:

$templatefile = file_get_contents("templates/costreport.htm");
//fill headers
$templatefile = str_replace("%DATES%",stripslashes($startdate)." - ".stripslashes($enddate),$templatefile);     

if ($siteid>0) {
    $pdfname = "costreport-".$clientid.".pdf";
} else {
    $pdfname = "costreport-".$clientid."-".$siteid.".pdf";
}
//insert into database
//Close and output PDF document
$pdfname = str_replace("/","-",$pdfname);
$pdfname = str_replace("\\","-",$pdfname);
//create pdf
// unregister Yii's autoloader
spl_autoload_unregister('my_autoloader');
// register dompdf's autoloader
require_once("../system/dompdf/dompdf_config.inc.php");
// register Yii's autoloader again
spl_autoload_register('my_autoloader');
$dompdf = new DOMPDF();
$dompdf->set_paper("A4","portrait");
$dompdf->load_html($templatefile);
//set_time_limit(240);
$dompdf->render();
$pdf = $dompdf->output();
// You can now write $pdf to disk, store it in a database or stream it
// to the folder.
file_put_contents('../tmp/'.$clientid.'/'.$pdfname, $pdf);  

dompdf->render(); 时代码失败是的,但是一旦我把那行代码拿出来,代码就可以工作了,文件也被创建了,但如果它没有渲染,我就无法打开它。

我已经尝试调试代码并使模板是 HTML 有效但我现在不知所措。

当我运行带有dompdf->render(); 的脚本时,我得到的错误只是boolen false

【问题讨论】:

  • 您能否在问题中包含您遇到的错误?
  • 我在问题中添加了错误:)
  • 您是否尝试过简单的 HTML 文档(例如 <p>Hello World!</p>)?如果可行,那么可能与您的模板有关。您可以尝试启用错误报告。
  • 是的,仍然是 boolen false

标签: php html class pdf dompdf


【解决方案1】:

问题是我在班级顶部有这段代码。

/set up path to new dir including dir to be created
            chdir("../tmp/");
            $newdirpath = getcwd()."/".$clientid;
            //if an old invoice ticket pack exists unlink it so as not to get things confused with the new pack being created.
            if (file_exists(getcwd()."/$clientid_$siteid_CostReport.pdf")) {
                unlink(getcwd()."/$clientid_$siteid_CostReport.pdf");
            }
            //setup temp dir
            if (!is_dir($newdirpath)) {
                //create new dir if it doesn't already exist!
                mkdir($newdirpath);
            } else {
                //dir already exists we need to empty it out first incase there's old stuff in there we don't want to duplicate data
                //$this->removedirectory($newdirpath,false);
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多