我有一个php文件,它将两个图像保存到服务器中,并使用dompdf创建此保存图像的pdf。我能够将图像保存到特定文件夹但不能生成pdf。谁能告诉我这里做错了什么?这是我的代码。
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL ^ E_NOTICE);
$data1 = $_POST['data1'];
$data2 = $_POST['data2'];
if(isset($data1)) {
$uri1 = substr($data1,strpos($data1,",")+1);
$uri2 = substr($data2,strpos($data2,",")+1);
$path =$_SERVER["DOCUMENT_ROOT"].'/divya/custom_product/sites/default/files/cart';
$id = "test";
$type ="order";
$file1 = $path .'/'.$id.'-'.$type.'1.png';
$file2 = $path .'/'.$id.'-'.$type.'2.png';
$a=base64_decode($uri1);
$b=base64_decode($uri2);
file_put_contents($file1, $a);
file_put_contents($file2, $b);
}
?>
<?php
require_once("dompdf_config.inc.php");
require_once("sites/all/modules/print/lib/dompdf/dompdf_config.inc.php");
$tbl = '<html style="margin:20px 20px 0px; padding:0;">
<body style="margin:0; padding:0;">
<table style="margin:0px 0px 5px 3px;">
<tr>
<td style="width:220px;vertical-align:top;">'.$file1.'</td>
<td style="width:220px;vertical-align:top;">'.$file2.'</td>
</tr>
</table>
</body>
</html>';
$dompdf = new DOMPDF;
$dompdf->load_html($tbl);
$dompdf->render();
$pdfoutput = $dompdf->output();
// Checks whether there is an output folder inside sites/default/files
if (!is_dir('public://output')) {
mkdir("public://output", 0777);
// Creates a folder and changes its permissions}
$filename = 'sites/default/files/output/' . 'sample.pdf'
$fp = fopen($filename, "w+");
fwrite($fp, $pdfoutput);
// Writes the pdf output to a file
fclose($fp);
?>
答案 0 :(得分:0)
在浏览DOMPDF wiki here之后,我意识到默认的操作模式是将文件流回客户端,而不是将其保存到文件中。所以我开始挖掘更多。
之前发布了This question;他们使用类似的代码,但使用更简单的file_put_contents()来编写文件。仍然值得尝试首先将一个简单的文本文件写入该位置,以排除任何文件系统问题。
答案 1 :(得分:0)
您在创建DOMPDF类时缺少parantheses:
$dompdf = new DOMPDF();
答案 2 :(得分:-3)
您是否启用了错误记录?错误日志,很多次,告诉你究竟出了什么问题