高分求教:关于将打印预览的东西输出生成WORD文档的问题

bush2002 2003-09-29 05:15:11
我作了个打印预览报告的程序,希望能将里面的内容自动生成WORD文档并保存,不知哪位高手可以提供源程序?
...全文
171 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Allesgut 2003-09-30
  • 打赏
  • 举报
回复
等PrintDialog返回判断值,如果是IDOK……,如果是IDCANCEL……。东西我给你发了,请查收
bush2002 2003-09-30
  • 打赏
  • 举报
回复
Allesgut:谢谢你。
我的意思是想将打印预览里的内容生成WORD文档,而且格式一样。这样在程序里不用调用WORD程序,先查看类似于WORD预览生成的报告,如果用户满意则可以生成WORD文档,方便给别人看。我的邮箱:emily_2003@citiz.net
wuxfBrave 2003-09-30
  • 打赏
  • 举报
回复
楼上的都说完了,预览和生成文件分开确实是对的,只能up了
Allesgut 2003-09-29
  • 打赏
  • 举报
回复
我的想法是你预览和WORD文档分开生成,WORD文档的生成的MSDN上有段源码你可以看一下

//Commonly used variants.
COleVariant vTrue((short)TRUE),
vFalse((short)FALSE),
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

//Start a new instance of Microsoft Word
_Application oWordApp;
if (!oWordApp.CreateDispatch("Word.Application", NULL))
{
AfxMessageBox("CreateDispatch failed.",
MB_OK | MB_SETFOREGROUND);
return;
}

try
{

//Create a new document
Documents oDocs;
_Document oDoc;
oDocs = oWordApp.GetDocuments();
oDoc = oDocs.Add(vOpt, vOpt);

//Add text to the document
Selection oSel;
oSel = oWordApp.GetSelection();
oSel.TypeText("one");
oSel.TypeParagraph();
oSel.TypeText("two");
oSel.TypeParagraph();
oSel.TypeText("three");

//Save the document
_Document oActiveDoc;
oActiveDoc = oWordApp.GetActiveDocument();
oWordApp.SetVisible(TRUE);

// TRY THIS:
// To see the error handling in action, change
// the following line to:
//
// oActiveDoc.SaveAs(COleVariant((long)5),
// COleVariant((short)0),
// vFalse, COleVariant(""), vTrue, COleVariant(""),
// vFalse, vFalse, vFalse, vFalse, vFalse);
//
// ALSO TRY THIS:
// To see the error handling in action, change the
// following line to:
//
// oActiveDoc.SaveAs(COleVariant("c:\\badpath\\doc1.doc"),
// COleVariant((short)0),
// vFalse, COleVariant(""), vTrue, COleVariant(""),
// vFalse, vFalse, vFalse, vFalse, vFalse);

oActiveDoc.SaveAs(COleVariant("c:\\doc1.doc"),
COleVariant((short)0),
vFalse, COleVariant(""), vTrue, COleVariant(""),
vFalse, vFalse, vFalse, vFalse, vFalse);
}

catch(COleException *e)
{
LPVOID lpMsg;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, e->m_sc,
MAKELANGID(LANG_NEUTRAL,
SUBLANG_DEFAULT),(LPTSTR) &lpMsg,
0, NULL);
::MessageBox(NULL, (LPCTSTR)lpMsg, "COM Error",
MB_OK | MB_SETFOREGROUND);
::LocalFree( lpMsg );
}

catch(COleDispatchException *e)
{
char msg[512];
sprintf(msg, "Run-time error '%d':\n\n%s",
e->m_scError & 0x0000FFFF, e->m_strDescription);
::MessageBox(NULL, msg, "Server Error",
MB_OK | MB_SETFOREGROUND);
}


//Quit the application
oWordApp.Quit(vFalse, vOpt, vOpt);

要别的例子的话给我邮箱,我发给你

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧