请问mfc如何控制打印机走纸(CPrintDialog的使用问题)?

dos5gw 2011-02-23 04:23:25
软件环境xp + vc++ 6.0
打印机,EPSON-1600K
打印的纸张是连续的,纸张边缘带针孔的那种

打印的格式为自定义,只有1~3行数据,但是打印完成后,纸张会自动走完整的一页,大部分纸都空白浪费掉了,
想实现的目标是: 打印完数据后, 控制打印机走纸, 只让带字的一小段纸张出来,而不是整一张纸都出来,

请问如何用mfc控制打印机的走纸?
...全文
401 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dos5gw 2011-02-23
  • 打赏
  • 举报
回复
貌似有头绪了,http://hi.baidu.com/godtiantian/blog/item/53a68a19ae0a984142a9ada2.html
mark一下,明天接上打印机试验一下
dos5gw 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cheeralen 的回复:]

打印之前设置一下page size不知可不可以
[/Quote]

能不能具体的说下? 那个函数是page size?
暗黑帝国 2011-02-23
  • 打赏
  • 举报
回复
打印之前设置一下page size不知可不可以
dos5gw 2011-02-23
  • 打赏
  • 举报
回复
目前的代码如下, 执行后, 打印机会走一张完整的纸
[code=C]/C++

CPrintDialog dlg(FALSE,PD_NOPAGENUMS|PD_COLLATE,this);

if(dlg.DoModal() == IDOK)
{
CDC dc;
dc.Attach(dlg.GetPrinterDC());
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "SimplePrintDoc";
di.lpszOutput = NULL;
di.lpszDatatype = NULL;
di.fwType = 0;
dc.StartDoc(&di);
dc.StartPage();
dc.SetMapMode(MM_HIENGLISH);

CRect rectPrint(0, 0,
dc.GetDeviceCaps(HORZRES),
dc.GetDeviceCaps(VERTRES));
dc.DPtoLP(&rectPrint);
dc.SetWindowOrg(-150, -rectPrint.bottom);//dc.SetWindowOrg(-2150, -rectPrint.bottom);
CFont font;
VERIFY(font.CreatePointFont(120, "宋体", &dc));//VERIFY(font.CreatePointFont(120, "Arial", &dc));
CFont* def_font = dc.SelectObject(&font);
dc.SetTextAlign(TA_TOP|TA_LEFT);

CString toPrintStringTemp = toPrintStringAll;
toPrintStringTemp += "\n";

CString ss;
int index;
CSize size;
int x = 300;//300;
int y = 9000;//9000;
size = dc.GetTextExtent("00", 2);

while((index = toPrintStringTemp.Find("\n")) != -1)
{
ss = toPrintStringTemp.Left(index);
if(ss.Find("\r") != -1)
ss = toPrintStringTemp.Left(index-1);
toPrintStringTemp = toPrintStringTemp.Mid(index+1);
dc.TextOut(x, y, ss);
y -= size.cy;
}
//dc.TextOut(x, y, ss);
dc.SelectObject(def_font);
font.DeleteObject();
dc.EndPage();
dc.EndDoc();
DeleteDC(dc.Detach());
}
[/code]

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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