VC中怎么使用虚拟打印机把TXT,DOC等格式的文件转换成TIFF传真文件 小弟最近在研究利用windows的虚拟打印机把TXT,DOC,EXCEL等格式的文件转换成可传真的TIFF文件,并通过东进卡进行传真,一直都没一个明确的方向,怎么调用虚拟打印机的接口函数来进行转换呢,高分求解,如有人解答,散播所有分数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 tif文件转换的接口,以前给别人发过,我找找,你私信我! 楼上的朋友,请EMAIL [email protected]非常感谢 收到了,看了下,你的程序可以实现该功能,但是不是利用虚拟打印机来实现的,能说下你的方法嘛?我要做成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格式的文件,但是会弹出来对话框让我选择保存路径,有什么办法可以不弹出对话框而直接把打印的文件保存在读取文件的路径下呢 szCurPlayFilePath这个直接传路径不行么? szCurPlayFilePath这个是传的源文件路径,我是想要在输出的时候不弹出对话框让我选择路径而直接保存在源文件的路径下面 结贴了,感谢朋友fandh,虽然你提供了一个可以转换文档的接口,但是源代码中直接使用的API方法 ShellExecute不是我想要的办法 楼上的朋友,我目前也遇到类似的需求,能否将源码也发份给我吗?邮箱[email protected]十分感谢 楼主,我现在也遇到这样的问题,能否将源码共享一下!我的Email:[email protected] QQ : 253372250非常感谢! MFC初级使用vfw求助,实现拍照并显示 如何生成全景图最好用VC CDHtmlDialog有没有类似SendMessage的函数? C#中载入COM组件 vc和MATLAB混合编程进行图像处理 新手问 数据传输问题? 我做了一个应用程序,要运行很长时间,我自己手动关闭应用程序,出现-- 经典绝句,可惜不知作者是谁 如何把_int64类型的数据转换为CString类型的呀? 我要监测一个RADIO按钮,当它弹起来的时候做一些工作,但发现没有这种消息,怎么做呢? 跪求帮助, 无法找到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非常感谢!