html格式文件打印,html文件打印

C/C++ codeHRESULT hr = S_OK;

CComPtr spbodyelement;

// this_class 继承自 CDHtmlDialog

VERIFY(SUCCEEDED(hr = m_spHtmlDoc->get_body(&spbodyelement)));

CComPtr spbody2;

VERIFY(SUCCEEDED(hr = spbodyelement->QueryInterface(IID_IHTMLElement2, (void**)&spbody2)));

CComPtr spviewobj;

VERIFY(SUCCEEDED(hr = m_spHtmlDoc->QueryInterface(IID_IViewObject, (void**)&spviewobj)));

// 网页大小

// 遇到不规范的html数据就无法得到实际值

CRect rcthtml;

rcthtml.left = rcthtml.top = 0;

VERIFY(SUCCEEDED(hr = spbody2->get_scrollWidth(&rcthtml.right)));

VERIFY(SUCCEEDED(hr = spbody2->get_scrollHeight(&rcthtml.bottom)));

MoveWindow(rcthtml);

if (m_deqPrintTask.empty())

{

return;

}

const boost::shared_ptr<_printtask>& spprinttask = m_deqPrintTask.front();

ASSERT(spprinttask);

// cdcPrinter是CDC类型的,已经初始化并用DEVMODE ResetDC过了

// 取得打印纸大小

CRect rctdev(0, 0,

spprinttask->cdcPrinter.GetDeviceCaps(HORZRES),

spprinttask->cdcPrinter.GetDeviceCaps(VERTRES));

spprinttask->cdcPrinter.StartDoc(_T("HTML print"));

spprinttask->cdcPrinter.StartPage();

// 这里 hr 始终是 S_OK ,但遇到不规范的html格式就无法绘制到打印机

VERIFY(SUCCEEDED(hr = OleDraw(m_spHtmlDoc,

DVASPECT_CONTENT,

spprinttask->cdcPrinter,

rctdev)));

spprinttask->cdcPrinter.EndPage();

spprinttask->cdcPrinter.EndDoc();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值