我使用 Printer.Canvas.TextOut()
在打印机 Canvas 上打印文本。
我定义了几个打印机作业 - 一些用于图形,一些用于纯文本。到目前为止,这一直运作良好。现在我遇到一个问题,纯文本在黑色背景上打印出来。
仅当我在文本打印之前进行图形打印时才会发生这种情况(无论是否使用同一台打印机)。
我不知道是什么导致了这个问题。我没有在任何地方设置黑色背景。所以希望能帮到你。
PCL 和 Postscript 出现此问题。
在我的 PCL 打印机的打印预览中,一切看起来都很好。然而,最终打印在纸上的又是黑底黑字。
是否有透明度标志导致此问题?
<小时/>编辑:看来透明度是导致问题的原因。如果我使用:
SetBkMode( Printer.Canvas.Handle, TRANSPARENT );
在打印纯文本之前,现在一切正常。看来我在某个地方搞砸了一些东西。
最佳答案
将 BkMode 设置为透明解决了问题 - 但这只是一种解决方法。
问题的原因是在图形打印中,绘制实心圆时将Printer.Canvas.Brush.Color
设置为clBlack
。并且该值没有被正确重置。
关于Delphi - 文本打印在黑色背景上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38242116/