У меня есть приложение, которое отлично работает при сохранении как файл .doc. С тех пор я попытался получить его, поэтому программа сохранит как .doc, так и .pdf, это делается с помощью модуля WordXP.WordXP Delphi Command Failed Сохранение как PDF
procedure TDocCreator.CloseDocument(ASaveAs : string);
var
LFileName : OleVariant;
begin
LFileName := ASaveAs;
FDoc.SaveAs(LFileName, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
LFileName := ChangeFileExt(ASaveAs, '.pdf');
FDoc.SaveAs(LFileName,PDFFileFormat,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
FWordApp.NormalTemplate.Saved := true;
FWordApp.Quit(True);
FWordApp.Disconnect;
end;
Если я удалю второе спасение, код будет работать нормально. Исключение «EOleException Command Failed» не появляется каждый раз, когда документ сохраняется, но точка, в которой происходит разрыв, - это когда SaveAs для файла .pdf.
Примечание. У меня есть только две процедуры сохранения: SaveAs (используется выше) и SaveAs2000. Также я от машины, которая может компилировать delphi.
Если я пропустил что-либо или мне нужно что-то прояснить, я смогу ответить, однако я не смогу проверить какие-либо изменения кода до вторника.
спасибо.
Редактировать: Хорошо, что программа удалена отлаживаемой (машина, которая делает весь код, не имеет доступа к офису, так как она находится на виртуальной машине). Приложение проходит через набор шаблонов, которые получают почту, после того, как начинается процесс сохранения. Итак, я сделал 2 документа (этот процесс выполняется в цикле for). Это отлично работает. Затем я попытался сделать 5 в третьем файле, в результате чего возникла ошибка «Command Failed». Которая затем не закрывает слово и отменяет оставшийся процесс. При просмотре LFileName его содержимое было «???». Это иногда иностранные символы. Хотя ему все еще удается сделать файл .doc с правильным filenam. Это имя файла создается вне процедуры, если это имеет значение «ASaveAs». Другое дело, что файл не открывается с использованием каких-либо других приложений. Он выполняет весь процесс, используя слово приложение, которое открывается программой.
Как определен PDFFileFormat? Какая версия Word установлена? –
@DavidHeffernan PDFFileFormat - это константный набор 17. Word 2010, для меня, однако, я не могу гарантировать, какая версия слова будет использоваться, я думаю, что это будет 2010 год для тех, кто использует приложение, но я не уверен на 100%. – Edward
Он полагается на надстройку для Office 97. Пожалуйста, узнайте, какая версия работает, когда она терпит неудачу. –