简介及相关资料:
我正在维护一个旧应用程序,我需要实现基于从数据库计算的数据生成报告的功能。用户还必须有打印文件的附加选项(用户必须能够选择打印机,并且必须能够看到打印预览)。
为了提高我得到满意答案的机会,请允许我用一个小“例子”来说明问题:
用户按下按钮 -> 应用程序计算数据;// 完毕
应用程序创建文件并用结果填充它;// 完毕
通知用户生成报告;// 完毕
用户按下另一个为打印收费的按钮;// 卡在这里!
弹出打印预览和运行打印对话框的选项。 // 卡在这里
用户启动打印对话框,选择打印机和应用程序打印文件;
C++
该应用程序是使用 raw WinAPI
( no )编码的MFC
。我正在使用 Windows XP。
问题:
我能够成功使用OLE 自动化生成/保存Word和Excel报告,但我无法创建与 Word 将创建的打印预览完全匹配的打印预览。
如果我使用OLE 自动化显示Excel 的打印对话框/打印预览,可能会出现以下问题:
用户可以简单地点击“关闭打印预览”,或者可以简单地关闭打印属性表(见下图)并返回到可能会破坏文档数据的文档。
我的雇主不喜欢这样(他们没有软件工程/开发背景,所以无论我说什么最终都会成为“风中的回声”......)并且他们希望我的打印预览与打印预览完全匹配Word 生成。
因此,我需要一种为用户生成打印预览的解决方案,其方式与 Word 将创建的打印预览完全匹配。此外,用户应该只能看到它的样子,但不能从我的应用程序中打开文件。用户应该能够选择将打印文件的打印机。
与图片中的实现类似的实现就可以了。
问题:
介绍性说明:
这个问题太宽泛,无法在一篇文章中回答,所以我必须限制自己只寻求建议/一般概念/指向正确的方向。
实际问题:
我在OLE 自动化和Excel / Word文件方面尽了最大努力,但正如您所见,生成打印预览存在问题,因此有以下问题:
由于这是我第一次处理此类任务,您能否推荐我处理它的正确方法(当然是一般概念)?
是否有可能解决我的打印问题(例如将
WM_PRINTCLIENT
消息发送到Word/Excel或类似的东西)?
评论 :
再一次,我意识到这个问题太宽泛了,所以只给我一般的概念/指针,这样如果我在某个地方卡住了,我可以发布单独的问题。
我不需要使用Word / Excel和OLE 自动化,这是我目前的选择。
如果您能推荐更好的解决方案,我将很乐意接受。我不想使用图书馆。
如果需要其他信息,请询问,我将编辑我的帖子。