当前位置: 首页 > news >正文

html5静默打印_解答:如何实现在打印窗体内容是不弹出打印设置框从而实现静默打印的呢?...

鉴于一个简单的问题,在网上竟然没有得到想要的答案,才求助于C++技术网,很感谢[GyaoG]对C++技术网的信任。我们将研究结果单独成文发布出来,给予支持,因为文章图文内容比较多,所以不直接在文中追加解答。

我们使用MFC的实现方案,下面是实现打印最简洁的代码:

void Print()

{

CPrintDialog m_printdlg(FALSE);//打印对话框,用于获取打印参数

m_printdlg.GetDefaults();//不显示打印对话框直接获取默认设置参数

//m_printdlg.DoModal();//显示打印对话框设置参数

CDC dc;

dc.Attach(m_printdlg.GetPrinterDC());//将打印机DC关联到我们创建的DC,就可以直接像普通绘图一样操作打印机绘制了

//直接打印

dc.StartDoc(_T("TestPrint"));//开始打印流程

dc.TextOut(0,0,_T("C++技术网 [http://www.cjjjs.com]"));

dc.TextOut(0,120,_T("C++技术网 - 国内最专业的C++编程学习网站,小白进修大神的必备网站"));

dc.TextOut(0,240,_T("C++技术网 - 为程序员提供全方位指导服务。"));

dc.EndDoc();//结束打印流程

}

直接包装成一个函数,可以直接打印。代码注释很明确了,基本代码就不再解释了。说点其他的。

我们使用CPrintDialog对话框,既可以使用打印设置对话框,也可以不用。千万不要被这个类名称迷惑。不显示对话框的打印,也就是直接打印了。打印对话框的作用就是获取打印需要的必要参数。参数只要有了,不管有没有对话框,都是可以的。

我们创建CPrintDialog对话框对象,可以传入FALSE,也可以传入TRUE,这样分别是使用两种打印机设置对话框。如果是TRUE,则用DoModal()会弹出设置打印机本身相关的参数,如下如所示:

相关文章:

  • Windows下vue-cli脚手架搭建入门一
  • cython 安装升级_20个小招数教你如果快速完成Python 性能优化升级
  • [NOI 2016]循环之美
  • finereport连接oracle_FineReport连接多维数据库示例及操作
  • linux 扩展挂载盘大小_Linux下使用fdisk扩展分区容量
  • JavaScript (function (){}()) 与(function(){})()
  • python assert 不退出_Pytest中断言的重要性,就不需要我重复了吧
  • IDEA中Lombok插件的安装与使用
  • python坦克大战_python资料领取:尚学堂201903期python全栈(0基础到就业)
  • 【leetcode】88. 合并两个有序数
  • aix么把占用的端口释放掉_UNIX系统如何释放被异常占用的端口 - 河北分行(秦永峰)...
  • redis 多维度排序_解决Redis Cluster模式下的排序问题
  • python基础学习01
  • 不同平台安装python方式一样_大厦的基石,成为一个Python工程师的第一步——安装Python...
  • vue 多页面应用例子_用vue构建多页面应用
  • [Vue CLI 3] 配置解析之 css.extract
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • C学习-枚举(九)
  • Go 语言编译器的 //go: 详解
  • IDEA 插件开发入门教程
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JS笔记四:作用域、变量(函数)提升
  • MySQL-事务管理(基础)
  • Node 版本管理
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SwizzleMethod 黑魔法
  • vuex 笔记整理
  • webpack4 一点通
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深入 Nginx 之配置篇
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 算法系列——算法入门之递归分而治之思想的实现
  • 微信小程序开发问题汇总
  • 找一份好的前端工作,起点很重要
  • Android开发者必备:推荐一款助力开发的开源APP
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​linux启动进程的方式
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #Linux(权限管理)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (zt)最盛行的警世狂言(爆笑)
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (转载)从 Java 代码到 Java 堆
  • .NET Core MongoDB数据仓储和工作单元模式封装