用vc操作excel,调用虚拟打印机doPDF v6打印excel文件。不过,打印的时候,老是出现打印出错的提示。但是通过excel的菜单来打印没什么问题。是不是我设置PrintOut的参数出错了?
代码如下:
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), 
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if (!m_ExcelApp.CreateDispatch("Excel.Application"))
{
AfxMessageBox("officeȱÉÙExcel×é¼þ£¡",MB_OK|MB_ICONERROR);
return false;
}
m_ExcelBooks = m_ExcelApp.GetWorkbooks();
m_ExcelBooks.Open(lpFilePath,covFalse,covTrue,covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional);
m_ExcelBook = m_ExcelApp.GetActiveWorkbook();
m_ExcelBook.PrintOut(covOptional,covOptional,covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional);
m_ExcelBook.Close(covFalse,varFilePath,covOptional);
大家帮帮忙吧,好急啊!

解决方案 »

  1.   

    你的PDF打印机是要打印到文件,
    而你的PrintOut没有提供正确的参数(PrintToFile,ActivePrinter)要设置正确
    PrintOut(const VARIANT& From, const VARIANT& To, const VARIANT& Copies, const VARIANT& Preview, const VARIANT& ActivePrinter, const VARIANT& PrintToFile, const VARIANT& Collate, const VARIANT& PrToFileName)
      

  2.   

    我这段时间也在研究这个!
      你把  VARIANT& ActivePrinter 这个参数指定一个打印机的名字;在试试看!
      

  3.   


     if (!m_ExcelApp.CreateDispatch("Excel.Application"))
        {
            AfxMessageBox("officeȱÉÙExcel×é¼þ£¡",MB_OK|MB_ICONERROR);
            return false;
        }
        m_ExcelBooks = m_ExcelApp.GetWorkbooks();    ExcelBook = m_ExcelBooks.Open  
                   (lpFilePath,covFalse,covTrue,covOptional,covOptional,covOptional,
                   vOptional,covOptional,covOptional,covOptional,covOptional,covOptional,
                   covOptional,covOptional,covOptional);
    /*
        m_ExcelBook = m_ExcelApp.GetActiveWorkbook();
    */
        m_ExcelBook.PrintOut(covOptional,covOptional,covOptional,covOptional,covOptional,
            covOptional,covOptional,covOptional);
        m_ExcelBook.Close(covFalse,varFilePath,covOptional);你在这么试试!我是这么做的!我这没问题!!不知道你的office 是哪个版本!Open 会返回一个ExcelBook  可能需要转换一下
      

  4.   

    不是右下角的打印机图标提示错误,而是弹出个对话框,上门写着“文件无法打印,在doPDF v6 在v6上发生错误,可能有以下原因引起:内存不足。请关闭其他程序。
    如果是通过网络打印,也许是打印机驱动或网络连接有误。
    也许是电缆松动,或者主机与打印机连接不正常”
      

  5.   

    还是不行,问题依旧,我用的office2003
      

  6.   

    看这里:http://support.microsoft.com/kb/216026/zh-cnhttp://support.microsoft.com/kb/162239