如何使用与所选打印机匹配的分辨率创建设备相关位图

时间:2016-04-15 19:17:34

标签: printing bitmap gdi dpi

我正在开发一种工具来帮助我们的客户打印标签。我做了所有我们想要的改变来支持颜色和透明度。一切都工作甚至印刷,但......

打印文本时,可以看到字体质量不是最佳的。我使用中间位图来夹创创建最终结果所需的每一层文本和位图,然后将其复制到printer.canvas上的正确位置。

使用我们工具的早期版本,文本很清晰,但新版本的文本更粗糙。

我可以在打印机画布和我的位图画布之间找到的唯一区别是dpi。打印机有600x600 dpi,我的画布96乘96。

我所做的一切都是为了衡量打印机dpi应该做什么。我的意思是我没有调整我的位图大小以匹配打印机大小。所以这不是导致质量下降的原因。

我尝试使用printer.canvas创建CreateCompatibleBitmap,希望获得一个与打印机画布具有相同特性的新位图。但我发现我的位图仍然是96x96 dpi和打印机的600x600 dpi。那么我怎样才能创建一个dpi为600x600的位图(依赖于设备或不依赖于设备),这样可以使我的字体打印到完美?因为我试图将标签的大小翻两番,然后使用StretchDIBits将其恢复到正常大小。它给了我近乎完美的结果。但我遇到了内存问题和奇怪的行为(完全黑色的画布)。除非在这件事上我忽略了一些东西。

提前感谢您的帮助和建议。

0 个答案:

没有答案