Word2007打开文档提醒文档可能已经损坏
Word2007打开文档提示文档可能已经损坏
本帖最后由 YY_kici 于 2011-07-21 16:40:15 编辑 我的代码如下:
打开方法如下
m_spDocs = m_spApp->GetDocuments();
CComVariant varFileName(pDocPath);
//路径类似这样
//"http://192.168.0.68:8181/DocumentManageSystem/web/32/6a528e1c-dbc5-4171-a4e3-89c5449335a1.docx"
CComVariant varTrue(VARIANT_TRUE);
CComVariant varFalse(VARIANT_FALSE);
CComVariant vEmpty(DISP_E_PARAMNOTFOUND, VT_ERROR);
CComVariant vOpenFormat(wdOpenFormatXMLDocument);//就这个参数不知道怎么给了
CComVariant varFullStr("");
m_spDoc = m_spDocs->Open(
&varFileName, // 文档名(可包含路径)
&varFalse, // 显示“文件转换”对话框
&varFalse, // 以只读方式打开文档
&varFalse, // 将文件名添加至“文件”菜单底部的最近使用过的文件列表中
&varFullStr, // 打开此文档时所需的密码
&varFullStr, // 打开此模板时所需的密码
&varFalse, // True,重新打开该文档; False,则激活已打开的文档。
&varFullStr, // 保存对文档进行的更改时所需的密码。
&varFullStr, // 保存对模板进行的更改时所需的密码。
&vOpenFormat, // 打开文档时使用的文件转换器。
&vEmpty, // 在查看保存的文档时,Microsoft Word 所使用的文档编码(代码页或字符集)。
&varFalse, // 在可见窗口中打开文档
&vEmpty,
&vEmpty,
&vEmpty,
&varFullStr
);
保存方法如下:
CComVariant vtFileName(lpDocumentPath);
CComVariant vtFalse(VARIANT_FALSE);
CComVariant vtOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CComVariant vtFileFormat(wdFormatXMLDocument);
CComVariant vtFullStr("");
m_spDoc->SaveAs(
&vtFileName, //FileName
&vtFileFormat, //FileFormat
&vtFalse, //LockComments
&vtFullStr, //Password
&vtFalse, //AddToRecentFiles
&vtFullStr, //WritePassword
&vtFalse, //ReadOnlyRecommended
&vtFalse, //EmbedTrueTypeFonts
&vtFalse, //SaveNativePictureFormat
&vtFalse, //SaveFormsData
&vtFalse //SaveAsAOCELetter
);
m_spDoc、m_spDocs这些对象都没有问题,保存后的文件也可能由WORD2007应该程序打开,没有兼容模式字样,但代码打开就不好用了。
大家帮我看看,谢谢
------解决方案--------------------
自己顶下吧
------解决方案--------------------
这是vb代码么?怎么看着像C++的...我是不是悲剧了
------解决方案--------------------
2楼,这是C++代码
------解决方案--------------------
在线等候
------解决方案--------------------
自己解决了
------解决方案--------------------
有个问题就是打开时为什么指下OPENFORMAT为wdOpenFormatAuto这个值时,需要设置OpenAndRepair为true呢?
------解决方案--------------------
该回复于2011-11-21 10:05:46被版主删除
本帖最后由 YY_kici 于 2011-07-21 16:40:15 编辑 我的代码如下:
打开方法如下
m_spDocs = m_spApp->GetDocuments();
CComVariant varFileName(pDocPath);
//路径类似这样
//"http://192.168.0.68:8181/DocumentManageSystem/web/32/6a528e1c-dbc5-4171-a4e3-89c5449335a1.docx"
CComVariant varTrue(VARIANT_TRUE);
CComVariant varFalse(VARIANT_FALSE);
CComVariant vEmpty(DISP_E_PARAMNOTFOUND, VT_ERROR);
CComVariant vOpenFormat(wdOpenFormatXMLDocument);//就这个参数不知道怎么给了
CComVariant varFullStr("");
m_spDoc = m_spDocs->Open(
&varFileName, // 文档名(可包含路径)
&varFalse, // 显示“文件转换”对话框
&varFalse, // 以只读方式打开文档
&varFalse, // 将文件名添加至“文件”菜单底部的最近使用过的文件列表中
&varFullStr, // 打开此文档时所需的密码
&varFullStr, // 打开此模板时所需的密码
&varFalse, // True,重新打开该文档; False,则激活已打开的文档。
&varFullStr, // 保存对文档进行的更改时所需的密码。
&varFullStr, // 保存对模板进行的更改时所需的密码。
&vOpenFormat, // 打开文档时使用的文件转换器。
&vEmpty, // 在查看保存的文档时,Microsoft Word 所使用的文档编码(代码页或字符集)。
&varFalse, // 在可见窗口中打开文档
&vEmpty,
&vEmpty,
&vEmpty,
&varFullStr
);
保存方法如下:
CComVariant vtFileName(lpDocumentPath);
CComVariant vtFalse(VARIANT_FALSE);
CComVariant vtOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CComVariant vtFileFormat(wdFormatXMLDocument);
CComVariant vtFullStr("");
m_spDoc->SaveAs(
&vtFileName, //FileName
&vtFileFormat, //FileFormat
&vtFalse, //LockComments
&vtFullStr, //Password
&vtFalse, //AddToRecentFiles
&vtFullStr, //WritePassword
&vtFalse, //ReadOnlyRecommended
&vtFalse, //EmbedTrueTypeFonts
&vtFalse, //SaveNativePictureFormat
&vtFalse, //SaveFormsData
&vtFalse //SaveAsAOCELetter
);
m_spDoc、m_spDocs这些对象都没有问题,保存后的文件也可能由WORD2007应该程序打开,没有兼容模式字样,但代码打开就不好用了。
大家帮我看看,谢谢
------解决方案--------------------
自己顶下吧
------解决方案--------------------
这是vb代码么?怎么看着像C++的...我是不是悲剧了
------解决方案--------------------
2楼,这是C++代码
------解决方案--------------------
在线等候
------解决方案--------------------
自己解决了
------解决方案--------------------
有个问题就是打开时为什么指下OPENFORMAT为wdOpenFormatAuto这个值时,需要设置OpenAndRepair为true呢?
------解决方案--------------------
该回复于2011-11-21 10:05:46被版主删除