Мое решение для этого заключается в использовании следующей команды:
start /min winword <filename> /q /n /f /mFilePrint /mFileExit
Это позволяет пользователю указать принтер, нет. копий и т. д.
Заменить <filename>
именем файла. Он должен быть заключен в двойные кавычки, если он содержит пробелы. (например, file.rtf
, "A File.docx"
)
Он может быть помещен в системный вызов как:
system("start /min winword <filename> /q /n /f /mFilePrint /mFileExit");
Вот файл заголовка C ++ с функциями, которые его обрабатывают, поэтому вам не нужно запоминать все переключатели, если вы часто его используете:
/*winword.h
*Includes functions to print Word files more easily
*/
#ifndef WINWORD_H_
#define WINWORD_H_
#include <string.h>
#include <stdlib.h>
//Opens Word minimized, shows the user a dialog box to allow them to
//select the printer, number of copies, etc., and then closes Word
void wordprint(char* filename){
char* command = new char[64 + strlen(filename)];
strcpy(command, "start /min winword \"");
strcat(command, filename);
strcat(command, "\" /q /n /f /mFilePrint /mFileExit");
system(command);
delete command;
}
//Opens the document in Word
void wordopen(char* filename){
char* command = new char[64 + strlen(filename)];
strcpy(command, "start /max winword \"");
strcat(command, filename);
strcat(command, "\" /q /n");
system(command);
delete command;
}
//Opens a copy of the document in Word so the user can save a copy
//without seeing or modifying the original
void wordduplicate(char* filename){
char* command = new char[64 + strlen(filename)];
strcpy(command, "start /max winword \"");
strcat(command, filename);
strcat(command, "\" /q /n /f");
system(command);
delete command;
}
#endif