gpt4 book ai didi

delphi - 在word文档中插入rtf文本

转载 作者:行者123 更新时间:2023-12-03 15:58:38 25 4
gpt4 key购买 nike

我正在使用 OLE 搜索替换将“占位符标记”替换为存储在数据库字段中的内容到 Word 文档中。我使用的技术类似于 here 所讨论的技术.

这可行,但当然不适用于 rtf 字段。我有包含 rtf 数据的数据库字段,如果执行搜索替换,我将获得完整的 rtf 代码,因此不会看到

你好世界

我看到类似的东西

{\rtf1\ansi\ansicpg1252\deff0\deflang1040 \viewkind4\uc1\pard\sa200\sl276\slmult1\lang16\b\f0\fs22 Hello \i World\b0\i0\par }

有人已经解决这个问题了吗?在 StackOverflow 上搜索我发现 a trick that uses the clipboard 。注意:我不使用书签,此示例使用书签,我只是将标签定义为纯文本,如“”,当我在搜索和替换循环中找到“”时,我将替换文本。

更新:您在这个剪贴板技巧中发现任何问题吗?

您还有其他想法并可以提出其他解决方案吗?

最佳答案

我建议改用 Selection.InsertFile 。这是一个应该执行您想要的操作的示例,它找到“占位符”并插入一个 rtf 文件。之前将您的 rtf 保存到临时文件...

 procedure TForm1.Button1Click(Sender: TObject);
var
Fword,FDocument,FFindObject:OleVariant;
Filename:String;

begin
Filename := 'C:\temp\test.doc';
Fword := CreateOleObject('Word.Application');
FDocument := Fword.Documents.Add(Filename);
FFindObject := FDocument.ActiveWindow.Selection.Find;
Fword.visible := true;
FFindObject.ClearFormatting;
FFindObject.Replacement.ClearFormatting;
FFindObject.Text := 'placeholder';
FFindObject.Forward := True;
FFindObject.Replacement.Text := '';
FFindObject.Wrap := 1;
FFindObject.MatchCase := False;
FFindObject.MatchWholeWord := False;
FFindObject.MatchWildcards := False;
FFindObject.MatchSoundsLike := False;
FFindObject.MatchAllWordForms := False;

if FFindObject.Execute() then Fword.selection.InsertFile('C:\temp\test.rtf')
end;

关于delphi - 在word文档中插入rtf文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8148899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com