小弟最近在研究利用windows的虚拟打印机把TXT,DOC,EXCEL等格式的文件转换成可传真的TIFF文件,并通过东进卡进行传真,一直都没一个明确的方向,怎么调用虚拟打印机的接口函数来进行转换呢,高分求解,如有人解答,散播所有分数

解决方案 »

  1.   

    tif文件转换的接口,以前给别人发过,我找找,你私信我!
      

  2.   

    楼上的朋友,请EMAIL [email protected]
    非常感谢
      

  3.   

    收到了,看了下,你的程序可以实现该功能,但是不是利用虚拟打印机来实现的,能说下你的方法嘛?我要做成DLL形式的接口供其他程序调用
      

  4.   

    呵呵,不管怎么说先谢谢了,不过我还是想知道怎么通过虚拟打印机来实现这个功能,我拷贝了一些代码
    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)给虚拟打印机来打印出来
      

  5.   

    请教这位朋友
    HINSTANCE hRet = ShellExecute(NULL, "print", szCurPlayFilePath, NULL, NULL,SW_HIDE);
    这个方法可以直接打印成tiff格式的文件,但是会弹出来对话框让我选择保存路径,有什么办法可以不弹出对话框而直接把打印的文件保存在读取文件的路径下呢
      

  6.   

    szCurPlayFilePath这个直接传路径不行么?
      

  7.   

    szCurPlayFilePath这个是传的源文件路径,我是想要在输出的时候不弹出对话框让我选择路径而直接保存在源文件的路径下面
      

  8.   

    结贴了,感谢朋友fandh,虽然你提供了一个可以转换文档的接口,但是源代码中直接使用的API方法 ShellExecute不是我想要的办法
      

  9.   

    楼上的朋友,我目前也遇到类似的需求,能否将源码也发份给我吗?
    邮箱[email protected]
    十分感谢
      

  10.   

    楼主,我现在也遇到这样的问题,能否将源码共享一下!
    我的Email:[email protected]    QQ   : 253372250非常感谢!