Delphi - 文本打印在黑色背景上

标签 delphi printing background transparency

我使用 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/

相关文章:

delphi - 如何显示执行长 SQL 查询的耗时?

delphi - HD Firemonkey 应用程序中 Screen.MonitorCount 的等效项是什么?

javascript - 打印(在纸上)表单中 html 文本框的值

java - System.out.println() 中的 toString() 方法两次调用?

html - 背景图片上的链接

bash - 在后台 BASH 上运行 Matlab

delphi - Spring4D TDistinctIterator<string>.ToArray() 不工作?

delphi - 如何在Builder XE6的运行时动态添加组件?

html - 如何防止所有页面都打印thead

android - 如何更改 Android 中全息主题的菜单项文本颜色?