我正在使用DOMPDF生成可以包含圖像的PDF,而且我有一個奇怪的問題。PDF循環內部的圖像問題
PDF在循環內部生成,並且需要生成的PDF數量不同。當只有1 PDF生成一切順利。圖像(或在這種情況下的標誌)被插入美麗。 但是,當有2個或更多的PDF由於某種原因必須生成時,圖像被替換爲紅色十字。但是:該批處理中生成的第一個PDF中的圖像完美無缺。因此:PDF#1中的圖像完美加載,PDF#2中的圖像正在被紅十字替代。
我正在使用DOMPDF(v0.5.2)的最新穩定版本。我也用v0.5.1測試過,但是具有相同的行爲。
我測試的服務器運行在Linux上,使用PHP 5.3.8。在錯誤日誌中沒有關於這個錯誤(並且我確實啓用了錯誤日誌記錄)。
---編輯: 圖像的「路徑」是絕對URL,而不是絕對或相對(PHP)路徑,並將循環內容輸出到瀏覽器(或普通的HTML電子郵件,無PDF附件),它完美地顯示圖像(在所有郵件中)。
--- EDIT2: 使用功能在環(其中,不幸的是,沒有任何改變我的問題)結束刷新所有的緩衝區:
function flush_buffers()
{
ob_end_flush();
ob_flush();
flush();
ob_start();
}
循環的例子我正在使用:
for ($i = 0; $i < count($cert); ++$i)
{
// load the email-template
ob_start();
include($template);
$content = ob_get_contents();
ob_end_clean();
// require dompdf
include_once('dompdf/dompdf_config.inc.php');
// set PDF path - inside temp dir
$newpdf = trailingslashit(realpath(sys_get_temp_dir())).$cert[$i]['coupon'].'.pdf';
// replace shortcodes with wanted content
$certificate = preg_replace($shortcodes, $replacements, $certificate);
$certificate = '<html><body>'.$certificate.'</body></html>'."\n";
$dompdf = new DOMPDF();
$dompdf->load_html($certificate);
$dompdf->set_paper($pageformat, $orientation);
$dompdf->render();
save_pdf($newpdf, $dompdf->output()); // save PDF
@flush_buffers();
}
其中一個簡碼是[徽標],並且正在被替換爲img標籤。正如我之前提到的那樣:該圖像在第一PDF中正常工作,但不在其他PDF中。
你可以試試最新的beta版本(0.6 beta 2)嗎?它具有文件路徑和圖像的改進。 SVN中繼還有一種處理圖像文件的新方法,所以你也可以嘗試。 –
嗨Fabien,感謝您的答覆:-)我希望避免使用測試版,因爲它是一個測試版(我正在做的應該是在現場環境中使用)。但如果你堅持我應該嘗試它,我會:) – Hiranthi
在許多方面,0.6分支比0.5分支更好,並且全球更穩定。 –