高手请进---如何将Word文档转换为RTF文件 ( 积分: 10 )

  • 主题发起人 主题发起人 haifeng
  • 开始时间 开始时间
H

haifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
我遇到一个百思不得其解的问题,希望各位高手赐教:
我写的程序是这样的:
WordApp:Variant;
WordApp := CreateOleObject('Word.Basic');
if not VarIsEmpty(WordApp) then
begin
pc :=stralloc(100);
GetWindowsDirectory(pc,StrBufSize(pc));
WordApp.FileOpen(sPath);
FileName :=Strpas(pc)+'/Temp/'+Replaceing(':',DateTimeToStr(Now))+'.rtf';
WordApp.FileSaveAs(Name :=FileName, Format:=6);
WordApp.AppClose;
WordApp:=Unassigned;
RichEdit.Lines.LoadFromFile(FileName);
end
但是用RichEdit打开后成了xml形式了.如下:
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="2005-1-4%20150757.files/filelist.xml">
<title>财务管理</title>
<!--[if gte mso 9]><xml>
......
我想用程序实现怎么将Word的Doc文档转换成RTF格式的文件,谁有这方面的经验,请帮忙解决一下.我将非常感激!
 
我遇到一个百思不得其解的问题,希望各位高手赐教:
我写的程序是这样的:
WordApp:Variant;
WordApp := CreateOleObject('Word.Basic');
if not VarIsEmpty(WordApp) then
begin
pc :=stralloc(100);
GetWindowsDirectory(pc,StrBufSize(pc));
WordApp.FileOpen(sPath);
FileName :=Strpas(pc)+'/Temp/'+Replaceing(':',DateTimeToStr(Now))+'.rtf';
WordApp.FileSaveAs(Name :=FileName, Format:=6);
WordApp.AppClose;
WordApp:=Unassigned;
RichEdit.Lines.LoadFromFile(FileName);
end
但是用RichEdit打开后成了xml形式了.如下:
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="2005-1-4%20150757.files/filelist.xml">
<title>财务管理</title>
<!--[if gte mso 9]><xml>
......
我想用程序实现怎么将Word的Doc文档转换成RTF格式的文件,谁有这方面的经验,请帮忙解决一下.我将非常感激!
 
别用RichEdit 可以通过简切板和流来实现,因为剪切板提供多种格式,你只要把rtf格式的那种东东保存到流 ,然后在写入文件就可以了,哈哈
 
不用CreateOleObject,用它提供的转换动态库,直接可以转换,而且速度很快,效果也不错
 
谢谢大家!我看一下,看能否成功!若有其它问题,再向你们讨教!
 
zhang214说的对
 
如何将Word文档转换为RTF文件,同时显示出来
procedure TForm1.BitBtn3Click(Sender: TObject);
var
vnewdoc:variant;
vword:olevariant;
filename:string;
begin
try
if o1.Execute then
begin
filename:=o1.FileName;
end;
vword:=createoleobject('word.application');
vnewdoc:=vword.documents.open(filename);
vNewDoc.SaveAs(FileName :='C:/TEMP.rtf',FileFormat:=6,
EmbedTrueTypeFonts:=False,SaveNativePictureFormat:=False,
SaveFormsData:=False, SaveAsAOCELetter:=False);
vNewDoc.Close;
vWord.Quit;
RichEdit1.Lines.Clear;
RichEdit1.Lines.LoadFromFile('C:/TEMP.rtf');
Deletefile('C:/TEMP.rtf');
except
end;

end;
 
后退
顶部