2015-06-18 36 views
2

我有一個腳本可以創建一個PDF文檔並繼續發送它來打印。碰巧我需要等待創建文檔,檢查並最近發送打印。如何讓PHP等到PDF創建打印?

define('TIKET_DIR', public_path('temp/')); 
    $token = sha1(microtime().'tk'); 
    $pdfPath = TIKET_DIR.$token.'.pdf';  
    $html2pdf = new HTML2PDF('V', array('72', '110'), 'es', true, 'UTF-8', 0); 
    $html2pdf->WriteHTML($html); 
    $html2pdf->Output($pdfPath, 'F'); 
    $cmd = "lpr -P".$ococina->impresora." "; 
    $cmd .= $pdfPath; 
    $response = shell_exec($cmd); 

變量$ html是動態創建的,可能會延遲。通常PDF文檔打印,但有時它不打印,我認爲這是因爲在沒有PDF文檔準備就緒的情況下執行lpr命令。我在Ubuntu上使用CUPS打印服務器使用LEMP。我必須關閉並打開所有連接到計算機的打印機,然後打印先前發送的PDF文檔。

在此先感謝。

+0

Php功能s阻止 –

+0

,如果是,那麼爲什麼有時打印機會停止?我有3臺熱敏打印機Epson TM - T20II一次連接到服務器和客戶端。它可能是過載的過程?驅動錯誤? –

回答

1

嗯,PHP具有休眠功能:

int sleep (int $seconds) 

(參見:http://php.net/manual/en/function.sleep.php) 但這不是解決問題的好方法。此外,您可能會遇到由網絡服務器或PHP設置定義的最大執行時間。

也許看看異步解決方案?例如,之後的pdf和電子郵件所需的處理信息

+0

其熱敏打印機接收訂單的餐廳軟件。我會盡量睡覺,但並不理想。 –