打印整个文件夹
Printing whole folder
第一次在这里提问,如有不妥之处敬请见谅
我尝试编写的程序有问题。
我想要做的是让用户选择一个文件夹,然后程序打印所有文档(主要是 pdf 和 word 文件的混合),而无需任何更多的用户交互。
更糟糕的是,我工作的系统受到严格限制,因此我的测试可能性有限。
基本上,我想要的是在代码中执行某种相当于右键单击打印的操作。或将文件复制到打印机队列。
如果有人能指出正确的方向,我将不胜感激。 Google 帮助不大。我尝试执行打印命令,但它没有按照我的要求执行。
我目前的尝试:
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 .... 只打印一个文件。
仅复制returns 0(成功错误代码,但没有任何反应)
所以,我被困在这里了。任何前进的帮助将不胜感激。
/迈克
这实际上并不难,因为您的路径提示 Windows。 ShellExecute
的第二个参数可以是"print"
.
第一次在这里提问,如有不妥之处敬请见谅
我尝试编写的程序有问题。 我想要做的是让用户选择一个文件夹,然后程序打印所有文档(主要是 pdf 和 word 文件的混合),而无需任何更多的用户交互。
更糟糕的是,我工作的系统受到严格限制,因此我的测试可能性有限。
基本上,我想要的是在代码中执行某种相当于右键单击打印的操作。或将文件复制到打印机队列。
如果有人能指出正确的方向,我将不胜感激。 Google 帮助不大。我尝试执行打印命令,但它没有按照我的要求执行。
我目前的尝试:
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 .... 只打印一个文件。
仅复制returns 0(成功错误代码,但没有任何反应)
所以,我被困在这里了。任何前进的帮助将不胜感激。
/迈克
这实际上并不难,因为您的路径提示 Windows。 ShellExecute
的第二个参数可以是"print"
.