我在VS2008中使用GDI+的消除字体锯齿,
使用的是graphics.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
在打印预览时,可以正常消除字体锯齿。
但是在当使用Microsoft Office Document Image Writer虚拟打印机时显示还是有锯齿,与没有消除锯齿功能一样。
不知道为什么?
使用的是graphics.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
在打印预览时,可以正常消除字体锯齿。
但是在当使用Microsoft Office Document Image Writer虚拟打印机时显示还是有锯齿,与没有消除锯齿功能一样。
不知道为什么?
如果使用的是EMF格式的Spooling机制,那么仅仅是将打印时候的的GDI命令保存了下来,然后再打印机的DC上进行回放(rendering),如果打印机设备不支持抗锯齿,那么可能就得不到这样的效果。
不知道是否有办法从HDC中query出该设备是否支持抗锯齿的能力。
打印的过程,就是将图形、字体,等等在显示设备上进行rendering的过程,效果取决于打印机的驱动是否支持这种能力。不过我怀疑打印机不需要ClearType这种抗锯齿能力,因为打印机的解析度要远远高于显示器。
graphics.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);