2016-07-07 62 views
3

我使用Printer.Canvas.TextOut()在打印機畫布上打印出文字。德爾福 - 文字印在黑色背景上

我有幾個打印機作業定義 - 一些用於圖形和一些純文本。直到現在,這工作得很好。現在我有一個問題,純文本在黑色背景上打印出來。

只有在文本打印前進行圖形打印(使用相同的打印機無關緊要),纔會發生這種情況。

我不知道是什麼導致此問題。我不會在任何地方設置黑色背景。所以我希望你能幫上忙。

問題出現在PCL & Postscript中。

在我的PCL打印機的打印預覽中,一切看起來都很好。然而,紙上的最終印刷品再次是黑色的。

難道會有一個透明度標誌導致這個問題?


編輯:看來透明度是造成問題。如果我使用:

SetBkMode(Printer.Canvas.Handle, TRANSPARENT); 

打印純文本之前,一切正常。我似乎在某處弄錯了一些東西。

+0

這是隻在一臺特定的機器+打印機或多個?順便說一句,如果你認爲你已經找到了解決方案,如果你將它作爲答案發布(對你自己的問題回答很好),這對未來的讀者會有所幫助。這樣,它就會顯示爲已回答的問題,而不是沒有答案的問題,但有可能會有明顯的風險。 – MartynA

+0

還不確定這是解決方案還是隻解決問題的解決方法。這既不是計算機,也不是打印機的特定問題。我也相信我的打印機(京瓷)的PCL預覽被竊聽 - 它不應該正確預覽它。 – Jens

回答

2

將BkMode設置爲透明可以解決問題 - 但這只是一種解決方法。

問題的原因是在繪製實心圓時,在圖形打印中,Printer.Canvas.Brush.Color被設置爲clBlack。並且此值未被正確重置。