2012-04-04 51 views
3

我必須在as3中做一些打印,很明顯與flash.printing.PrintJob,但我有一個問題。PrintJob發送到打印機,雖然我從來沒有發送過()

我必須驗證用戶在PrintJob.start()中顯示的打印對話框中設置的設置與存儲在數據庫中的某些設置匹配,除了調用PrintJob.start()之外無法獲取該信息。 。

如果頁面設置無效,我從不會調用addPage()和send(),但幾秒鐘後(15 aprox)將打印空白文檔。

有什麼想法?我如何取消PrintJob?在AIR中有一個PrintJob.terminate(),但我的目標是Flash。

謝謝!

+0

這個空白頁...它可能是一個愚蠢的問題,但是,你點擊「確定」在即將到來或取消的打印對話框? – 2012-04-05 03:25:36

+0

我無法重現您的問題。天氣我點擊「確定」或「取消」,天氣我明確地釋放/刪除虛擬機中的打印作業,只要我沒有發送任何頁面到作業幾秒鐘後超時並且不打印任何東西。這可能是我們正在處理的打印機驅動程序特定問題,在這種情況下,Universe中沒有任何AS3代碼可以解決您的問題。 – 2012-04-05 03:29:27

+0

@Ascension Systems:我點擊確定,當我按下取消功能時,它正常工作。我將在幾個不同的操作系統和不同的驅動程序中進行測試。我希望這是一個驅動程序錯誤:D – alcuadrado 2012-04-05 05:47:06

回答

0

我有點困惑,你實際上想做什麼,但你不能這樣做? (從PrintJob的文檔,啓動功能的例子)

var myPrintJob:PrintJob = new PrintJob(); 
if(myPrintJob.start()) { 
// addPage() and send() statements here 
} 

這樣你可以檢查設置,如果你不發送()它真的不應該打印。 (你確定你沒有發送到你的代碼中的舊地點?) 可能的修復(儘管不是最好的,它應該工作)是強制你的打印作業重置,如果它的設置不符合你的偏好,像這樣;

myPrintJob = new PrintJob(); 

如果上述不幫助,請提供片段和更多詳細信息。 祝你好運!

+0

我沒有那個代碼。通過我在互聯網上發現許多地方,據說從開始()到發送()有一個最大時間,如果超過,打印作業將被髮送。這聽起來很瘋狂,幾乎令人難以置信,但可悲的是,這是真的。 – alcuadrado 2012-11-15 00:24:06