【问题标题】:Delphi - Text is printed out on black backgroundDelphi - 文本打印在黑色背景上
【发布时间】:2016-11-09 13:46:39
【问题描述】:

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

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

仅当我在文本打印之前进行图形打印时才会发生这种情况(是否使用相同的打印机都没有关系)。

我不知道是什么导致了这个问题。我没有在任何地方设置黑色背景。所以希望能帮到你。

PCL 和 Postscript 出现问题。

在我的 PCL 打印机的打印预览中,一切正常。但是,纸张上的最终打印又是黑底黑字。

是否存在导致此问题的透明度标志?


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

SetBkMode( Printer.Canvas.Handle, TRANSPARENT );

在打印纯文本之前,现在一切正常。看来我在什么地方搞砸了。

【问题讨论】:

  • 这是仅在一台特定的机器+打印机上还是不止一台?顺便说一句,如果您认为自己找到了解决方案,那么如果您将其作为答案发布(回答您自己的 q 就可以了),这将对未来的读者有所帮助。这样一来,它就会显示为已回答的 q 而不是未回答的问题,这有可能说明显而易见的问题。
  • 尚不确定这是解决方案还是只是解决问题的方法。这既不是计算机也不是打印机特定的问题。我还认为我的打印机(京瓷)的 PCL 预览有问题 - 它不应该正确预览。

标签: delphi printing background transparency


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 2010-12-02
    • 2017-06-08
    • 2011-01-16
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    相关资源
    最近更新 更多