感谢您的帮助
默认的格式工具栏上的 【字符底纹】 颜色是灰色的, 它实际上也可以用下面的操作方法替代:
它是在 Word 设计标签页下, 手动操作步骤如下:
选定要设置字符底纹的文本 -> 设计标签页 -> 页面边框 -> 底纹 -> 选填充颜色 -> 应用于文字
这样一来:我提到的【字符底纹】其实就是【文字底纹】
我在官网帮助网页中找到一篇设置文字底纹的文章, 文字底纹的相关代码如下:
//为第三段里查找的特定文字添加底色
paragaph = document.Sections[0].Paragraphs[2];
TextSelection selection = paragaph.Find("Spire.Doc for .NET", false, true);
TextRange range = selection.GetAsOneRange();
range.CharacterFormat.TextBackgroundColor = Color.Yellow;
另外取消底纹的方法没有找到, 测试设为透明色能折中实现
paragraph.Format.BackColor = Color.
Transparent;
对于我的示例文件中, 【文字底纹和段落底纹】交叉处理的逻辑, 看了一些代码,还不是很清楚,
如果上面参考代码有用, 能折中实现, 麻烦您提供一下示例代码并加上注释就太感谢了
Abel.He wrote:Hello,
您好,
感谢您的留言。
目前我们产品暂不支持获取和设置“字符底纹“,不过我已将此作为一个新功能记录到我们的产品更新系统中了,其编号为” SPIREDOC-8591 “,我们的开发团队将会实现它。一旦该功能被实现了,我会立即通知您。
另外,对于您的“需求4“,我把相关代码放在下面供您参考。如果您还有任何问题,欢迎随时联系。
- Code: Select all
Document doc = new Document();
doc.LoadFromFile(@"../../data/原文件.docx");
//遍历每个section
foreach (Section section in doc.Sections)
{
//遍历Section中body内的每个段落
foreach (Paragraph paragraph in section.Body.Paragraphs)
{
//判断段前段后是否满足要求
if (paragraph.Format.AfterSpacing == 8f && paragraph.Format.BeforeSpacing == 8f && paragraph.Format.LineSpacing == 10f && paragraph.Format.LineSpacingRule == LineSpacingRule.Exactly)
{
//遍历每个段落的child
foreach (DocumentObject paraChildObject in paragraph.ChildObjects)
{
Boolean b = true;
//当paraChildObject对象为textrange时
if (paraChildObject.DocumentObjectType == DocumentObjectType.TextRange)
{
TextRange textRange = paraChildObject as TextRange;
//判断字体格式是否满足要求
if (textRange.CharacterFormat.FontName != "微软雅黑" || textRange.CharacterFormat.FontSize != 11f || textRange.CharacterFormat.Bold == false)
{
b = false;
}
}
if (b)
{
//设置段落背景颜色
paragraph.Format.BackColor = Color.Yellow;
}
}
}
}
}
//保存结果文档
doc.SaveToFile(@"../../output/result1.docx", FileFormat.Docx);
Sincerely
Abel
E-iceblue support team