Как сохранить текст MS Word в другом формате?
Материал из DRKB
Создайте новую форму и разместите на ней:
- кнопку Button3,
- компонент RichText с названием WordEditor,
- компонент OpenDialog.
Теперь вы можете выбирать любой файл *.doc и загружать его в компонент RichText.
- Примечание
Format := 6
заставит Word сохранять файл как RTF. Указать расширение файла не достаточно.
Другие форматы файлов:
- 0 - Обычный (Word format)
- 1 - Шаблон документа
- 2 - Только текст (в кодировке ANSI)
- 3 - Текст с разделителями (текст с переносами строк; кодировка ANSI)
- 4 - Только текст (PC-8) (кодировка IBM PC)
- 5 - Текст с разделителями (PC-8) (текст с переносами строк; кодировка IBM PC)
- 6 - Rich-text format (RTF)
procedure TImport_Form.ToolButton3Click(Sender: TObject);
var
WordApp: Variant;
begin
if OpenDialog1.Execute then
begin
Edit1.Text := ExtractFileName(OpenDialog1.FileName);
StatusBar1.SimpleText := OpenDialog1.FileName;
WordApp := CreateOleObject('Word.Basic');
if not VarIsEmpty(WordApp) then
begin
WordApp.FileOpen(OpenDialog1.FileName);
WordApp.FileSaveAs(Name := 'c:\temp_bb.rtf', Format := 6);
WordApp.AppClose;
WordApp := Unassigned;
WordEditor.Lines.LoadFromFile('c:\temp_bb.rtf');
end
else
ShowMessage('Could not start MS Word');
end;
end;
Как сделать, чтобы Word не открывал файлы с паролем или файлы помощника, которые вызывают зависание?
Перед открытием документа нужно добавить:
if WordApp.ActiveDocument.HasPassword = True then
MsgBox("Password Protected");
Можно задать пароль:
WordApp.Password := 'mypassword";
- Внимание
- Если код выше выдает "Undefined property: ActiveDocument", замените:
CreateOleObject('Word.Basic');
на
CreateOleObject('Word.Application');
Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 04420