急求SDK方式操纵打印机的代码或详细思路和做法

dave75 2001-04-06 01:25:00
请详述整个过程,包括检测是否有在线的打印机,格式输出,打印预览等.
分数不够可以再加,我还有2000可用分.我的E_MAIL地址:cnt_dave@china.com
...全文
489 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dave75 2001-05-11
  • 打赏
  • 举报
回复
还有人要发表意见吗?
dave75 2001-05-11
  • 打赏
  • 举报
回复
谢谢1995111()
还有没有高手要发表意见,如果没有我要给分了.
homecpp 2001-05-11
  • 打赏
  • 举报
回复
长度超过int的如何打?
1995111 2001-05-11
  • 打赏
  • 举报
回复
以前为一企业所写,X掉关键字,直接粘来:
void PrintF2(HWND hwnd,char cLeoOrKev)
{
PRINTDLG pd = {0};

pd.lStructSize = sizeof(pd);
pd.hwndOwner = hwnd;
pd.hDevMode = hDevMode;
pd.hDevNames = hDevNames;
pd.Flags = PD_DISABLEPRINTTOFILE|PD_NOPAGENUMS|PD_SHOWHELP
|PD_RETURNDC|PD_NOSELECTION;
pd.nFromPage = 0xFFFF;
pd.nToPage = 0xFFFF;
pd.nMinPage = 0;
pd.nMaxPage = 0xFFFF;
pd.nCopies = 1;

if (PrintDlg(&pd))
{
hDevMode=pd.hDevMode;
hDevNames=pd.hDevNames;

GoPrintF2(hwnd,
pd.hDC,
pd.nCopies,cLeoOrKev);

}


}


void GoPrintF2(HWND hwnd, // 所属窗口的句柄
HDC hdc, // 打印机设备描述表
UINT nCopies, // 复制份数
char cLeoOrKev //xxxxxxxxxx
)
{
HFONT hFont,hOldFont;
LOGFONT LogFont = {-12, 0, 0, 0, FW_NORMAL,
FALSE, FALSE, FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
"宋体"
};
DOCINFO di;
unsigned int i;
int LogPixelSy;
unsigned short int ibas;
// 填写DOCINFO结构。
ZeroMemory(&di, sizeof (DOCINFO));
di.cbSize = sizeof (DOCINFO);
di.lpszDocName = "xxxxx副页打印";// 文档名称
di.lpszOutput = NULL; // 输出文件的名称

LogPixelSy = GetDeviceCaps(hdc, LOGPIXELSY);
ibas=LogPixelSy/100;
LogFont.lfHeight = -MulDiv(14, LogPixelSy, 72);
hFont=CreateFontIndirect(&LogFont);

if(hFont==NULL)return;

if (StartDoc(hdc, &di) < 0)
{

DWORD dwErr = GetLastError();
char szErr[128];
wsprintf(szErr, "%ld打印机作业错误%ld", (DWORD)hdc, dwErr);
MessageBox(hwnd, szErr, "错误", MB_OK | MB_ICONHAND);
DeleteDC(hdc);
return;
}

// 废止主窗口,以避免产生重入问题。
EnableWindow(hwnd, FALSE);

for(i=0;i<nCopies;i++)
{
StartPage(hdc);
hOldFont=SelectObject(hdc,hFont);
SetTextCharacterExtra(hdc, 1);

TextOut(hdc,240*ibas,267*ibas,"分 析 依 据:",16);
if(cLeoOrKev==1)
{
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight,"SY/ T xxxx-1997",15);
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight*3,"《xxxxxxxxxxxx分析方法》",34);
TextOut(hdc,240*ibas,270*ibas-LogFont.lfHeight*5,"主要分析设备:",14);
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight*7,"xxxxxxxxxxxx440",18);
}
if(cLeoOrKev==2)
{
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight,"SY/ T 6189-1996",15);
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight*3,"《xxxxxxxxxxxxxx方法》",28);
TextOut(hdc,240*ibas,270*ibas-LogFont.lfHeight*5,"主要分析设备:",14);
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight*7,"xxxxxxxxx仪",11);
}

TextOut(hdc,240*ibas,270*ibas-LogFont.lfHeight*10,"分析环境:",10);
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight*12,"室温:     ℃",18);
TextOut(hdc,273*ibas,270*ibas-LogFont.lfHeight*14,"湿度:     %",18);
TextOut(hdc,240*ibas,270*ibas-LogFont.lfHeight*17,"分 析 人:",12);
TextOut(hdc,240*ibas,270*ibas-LogFont.lfHeight*19,"校 核 人:",12);
TextOut(hdc,240*ibas,270*ibas-LogFont.lfHeight*21,"技术负责人:",12);

SelectObject(hdc,hOldFont);
EndPage(hdc);
}

EndDoc(hdc);

// 启用主窗口
EnableWindow(hwnd, TRUE);
DeleteObject(hFont);
DeleteDC(hdc);
MessageBeep( 0) ;

}

dave75 2001-05-11
  • 打赏
  • 举报
回复
大虾在哪里?
dave75 2001-05-11
  • 打赏
  • 举报
回复
请大家再看一看,没有代码有个详细的思路也可以啊!谢谢!
vcroad 2001-04-07
  • 打赏
  • 举报
回复
dave是你在说话啊,打印方面的我可不知道,不过我主页上双增加了不少SDK源代码,你看看或许对你有用。

http://vcroad.6to23.com
yf_000 2001-04-06
  • 打赏
  • 举报
回复
呵呵,太好了,我正愁找不到资料呢!

谢谢Tasehouny(阿甘)!!: ) 
Tasehouny 2001-04-06
  • 打赏
  • 举报
回复
你为什么要用SDK?我前些日子写存折打印是苦恼透了,到处求代码,没有人理我,只好到网上去求了,如果你用VC+MFC,我可以推荐给你一套打印类库,太方便了,平推的打折子的工作我只用了半天就完成了。爽!爽!爽!

拿来和兄弟分享。 在www.codetools.com中找print,有一套Print Lib,好用。有例子程序,我把要打印的内容通过一个结构传给CPage对象,检测是否有在线的打印机,格式输出,打印预览等简直是小菜一碟。

16,548

社区成员

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

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

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