gpt4 book ai didi

php - dompdf 错误无法解决这个问题

转载 作者:行者123 更新时间:2023-11-28 00:10:22 24 4
gpt4 key购买 nike

我收到这个错误:

可捕获的 fatal error :传递给 DOMNode::appendChild() 的参数 1 必须是 DOMNode 的实例,给定为空,在第 304 行的/home/emscompl/public_html/pdf_email/dompdf/include/table_frame_decorator.cls.php 中调用并在第 726 行的/home/emscompl/public_html/pdf_email/dompdf/include/frame.cls.php 中定义

这是dompdf代码。

<?php


/*$dir = dirname(__FILE__);
require_once($dir.'/dompdf/dompdf_config.inc.php');

$dompdf = new DOMPDF();

$dompdf->load_html_file("http://ems-complete.com/pdf_email/patient-report.php");

$dompdf->render();

$dompdf->stream("file.pdf");*/

$course = $_REQUEST['course'];

$dir = dirname(__FILE__);

require_once($dir.'/dompdf/dompdf_config.inc.php');
$dompdf = new DOMPDF();

$dompdf->load_html(file_get_contents("http://ems-complete.com/courseroster/courseroster.php?course=".$course));


$dompdf->render();
// $dompdf->set_paper(2412, 3222);
$dompdf->stream("courseroster.pdf");

// exit(0);


?>

这是 PHP HTML

<html>
<head>
<link type="text/css" media="screen" rel="stylesheet" href="stylesheets/courseroster.css" />

<link type="text/css" media="print" rel="stylesheet" href="stylesheets/print.css" />
</head>

<body>
<SCRIPT LANGUAGE="JavaScript">
function PrintDivData(crtlid)
{
var ctrlcontent = document.getElementById(crtlid);
var printscreen = window.open('','','left=1,top=1,width=1,height=1,toolbar=0,scrollbars=0,status=0​');
printscreen.document.write(ctrlcontent.innerHTML);
printscreen.document.close();
printscreen.focus();
printscreen.print();
printscreen.close();
}
</script>

<input type="button" name="Print" value="Print" onClick="javascript:PrintDivData('container');" Runat="Server" />
<?php
$course = $_REQUEST['course'];?>
<?php
$connect = mysql_connect('localhost','db','pass') or die(mysql_error());

$selectdb = mysql_select_db('emscompl_joom1283',$connect);
?>
<?php
$qry = "SELECT * FROM courses
WHERE id = $course";
$result = mysql_query($qry);
$row = mysql_fetch_array($result);


$qry2 = "SELECT s.fullname, cs.* FROM registered_users AS `s`
LEFT OUTER JOIN course_students AS cs ON s.userid = cs.userid
WHERE cs.courseid = $course
ORDER BY s.fullname";
$result2 = mysql_query($qry2);

echo "<a href=http://www.ems-complete.com/pdf_email/form_courseroster.php?course=".
$course.">Display PDF</a>";?>
<div class="container" id ="container">
<div class="header"><?php echo $row['coursename'];?> Roster</div>
<div class="coursestatus"><p>Course Status</p>
<p><?php echo $row['status'];?></p>
</div>
<div class="startdate"><p>Start Date</p>
<p><?php echo $row['startdate'];?></p>
</div>
<div class="enddate"><p>End Date</p>
<p><?php echo $row['enddate'];?></p>
</div>
<div class="dayofweek"><p>Class Held on:</p>
<p><?php echo $row['dayofweek'];?></p>
</div>
<div class="leadinstructor"><p>Lead Instructor</p>
<p><?php echo $row['leadinstructor'];?></p>
</div>
<div class="assistantinstructor"><p>Assistant Instructors</p></div>
<div class="enrolledstudents">
<p>Enrolled Sutdents</p>
<table width="760" border="0">
<tr>
<th width="223">Student Name</th>
<th width="102">Phone</th>
<th width="90">Email</th>
<th width="100">Status</th>
<th width="220">Document Report</th>
</tr>
<tr>
<?php while ($row2 = mysql_fetch_array($result2)) { ?>
<td><?php echo $row2['fullname'];?></td>
<td><?php echo $row2[''];?></td>
<td><?php echo $row2[''];?></td>
<td><?php if ($row2['studentstatus']== 0 ){
echo "Interested";
}
else if ($row2['studentstatus']== 1 ){
echo "Entrance Process";
}
else if ($row2['studentstatus']== 2 ){
echo "Incomplete Entrance Process";
}
else if ($row2['studentstatus']== 3 ){
echo "Enrolled";
}
else if ($row2['studentstatus']== 4 ){
echo "Course Completed";
}
else if ($row2['studentstatus']== 5 ){
echo "NREMT Skills Complete";
}
else if ($row2['studentstatus']== 6 ){
echo "NREMT Cognitive Complete";
}
else if ($row2['studentstatus']== 7 ){
echo "State Certified";
}?></td>
<td><?php echo "<a href=http://www.ems-complete.com/courseroster/studentdocuments.php?id=".$row2['id'].">Document Report</a>"
;?>
</td>
</tr>
<?php } ?>
</table>
<p>&nbsp;</p>
</div>
<div class="footer">
<p>&nbsp;</p>
</div>
</div>

</body>
</html>

最佳答案

在您的 HTML 生成脚本中,您在 while 循环外有一个开始 TR,看起来它应该在循环内(结束标记在循环内)。这将导致无效的文档结构,并且显然是 dompdf 无法解析的文档结构。

仅供引用,如果 dompdf 无法解析文档,首先要做的是通过验证器运行它。

关于php - dompdf 错误无法解决这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com