我使用的是 Aspose.Words 22.4.0.
我对附件中的 file.docx 只是进行了文字的颜色替换, 但是得到的结果 aspoose.docx 行间距等发生了明显的变化。
新建文件夹 (2).zip (73.5 KB)
主要区别如下图 :
image.png (43.7 KB)
image.png (51.6 KB)
请问是否是bug?? 是否可以解决这个问题呢? 谢谢。
我使用的是 Aspose.Words 22.4.0.
我对附件中的 file.docx 只是进行了文字的颜色替换, 但是得到的结果 aspoose.docx 行间距等发生了明显的变化。
新建文件夹 (2).zip (73.5 KB)
主要区别如下图 :
image.png (43.7 KB)
image.png (51.6 KB)
请问是否是bug?? 是否可以解决这个问题呢? 谢谢。
您好@xjdata,
我尝试使用DocumentVisitor.VisitRun使用下面给出的代码更改文本的颜色。 我没有观察到行距有任何变化。
public static void Main(string[] args)
{
Document doc = new Document("file.docx");
RunVisitor runVisitor = new RunVisitor();
doc.Accept(runVisitor);
doc.Save("file.color.docx");
}
public class RunVisitor : DocumentVisitor
{
public override VisitorAction VisitRun(Run run)
{
run.Font.Color = Color.Blue;
return VisitorAction.Continue;
}
}
files.zip (63.8 KB)
我发现, 使用 DocumentVisitor 特性来做文字替换, 会出现 中文匹配不全的情况。
比如 “武汉长江大桥” , 如果我只希望对 “长江” 替换为 “黄河” , 并将 黄河的字体颜色 换成 红色。 会出现匹配不到 长江的情况。
请问如何能解决我的问题呢? 谢谢。
@xjdata, 您可以尝试以下代码示例并检查它是否有帮助? in.docx 中的“长江”一词被拆分为 2 次运行,但 Aspose.Words 可以找到它,将文本替换为“黄河”并将颜色更改为红色。
Document doc = new Document("in.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.ApplyFont.Color = Color.Red;
doc.Range.Replace("长江", "黄河", options);
doc.Save("out.docx");
谢谢你的回复, 但是这个就又回到本帖子的 最初阶段了。 使用 Range.Replace 方法,会造成 行间距等中文格式的变化。 有点郁闷。