DOMPDF无法正常工作

时间:2013-05-18 22:42:56

标签: html pdf dompdf

我正在尝试从textarea获取一些html并将其转换为pdf。我从https://github.com/dompdf/dompdf下载了DOMPDF并编写了下面的代码。当我单击提交时,我收到此错误:“内部服务器错误”。 (我的虚拟主机不告诉我它是哪一行) (该文件的名称为test2.php)

<?php
if (isset($_POST['submit'])) {
$content = $_POST['content'];
if (empty($content)){
    $error = 'write something';
}
else {
    include_once( 'dompdf/dompdf_config.inc.php' );
    $dompdf = new DOMPDF();
    $dompdf->load_html($content);
    $dompdf->render();
    $dompdf->stream('example.pdf');
}
}


?>
<!DOCTYPE html>
<head>

</head>
<body>
<?php
if(isset($error)){
echo $error;
}
?>
<form method="post" action="test2.php">
<textarea name="content" id="content">hello world</textarea><br>
<input type="submit" name="submit" value='submit'>
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

在将DOMPDF用于项目时,我在客户端的服务器上遇到了类似的问题。

您可能没有使用PHP安装配置正确级别的错误报告。

在脚本的顶部放置以下内容; error_reporting(E_ALL);

示例:

error_reporting(E_ALL);
if (isset($_POST['submit'])) {
$content = $_POST['content'];
if (empty($content)){
    $error = 'write something';
}
else {
    include_once( 'dompdf/dompdf_config.inc.php' );
    $dompdf = new DOMPDF();
    $dompdf->load_html($content);
    $dompdf->render();
    $dompdf->stream('example.pdf');
}
}

您现在应该看到有关收到的错误类型的更详细消息。

您传递给$dompdf->load_html($content);方法的HTML标记可能存在问题,或者您可能遇到与内存相关的问题(超出内存容量)。

通常,这些错误会自行报告,但根据您的设置,报告可能会受到限制。

答案 1 :(得分:0)

我为解决这个问题苦了一个多月。终于我解决了。解决方案如下。

<?php
require_once 'dompdf/autoload.inc.php';
// reference the Dompdf namespace
use Dompdf\Dompdf;
?>
<html>
  <head></head>
  <body>
    <h1>Sucess</h1>
  </body>
</html>
<?php

$html = ob_get_clean();
$dompdf = new DOMPDF();
$dompdf->setPaper('A4', 'portrait');
//$dompdf->setPaper('A4', 'landscape');
$dompdf->load_html($html);
$dompdf->render();
//For view
$dompdf->stream("",array("Attachment" => false));
// for download
//$dompdf->stream("sample.pdf");

?>