0

我正在尝试从 a 中获取一些 htmltextarea并将其转换为 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>
4

2 回答 2

1

我挣扎了一个多月才解决这个问题。最后我解决了。解决方案如下。

<?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");

?>
于 2019-11-21T11:06:54.370 回答
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 标记可能存在问题,或者您可能会遇到与内存相关的问题(超出内存限额)。

通常,这些错误会自行报告,但同样取决于您的设置,报告可能会受到限制。

于 2013-05-19T08:06:10.703 回答