我正在編寫一個腳本,用於檢查數據庫並返回客戶的每一行,該帳戶的開始日期位於特定日期。如果客戶是在指定的日期創建的,則客戶行將被傳遞給我的函數,以便從數據庫中的客戶信息中創建PDF。使用dompdf創建多個PDF文件
問題
我想到了創建一個PDF爲每一個客戶是通過數據環和創建PDF的唯一途徑。這樣做時我有一個問題。
1.只創建第一個用戶的PDF。第二件事沒有任何反應。
Unable to stream PDF: headers already sent
顯示在瀏覽器和第一PDF下載。但出於測試目的,應該創建數據庫中的兩個客戶。我向瀏覽器回覆數據,並且兩位客戶都出現了。所以我知道數據存在,並且在運行時存在。
例
// create instance of customer's that need to be created
$a = new SelectTempOne;
// obtain response from customers in database that have met timing requirement
$response = $a->selectUserForOne();
// loop through each row in the results and handle then pass to the pdf creation string
foreach($response as $i => $row) {
// statically typing template string to render email address of user
$temp1 = '
<!DOCTYPE html>
<html>
<head>
<title>Template 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" media="screen" href="pdf-templates/temp1/temp1.css" />
</head>
<body>
<div id="pdf_header">
<table>
<tr>
<td>'.$response[$i]['email'].'</td>
</tr>
</table>
</div>
</body>
</html>
';
// pass html to dompdf object
$dompdf->loadHtml($temp1);
// set option for the paper size and orientation
$dompdf->setPaper('A4', 'letter');
// Render the HTML as PDF
$dompdf->render();
//save the file to the server
$output = $dompdf->output();
file_put_contents('pdf/'.$response[$i]['email'].'.pdf', $output);
// Output the generated PDF to Browser
$dompdf->stream();
exit;
} // end of the for loop
?>
這行是我加上客戶的電子郵件,
<td>'.$response[$i]['email'].'</td>
問題
什麼我需要做的是能夠創造出動態數量的PDF作爲循環從數據庫返回的行?
* UPDATE *
Fatal error: Uncaught Dompdf\Exception: No block-level parent found. Not good. in /Users/wuno/Dropbox/google/devops/htdocs/tracker/login/dompdf/src/Positioner/Inline.php:45 Stack trace: #0 /Users/wuno/Dropbox/google/devops/htdocs/tracker/login/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(872): Dompdf\Positioner\Inline->position(Object(Dompdf\FrameDecorator\Inline))
1 /Users/wuno/Dropbox/google/devops/htdocs/tracker/login/dompdf/src/FrameReflower/Inline.php(51):
Dompdf\FrameDecorator\AbstractFrameDecorator->position() #2 /Users/wuno/Dropbox/google/devops/htdocs/tracker/login/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(893): Dompdf\FrameReflower\Inline->reflow(NULL) #3 /Users/wuno/Dropbox/google/devops/htdocs/tracker/login/dompdf/src/FrameReflower/Page.php(141): Dompdf\FrameDecorator\AbstractFrameDecorator->reflow() #4 /Users/wuno/Dropbox/google/devops/htdocs/tracker/login/dompdf/src/FrameDecorator/AbstractFrameDecorator.php(893): Dompdf\FrameReflower\Page->reflow(NULL) #5 /Users/wuno/Dropbox/google/devop in /Users/wuno/Dropbox/google/devops/htdocs/tracker/login/dompdf/src/Positioner/Inline.php on line 45
我只是編輯我的問題,因爲我意識到這會讓人困惑。實際的問題是它只是創建第一個PDF。我想在服務器上創建多個pdf。該腳本將使用cron作業運行,而不是用戶在瀏覽器中查看。我只是在測試時這樣做。並且非常感謝幫助我/所以當腳本運行時,它應該爲在數據庫中某一天註冊的每個客戶創建一個pdf。然後,我會稍後將這些pdf的鏈接顯示給管理員。 – wuno
好的,請參閱修改。你的循環中有一個「退出」。 – miken32
謝謝你。一旦我更新,我現在得到這個致命的錯誤 – wuno