当我原文某句话增加了下划线,同时设置了这段话的字体颜色为红色,下划线就变成了红色,但是我获取到的下划线颜色是黑色,所以当我新建一个run,设置样式的时候,下划线就是黑色,两者不一致,问下我该如何处理能达到之前的效果?
要获取和还原下划线的颜色,您可以使用 Aspose.Words 中的 Font.UnderlineColor
属性。根据您的描述,您在设置文本的字体颜色为红色时,下划线颜色却显示为黑色。这可能是因为下划线颜色没有被正确设置。
以下是一个示例代码,展示如何设置下划线颜色与字体颜色一致:
using Aspose.Words;
using Aspose.Words.Fonts;
using System.Drawing;
class Program
{
static void Main()
{
// 创建一个新的文档
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 设置字体属性
builder.Font.Color = Color.Red; // 设置字体颜色为红色
builder.Font.Underline = Underline.Single; // 设置下划线样式
builder.Font.UnderlineColor = Color.Red; // 设置下划线颜色为红色
// 添加文本
builder.Writeln("这是带有红色下划线的文本。");
// 保存文档
doc.Save("Output.docx");
}
}
在这个示例中,我们首先设置了字体颜色为红色,然后将下划线的颜色也设置为红色。这样可以确保下划线的颜色与字体颜色一致。
如果您在创建新的 Run
时遇到下划线颜色不一致的问题,请确保在设置 Run
的字体属性时也包含下划线颜色的设置。这样可以避免出现颜色不匹配的情况。
首次设置是通过word直接设置的,没有单独设置下划线颜色
@maochen 如果可能,请提供您正在使用的代码、原始文件和您希望实现的预期输出文件。
不过,您可以轻松地在当前段落中添加新的运行,但需要定义文本和下划线颜色:
Document doc = new Document("input.docx");
Run run = new Run(doc, " new text");
run.getFont().setColor(Color.RED);
run.getFont().setUnderline(Underline.SINGLE);
run.getFont().setUnderlineColor(Color.RED);
Paragraph para = doc.getFirstSection().getBody().getFirstParagraph();
para.appendChild(run);
doc.save("output.docx");