Получение данных из pdf-документа в приложении просмотра документов
Привет,
Приветствия...
У меня есть приложение для просмотра документов. View отображает pdf-документ с помощью CHTMLCtrl, который можно редактировать, и как только пользователь дает команду Сохранить данные, следующий метод вызывается для получения данных из view.
void getDataFromPDF(CHTMLCtrl &mView) { HRESULT hr; IDispatch* pDispatchDoc = NULL; bool cont=true; int count=0; while(cont && count<100) { count++; pDispatchDoc = mView.GetHtmlDocument(); if(pDispatchDoc != NULL) { IHTMLDocument2* pHTMLDocument2 = NULL; hr = pDispatchDoc->QueryInterface( IID_IHTMLDocument2, (void**)&pHTMLDocument2 ); if(hr == S_OK) { IHTMLElementCollection* pElementCollection = NULL; hr = pHTMLDocument2->get_all(&pElementCollection); if( hr == S_OK && pElementCollection != NULL ) { VARIANT varName; varName.vt = VT_BSTR; BSTR bs=T2BSTR(L"MsgRsp1"); varName.bstrVal = bs; VARIANT var2; VariantInit(&var2); IDispatch* pDispatchElement = NULL; hr = pElementCollection->item( varName, var2, &pDispatchElement ); if( (hr == S_OK) && (pDispatchElement) ) { IHTMLInputHiddenElement* pElement = NULL; hr = pDispatchElement->QueryInterface( IID_IHTMLInputHiddenElement, (void**) &pElement ); if(hr == S_OK) { BSTR bstrTXT; hr=pElement->get_value(&bstrTXT); pElement->Release(); if(hr == S_OK) { m_strFormData= bstrTXT; if(wcscmp(m_strFormData,L"--")) { cont=false; hr=pElement->put_value((BSTR)"--"); } ::SysFreeString( bstrTXT ); } } pDispatchElement->Release(); } pElementCollection->Release(); } pHTMLDocument2->Release(); } pDispatchDoc->Release(); if(cont) Sleep(20); AfxPumpMessage(); } } TRACE("Printing\n"); TRACE(m_strFormData); TRACE("\n"); }В самом первом случае он дает правильные данные, но во время второй попытки, когда пользователь изменил форму, данные, полученные методом getData, являются старыми (независимо от того, что в первой команде).
В третий раз он снова выдает данные предыдущей попытки (вторая команда).
Я искал в интернете, чтобы решить эту проблему, но не нашел ничего подходящего.
Пожалуйста, помогите решить эту проблему.
Спасибо
Вишал
Что я уже пробовал:
http://www.tenouk.com/visualcplusmfc/visualcplusmfc35.html
http://stackoverflow.com/questions/14719345/retrieve-html-source-from-chtmlview-visual-studio-6
https://msdn.microsoft.com/en-us/library/bb250491(v=против 85). aspx
http://www.mctainsh.com/Articles/MFC/CHtmlCtrl.aspx