最近正在做一个项目,有一个需求一直困扰着我,不知道怎么解决——以前也碰到过。
要求:将相关打印内容合为一个文档,以便多次打印这个合并后的文档。参考方法:
1.使用已有虚拟打印机,如:打印为位图,然后再把几个位图合并到一起。占用资源多,解决第一个打印结束页面与下一个打印开始页面之间的空白,比较难。
2.自己开发虚拟打印机,目前没有可参考的样例,不知道怎么实现。好处是,可以任意形成自己需要的格式文件。
3.将打印的内容,首先打到与printDC相关的内存DC中(已经选择内存BITMAP),然后把BITMAP转成BMP文件。需要添加若干代码,消耗资源比较多,有时候与真实打印又不一致。若将已经绘制好的PRINTDC内容取出放到MEMDC上,然后再转BMP,流程则比较清晰间接,可做成统一的处理接口——但是无法将PRINTDC内容取出,BitBlt函数无效。
4.对于CDC类,若将其所有函数处理,保存为某种格式的命令语句文件,然后解析命令打印是否可行?
要求:将相关打印内容合为一个文档,以便多次打印这个合并后的文档。参考方法:
1.使用已有虚拟打印机,如:打印为位图,然后再把几个位图合并到一起。占用资源多,解决第一个打印结束页面与下一个打印开始页面之间的空白,比较难。
2.自己开发虚拟打印机,目前没有可参考的样例,不知道怎么实现。好处是,可以任意形成自己需要的格式文件。
3.将打印的内容,首先打到与printDC相关的内存DC中(已经选择内存BITMAP),然后把BITMAP转成BMP文件。需要添加若干代码,消耗资源比较多,有时候与真实打印又不一致。若将已经绘制好的PRINTDC内容取出放到MEMDC上,然后再转BMP,流程则比较清晰间接,可做成统一的处理接口——但是无法将PRINTDC内容取出,BitBlt函数无效。
4.对于CDC类,若将其所有函数处理,保存为某种格式的命令语句文件,然后解析命令打印是否可行?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货