我正在尝试从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>
答案 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");
?>