德尔福 - 文本打印在黑色背景上

时间:2016-07-07 09:36:15

标签: delphi printing background transparency

我使用Printer.Canvas.TextOut()在打印机画布上打印文本。

我定义了几个打印机作业 - 一些用于图形,一些用于纯文本。到目前为止,这个工作正常。现在我有一个问题,即纯文本在黑色背景上打印出来。

只有在文本打印之前进行图形打印时才会发生这种情况(使用相同的打印机是否无关紧要)。

我不知道造成这个问题的原因。我不会在任何地方设置黑色背景。所以我希望你能提供帮助。

问题出现在PCL&后记。

在我的PCL打印机的打印预览中,一切看起来都很好。但是,纸张上的最终打印件再次为黑色。

是否会出现导致此问题的透明标志?

编辑:透明度似乎导致问题。如果我使用:

SetBkMode( Printer.Canvas.Handle, TRANSPARENT );

在打印纯文本之前,现在一切正常。好像我搞砸了某个地方。

1 个答案:

答案 0 :(得分:2)

将BkMode设置为透明解决了问题 - 但这只是一种解决方法。

问题的原因是在图形打印中,绘制实心圆时Printer.Canvas.Brush.Color被设置为clBlack。并且此值未正确重置。