我的代码如下:    IViewObject *pViewObject    = NULL;
    IOleObject  *pOleObject     = NULL;
    HRESULT     hret;
    HDC         hDrawDC;
    HBITMAP     hBmp, hBmpOld;
    int         iWidth, iHeight;
    SIZEL       hmSizeL;
    SIZEL       pxSizeL;
    RECTL       rectL; CRect rect;
GetClientRect(rect); CBookLocal7Doc* m_pDoc = GetDocument(); LPDISPATCH DispatchPtr;

DispatchPtr = m_pDoc->m_WebBrows.get_Document();    if(DispatchPtr == NULL)
    {
        return ;
    }
    hret = DispatchPtr->QueryInterface(IID_IViewObject2, (void**)&pViewObject);
    if(FAILED(hret))
    {
        return ;
    }
    hret = DispatchPtr->QueryInterface(IID_IOleObject,(void**)&pOleObject);
    if(FAILED(hret))
    {
        pViewObject->Release();
        return ;
    } hDrawDC = ::CreateCompatibleDC(pDC->m_hDC);    hret = pOleObject->GetExtent(DVASPECT_CONTENT,&hmSizeL);
    if(hret != S_OK)
    {
        pViewObject->Release();
        pOleObject->Release();
        return ;
    }    AtlHiMetricToPixel(&hmSizeL, &pxSizeL);
    iWidth = pxSizeL.cx;
    iHeight = pxSizeL.cy;
    rectL.top = 0;
    rectL.left = 0;
    rectL.right = iWidth;
    rectL.bottom = iHeight;    int bpp = GetDeviceCaps(hDrawDC,BITSPIXEL);
    int planes = GetDeviceCaps(hDrawDC,PLANES); int printwidth = GetDeviceCaps(pDC->m_hDC,HORZRES);
int printheight = GetDeviceCaps(pDC->m_hDC,VERTRES); hBmp = ::CreateCompatibleBitmap(hDrawDC,iWidth,iHeight);
    hBmpOld = (HBITMAP)::SelectObject(hDrawDC,hBmp);    hret = pViewObject->Draw(   DVASPECT_CONTENT, //Aspect to draw - we always want content
                                -1,               //Always -1
                                NULL,             //We don't use pvAspect
                                NULL,             //We don't need to specify a target device
                                NULL,             //We don't need a target HIC
                                hDrawDC,          //The DC to draw on
                                &rectL,           //The bounding box to draw in
                                NULL,             //Only for metafiles
                                NULL,             //Not using a callback
                                0 );              //Not using a callback ::StretchBlt(pDC->m_hDC,0,0,printwidth,printheight,hDrawDC,0,0,iWidth,iHeight,SRCCOPY );
    
    if(hret != S_OK)
    {
        pViewObject->Release();
        pOleObject->Release();
        ::SelectObject(hDrawDC,hBmpOld);
        ::DeleteDC(hDrawDC);
        ::DeleteObject(hBmp);
        return ;
    }结果图片保存或是打印都比较虚,字边缘有锯齿,好像象素有问题。
没法做到IE自带的打印预览那样的显示效果