请教能不能把指定格式的文字放到指定位置用打印机打印出来?

X21621824636 2014-09-10 07:30:14
操作系统是win7 编译器是vs2010
举例来说就是我有几个字符串,姓名,性别,地址.
假设A4纸大小为(800,400)
比如我要把姓名放在(100,100),字体是黑体,字号是8磅
把性别放在(100,200),字体是隶书,字号是6磅
把地址放在(400,500),字体是隶书,字号是12磅
因为字体字号和位置要可以任意调整,所以类似printf这样一行行的输出函数肯定是不能用的(新人的理解,有大神认为可以的话请务必指导我)
请问下这样一个功能可不可以实现?
花了一个下午查资料,思路倒是有两个,但以我目前的能力全都实现不了。

1.把字符串转成字模点阵,然后让打印机在指定位置打印字模点阵。
对我而言点阵这块就有点摸不着头脑了,更别提让打印机在指定位置打印字模点阵

2.把字符串转换成图片,然后让打印机打印图片。
在这个思路下我找到了CImg,但CImg好像不能调整字体和字号,只能按它默认的字体和字号生成,不符合我的要求。
不知道有没有了解的大神告诉我下CImg是不是能调整每个字符串的字体和字号,或者CImg是不是能接受字模点阵,如果可以的话告诉我怎么做。我再去找下字模的资料。

最后还想请教下,能不能不用MFC,直接写代码让打印机打印指定的文件,比如我上面说的实现后直接打印出来?
...全文
372 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuchang 2014-09-11
  • 打赏
  • 举报
回复
你可以看下MFC中对打印这一块的实现,自己调用系统API来实现就可以了 什么功能都可以实现
X21621824636 2014-09-11
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
参考 MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.DSP MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.RES MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETCAPS.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETCAPS.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETPDRIV.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETPDRIV.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\ENUMPRT.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\ENUMPRT.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PAINT.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PAINT.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\COMMON.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.RC MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\MAKEFILE MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\README.TXT MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\STRINGS.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.ICO MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.DEF MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.BMP
谢谢。
X21621824636 2014-09-11
  • 打赏
  • 举报
回复
引用 2 楼 jiuchang 的回复:
你可以看下MFC中对打印这一块的实现,自己调用系统API来实现就可以了 什么功能都可以实现
我现在还卡在前面,等我把前面的搞定,再试试肯下API吧。
X21621824636 2014-09-11
  • 打赏
  • 举报
回复
引用 1 楼 relaxisland 的回复:
不用mfc, 也得用windowsAPI 一般windows编程都有这个章节的 理论上跟输出到 屏幕差不多, 但是因为 纸张不是以像素点为单位的,有点麻烦
谢谢。
阿麦 2014-09-11
  • 打赏
  • 举报
回复
有一个办法:弄一张与A4一样大的图,在图里把文字画上,然后打印出这张图,就可以控制位置了 GDI+是能够设置字体、字号的,位置也很好控制。
赵4老师 2014-09-11
  • 打赏
  • 举报
回复
参考 MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.DSP MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.RES MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETCAPS.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETCAPS.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETPDRIV.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\GETPDRIV.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\ENUMPRT.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\ENUMPRT.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PAINT.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PAINT.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.C MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\COMMON.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.RC MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\MAKEFILE MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\README.TXT MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\STRINGS.H MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.ICO MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.DEF MSDN98\SAMPLES\VC98\SDK\GRAPHICS\GDI\PRINTER\PRINTER.BMP
relaxisland 2014-09-10
  • 打赏
  • 举报
回复
不用mfc, 也得用windowsAPI 一般windows编程都有这个章节的 理论上跟输出到 屏幕差不多, 但是因为 纸张不是以像素点为单位的,有点麻烦

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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