小弟最近在研究利用windows的虚拟打印机把TXT,DOC,EXCEL等格式的文件转换成可传真的TIFF文件,并通过东进卡进行传真,一直都没一个明确的方向,怎么调用虚拟打印机的接口函数来进行转换呢,高分求解,如有人解答,散播所有分数
解决方案 »
- 请大家帮忙!VC6+BCG开发的代码怎样移植到Visual Studio 2008下?
- 【在线求助】串口数据提取?控件还是串口类?
- 如何实时关闭某个指定窗口
- 还没工作,或不满意的进来!!!
- 请问如何把一个二进制文件转成10进制文件即用记事本可以直接打开观看的文件
- ADO奇案之“一个Execute问题”,超急*******************************************************************************!
- 某公司面试题谁帮我做做??
- 怎么样改变对话框上控件的背景色?
- 请教高手,
- 关于文本内容获取的问题
- 跪求帮助,
- 无法找到MFC90UD.dll
非常感谢
void CMvprinterDlg::OnOK()
{
// TODO: Add extra validation here //调用word自带的Microsoft Office Document Image Writer虚拟打印图片
DWORD dwNeeded, dwReturned;
HDC hdc; //绘图套套名字类型
PRINTER_INFO_4 *pinfo4;
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,NULL,0,&dwNeeded,&dwReturned);
pinfo4=(PRINTER_INFO_4*)malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,(PBYTE)pinfo4, dwNeeded,&dwNeeded,&dwReturned);
//查找虚拟打印机 Microsoft Office Document Image Writer
for (int i = 0; i < dwReturned; i++)
{
CString str = CString(pinfo4[i].pPrinterName);
if (str.Compare(CString("Microsoft Office Document Image Writer"))==0)
{
//创建打印机的DC
pinfo4->pPrinterName = "Microsoft Office Document Image Writer";
hdc=CreateDC(NULL,pinfo4->pPrinterName,NULL,NULL);
break;
}
}
free(pinfo4);
// 使用hdc输出到打印机
//static DOCINFO di = { sizeof (DOCINFO), TEXT ("FormFeed") } ;
DOCINFO di;
memset(&di,0,sizeof (DOCINFO));
di.cbSize=sizeof (DOCINFO);
di.lpszOutput = (LPTSTR) NULL;
//di.lpszDocName = "Printing Test";
if (hdc != NULL)
{
if (StartDoc (hdc, &di) > 0)
if (StartPage (hdc) > 0 && EndPage (hdc) > 0)
EndDoc (hdc) ;
DeleteDC (hdc) ; } CDialog::OnOK();
}
以上代码可以通过windows虚拟机打印成tif格式的文件,但是我不知道怎么读取源文件(TXT,DOC,EXCEL)给虚拟打印机来打印出来
HINSTANCE hRet = ShellExecute(NULL, "print", szCurPlayFilePath, NULL, NULL,SW_HIDE);
这个方法可以直接打印成tiff格式的文件,但是会弹出来对话框让我选择保存路径,有什么办法可以不弹出对话框而直接把打印的文件保存在读取文件的路径下呢
邮箱[email protected]
十分感谢
我的Email:[email protected] QQ : 253372250非常感谢!