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

Printing 如何创建分辨率与所选打印机匹配的设备相关位图,printing,bitmap,gdi,dpi,Printing,Bitmap,Gdi,Dpi,我正在开发一种工具来帮助我们的客户打印标签。我做了所有我们想要的改变来支持颜色和透明度。所有的东西都可以打印,但是 打印文本时,可以看到字体质量不是最佳的。我正在使用中间位图将创建最终结果所需的每一层文本和位图夹在中间,然后将其复制到printer.canvas上的正确位置 使用我们工具的前一个版本,文本清晰,但使用新版本,文本更粗糙 我能找到的打印机画布和位图画布之间的唯一区别是dpi。打印机具有600x600 dpi,我的画布为96 x 96 我所做的一切都是为了测量打印机dpi的性能。我的

我正在开发一种工具来帮助我们的客户打印标签。我做了所有我们想要的改变来支持颜色和透明度。所有的东西都可以打印,但是

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

使用我们工具的前一个版本,文本清晰,但使用新版本,文本更粗糙

我能找到的打印机画布和位图画布之间的唯一区别是dpi。打印机具有600x600 dpi,我的画布为96 x 96

我所做的一切都是为了测量打印机dpi的性能。我的意思是我不会调整位图的大小以匹配打印机的大小。因此,它不是导致质量损失的原因

我尝试将CreateCompatibleBitmap与printer.canvas兼容,希望得到一个与printer canvas具有相同特性的新位图。但我发现我的位图仍然是96x96 dpi和打印机的600x600 dpi。那么,我如何创建一个dpi为600x600的位图(取决于设备与否),使我的字体打印达到完美?因为我尝试将标签的大小增加四倍,然后使用StretchDIBits将其恢复到正常大小。它给了我几乎完美的结果。但我遇到了记忆问题和奇怪的行为(完全是黑色的画布)。除非在那件事上我忽略了什么


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

删除了HTML5画布标记,因为这似乎只是GDI。我从未提及任何HTML标记,它是针对windows的GDI编程。谢谢您的时间。canvas标签是针对html5 canvas的。