我在VS2008中使用GDI+的消除字体锯齿,
使用的是graphics.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
在打印预览时,可以正常消除字体锯齿。
但是在当使用Microsoft Office Document Image Writer虚拟打印机时显示还是有锯齿,与没有消除锯齿功能一样。
不知道为什么?

解决方案 »

  1.   

    试试TextRenderingHintAntiAliasGridFit
      

  2.   

    使用其他的打印机,比如pdf虚拟打印机,者物理打印机,试试看,有没有打印机能支持的,看看是不是打印机的问题.
      

  3.   

    试试TextRenderingHintAntiAliasGridFit
      

  4.   

    打印机设备可能不支持这样的能力。
    如果使用的是EMF格式的Spooling机制,那么仅仅是将打印时候的的GDI命令保存了下来,然后再打印机的DC上进行回放(rendering),如果打印机设备不支持抗锯齿,那么可能就得不到这样的效果。
    不知道是否有办法从HDC中query出该设备是否支持抗锯齿的能力。
      

  5.   

    不管怎么样,打印机和显示器一样,都是一种显示设备。
    打印的过程,就是将图形、字体,等等在显示设备上进行rendering的过程,效果取决于打印机的驱动是否支持这种能力。不过我怀疑打印机不需要ClearType这种抗锯齿能力,因为打印机的解析度要远远高于显示器。
      

  6.   

    TextRenderingHintAntiAliasGridFit已经试过了。
      

  7.   

    TextRenderingHintAntiAliasGridFit,你怎么试的?
      

  8.   

    在写文字之前,使用这个。
    graphics.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);