打印整个文件夹

时间:2015-08-20 06:43:06

标签: c++ printing wxwidgets

这是我第一次在这里问一些事情,所以如果我做错了什么,我会道歉。

我正在尝试编写的程序出现问题。 我想要做的是让用户选择一个文件夹,程序打印所有文档(主要是pdf和word文件的混合),而无需任何用户交互。

更糟糕的是,我工作的系统受到严格限制,因此我的测试可能性有限。

基本上,我想要的是在代码中进行某种等效的右键单击打印。或者将文件复制到打印机队列。

如果有人能指出我正确的方向,我将非常感激。谷歌没有多大帮助。我尝试执行print命令,但它没有做我想要的。

我目前的尝试:

void folderFrame::onOpen(wxCommandEvent &event)
{
    int listLength;
    wxArrayString fileList;
    wxString pFolder, pCommand;

    chooseFolder = new wxDirDialog(this, _("Please choose folder from which to print:"), "", wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST, wxDefaultPosition, wxDefaultSize,"");
    if (chooseFolder->ShowModal() == wxID_OK) //User chooses folder
    {
        int pResult;
        pFolder = chooseFolder->GetPath();
        wxDir::GetAllFiles(pFolder, &fileList, "", wxDIR_FILES);  //Get all files in folder
        listLength = fileList.GetCount();   //Get number of files                            
        for(int i = 0; i < listLength; i++)  //For each file...
        {
            pCommand = _T("print /d:\\\\app065\\300408_P18 "); //Make command to execute
            pCommand.append(fileList[i]);
            theText->AppendText(fileList[i]);   //The text ctrl is to check what commands I actually execute
            theText->AppendText("\n");          //And to check if the system return errors
            theText->AppendText(pCommand);
            theText->AppendText("\n");
            pResult = wxExecute(pCommand, wxEXEC_SYNC | wxEXEC_SHOW_CONSOLE | wxEXEC_NOEVENTS, NULL, NULL); //Print!!!!
            theText->AppendText(wxString::Format(wxT("%i\n"), pResult));
        }
    }
}

print ....只打印一个文件。

copy只返回0(成功错误代码,但没有任何反应)

所以,我在这里被困住了。非常感谢任何前进的帮助。

/麦克

1 个答案:

答案 0 :(得分:0)

这实际上并不是很难,因为你的路径暗示了Windows。 ShellExecute的第二个参数可以是"print"