合并WORD文档,要去掉文档结构(文档结构图),但保留原有的FONT。请各位高手指教啊:)(100分)

  • 主题发起人 主题发起人 chengxianle
  • 开始时间 开始时间
C

chengxianle

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手帮忙啊,我现在做一个小程序,是要让DOC文档合并,但我要使合并后的DOC文档的文档结构图为空,但是要求原来的大纲级别的标题保持原来的FONT,苦苦查询资料,到现在没搞定,请各位DFW高手们出手帮帮俺:)
原来取消项目编码和符号的程序段,我是这么写的
For Each para In ActiveDocument.ListParagraphs
If para.Range.ListFormat.ListType = wdListOutlineNumbering Then
Selection.Start = para.Range.Start
Selection.End = para.Range.End


Set tmpFont = para.Range.Font.Duplicate

para.Range.ListFormat.ConvertNumbersToText
Selection.Style = ActiveDocument.Styles("正文")
para.Range.Font = tmpFont
End If

Next para
End Sub

只是先在宏里实现。都实现不了,这个只能查到有项目编码和符号的段落,现在改成这个样子,如下
For i = 1 To ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(i).Range.ListFormat.ListType =wdListOutlineNumbering Then
Selection.Start = ActiveDocument.Paragraphs(i).Range.Start
Selection.End = ActiveDocument.Paragraphs(i).Range.End


Set tmpFont = ActiveDocument.Paragraphs(i).Range.Font.Duplicate

ActiveDocument.Paragraphs(i).Range.ListFormat.ConvertNumbersToText
Selection.Style = ActiveDocument.Styles("正文")
ActiveDocument.Paragraphs(i).Range.Font = tmpFont
End If

Next i
发现除了“目录”保留下来以外,别的是改了,但是总是不对劲,而且Paragraphs的STYLE不知道怎么找到大纲级别。不知道那个是大纲级别的关键字。
问题总体描述就是,实现一段DELPHI的代码,能将WORD中“文档结构图”中的内容全部消除,而且保留原来标题(大纲级别)的FONT。
 
现在没时间看,帮你顶一下
 
另存为RTF,
 
var
NumberType : OleVariant;
ThiswdStyleNormal : OleVariant;
tmpFont:_Font;
i:integer;
level: string;
begin
NumberType := EmptyParam;
for i :=WordDoc.ListParagraphs.Count downto 1 do
begin
if WordDoc.ListParagraphs.Item(i).Range.ListFormat.ListType = wdListOutlineNumbering then
begin
WordDoc.ListParagraphs.Item(i).Range.ListFormat.ConvertNumbersToText(NumberType);
end;
end;
for i := 1 to WordDoc.Paragraphs.Count do
begin
if WordDoc.Paragraphs.Item(i).OutlineLevel <> wdOutlineLevelBodyText then
begin
tmpFont := WordDoc.Paragraphs.Item(i).range.font.Duplicate ;
ThiswdStyleNormal := wdstylenormal;
WordDoc.Paragraphs.Item(i).Range.Set_Style(ThiswdStyleNormal);
WordDoc.Paragraphs.Item(i).Range.Font := tmpFont;
end;
end;
end;
 
散分,谢谢HABFFD
 

Similar threads

后退
顶部