这是我第一次在这里问一些事情,所以如果我做错了什么,我会道歉。
我正在尝试编写的程序出现问题。 我想要做的是让用户选择一个文件夹,程序打印所有文档(主要是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(成功错误代码,但没有任何反应)
所以,我在这里被困住了。非常感谢任何前进的帮助。
/麦克
答案 0 :(得分:0)
这实际上并不是很难,因为你的路径暗示了Windows。 ShellExecute
的第二个参数可以是"print"
。