我正在尝试使用Delphi 6和Word 2010保存Word 97-2003文档(.doc)。
在Word 2010之前,一切正常
WordDoc.SaveAs(FileName := FileName, FileFormat := wdFormatDocument);
其中FileName := 'c:\doc.doc'
现在,Word 2010提供了一个保存对话框,我不知道为什么。 我已经尝试了新的SaveAs2方法
WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocument, CompatibilityMode:= wdWord2003);
但结果相同。
奇怪的是,
WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocumentDefault, CompatibilityMode:= wdWord2003);
工作正常,没有“另存为”对话框,但保存的文件具有Word 2010格式和.doc扩展名,这会混淆旧的Word版本。
那么,任何想法如何使用Word 2010在没有“另存为”对话框的情况下以旧文档Word格式保存文件?
答案 0 :(得分:2)
原始程序打开了一个* .mhtml文件,并尝试将其转换为doc格式。我遇到了问题。创建新文档时,您可以将其保存为任何格式而不会出现问题。这让我觉得可能是问题是我从非原生格式保存到另一种非原生格式。
所以,我的解决方案是将它保存两次:首先是原生格式,然后是旧格式:
procedure SaveDocFile(WordDoc: Variant; FileName: string);
const wdFormatDocumentDefault=16;
begin
WordDoc.ActiveWindow.View.Type := wdPrintView;
if WordDoc.Application.Version='14.0' then
begin
WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocumentDefault);
WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocument);
end
else
WordDoc.SaveAs(FileName := FileName, FileFormat := wdFormatDocument);
end;
答案 1 :(得分:0)
文件格式的常量列表:
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
wdFormatFlatXMLTemplateMacroEnabled = 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
wdFormatXMLDocumentMacroEnabled = 13
wdFormatXMLTemplate = 14
wdFormatXMLTemplateMacroEnabled = 15
wdFormatXPS = 18
wdFormatOfficeDocumentTemplate = 23
wdFormatMediaWiki = 24