Remove highlight from document(Aspose Word 删除高亮)

Thanks for your inquiry. You can do it using DocumentVisitor. Please try using the following code:

// Open document.
Document doc = new Document("C:\\Temp\\test2.docx");

ChangeHighlightColor changeHighlightColor = new ChangeHighlightColor(Color.Transparent);

doc.Accept(changeHighlightColor);

doc.Save("C:\\Temp\\out.docx");

class ChangeHighlightColor : DocumentVisitor
{
    public ChangeHighlightColor(System.Drawing.Color highlighColor)
    {
        mHighlighColor = highlighColor;
    }

    /// <summary>
    /// Called when a FieldEnd node is encountered in the document.
    /// </summary>
    public override VisitorAction VisitFieldEnd(Aspose.Words.Fields.FieldEnd fieldEnd)
    {
        //Simply change font name
        ChangeFont(fieldEnd.Font);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when a FieldSeparator node is encountered in the document.
    /// </summary>
    public override VisitorAction VisitFieldSeparator(Aspose.Words.Fields.FieldSeparator fieldSeparator)
    {
        ChangeFont(fieldSeparator.Font);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when a FieldStart node is encountered in the document.
    /// </summary>
    public override VisitorAction VisitFieldStart(Aspose.Words.Fields.FieldStart fieldStart)
    {
        ChangeFont(fieldStart.Font);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when a Footnote end is encountered in the document.
    /// </summary>
    public override VisitorAction VisitFootnoteEnd(Footnote footnote)
    {
        ChangeFont(footnote.Font);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when a FormField node is encountered in the document.
    /// </summary>
    public override VisitorAction VisitFormField(Aspose.Words.Fields.FormField formField)
    {
        ChangeFont(formField.Font);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when a Paragraph end is encountered in the document.
    /// </summary>
    public override VisitorAction VisitParagraphEnd(Paragraph paragraph)
    {
        ChangeFont(paragraph.ParagraphBreakFont);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when a Run node is encountered in the document.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        ChangeFont(run.Font);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when a SpecialChar is encountered in the document.
    /// </summary>
    public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
    {
        ChangeFont(specialChar.Font);
        return VisitorAction.Continue;
    }

    private void ChangeFont(Font font)
    {
        font.HighlightColor = mHighlighColor;
    }
    private System.Drawing.Color mHighlighColor = System.Drawing.Color.Transparent;
}

Best regards,

 

时间: 2024-10-30 05:46:54

Remove highlight from document(Aspose Word 删除高亮)的相关文章

使用aspose.word 第三方的插件实现导出word

  本文给大家分享的是一个使用使用aspose.word 第三方的插件实现导出word的实例,十分的实用,有需要的小伙伴可以参考下. 使用aspose.word 第三方的插件实现服务器端无需安装office组件导出word的功能 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4

利用Aspose.Word控件实现Word文档的操作

原文:利用Aspose.Word控件实现Word文档的操作 Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般使用Aspose.Cell来实现我想要的各种Excel报表输出.虽然一直也知道Aspose.Word是用来生成Word文档的,而且深信其也是一个很强大的控件,但一直没用用到,所以就不是很熟悉. 偶然一次机会,一个项目的报表功能指定需要导出为

Aspose Word模板使用总结

原文:Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"<"和">"就可以了,而是必须在菜单的"插入→文档部件→域"找到MergeField并输入相应的域名 2.使用数组提供数据源  string tempPath = Server.MapPath("~/Docs/Temp/Template.

aspose.word操作word的问题(处理非文本)

问题描述 aspose.word操作word,普通的文本读取和写入很方便.现在遇到个问题,对于特殊的公式,表格,图片,怎么操作呢?比如:现在mysql数据库有个blob类型字段,word文档的内容有文字,有特殊的公式,有表格,还有图片,怎么将这个文件的内容读取后存储到这个blob字段?然后怎么把数据库里的blob字段写入到word文件中重新生成word文档?知道aspose的Document有个方法GetText();但是不能读取表格等上面说的内容,有没有其他方法能实现这个功能需求? 解决方案

利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的博客介绍过几篇关于Aspose.Word控件和Aspose.Cell控件的使用操作,如下所示. <使用Aspose.Cell控件实现Excel高难度报表的生成(一)> <使用Aspose.Cell控件实现Excel高难度报表的生成(二)> <使用Aspose.Cell控件实现Ex

Word删除末尾多出空白页的方法

word删除末尾多出空白页的方法   (1)调节页边距法:这种方法最快捷,我常用的是拉动法,就是用MOUSE按住左键,随意调节到合适的位置.这种方法对于少数页面的文档最适合,不用担心,页边距调整后,文档内表格变形. (2)调节行距法:在不能删掉的那一页,右键-段落-行距-固定值(调一个最小的值).你会发现在多余的页消失了.呵,这种方法不会影响其他页面. (3)DELETE法:有些时候其实很简单,当你用BACKSPACE删除内容,页面不会消失.而改用DELETE最后删一下,却不会留下多余页.但有时

word删除空白页怎么删

  word删除空白页怎么删 本文主要讲解了6种经过超人软件小编测试有效的删除Word文档中空白页的方法. 在这里先说明一下,因为导致Word空白页的问题很多,我也不知道大家具体是哪种情况引起的,所以将所有引起Word空白页的解决方法都一一列出,大家可以一一进行尝试.本解决方法适用于所有版本Word. Word文档中删除空白页的方法一.空白页在最后一页的删除方法 如果空白页在最后一页,我们可以先将光标定位到最后一页,然后按键盘上的"Backspace"或"Delete&quo

word删除页眉页脚顶端底端横线的方法介绍

  word删除页眉页脚顶端底端横线的方法介绍.页眉横线一般在插入页眉后出现,有时也会在删除页眉页脚.页码后出现.相信很多朋友都遇到过这样的问题,在word中,插入页眉.页脚后,页眉.页脚有边框线,影像了整个文档的美观,但是又不知道怎么设置,让其去掉.今天我就跟大家分享一下其中的设置办法. 方法/步骤 插入页眉.页脚后,会像图中这样显示有底端或者顶端横线 在页眉或者页脚的地方,鼠标左键双击,使其进入编辑状态. 在word开始菜单栏里,找到[边框]按钮,点开,选择[边框和底纹] 如图,选择 弹开[

Word删除空白页方法

  对于电脑小白来说,Word编辑过程中总是容易遇到问题,其中之一便是空白页.有的人就会问怎样删除Word空白页?事实上,Word删除空白页的方法并不难,这里就为大家简单介绍一下. 方法一:按Delete 在Word中遇到空白页时,第一应该尝试的就是Delete键,一般来说Delete键就能解决空白页的问题. 方法二:删除分页符 有时候空白页是相当顽固的,Delete键根本无法与之相抗衡,这时一般问题就出现在"分页符"上了.只要删除了分页符就可以了. 通常情况下,我们可以去到普通视图下