手记

C#/VB.NET 操作Word批注(二)——如何插入图片、读取、回复Word批注内容

在前面的文章C# 如何插入、修改、删除Word批注一文中介绍了如何操作Word批注的一些方法,在本篇文章中继续介绍操作Word批注的方法。分以下三种情况来介绍:

1. 插入图片到Word批注

2. 读取Word批注

3. 回复Word批注

所需工具

 PS:下载安装Free Spire.Doc 后,注意在你的程序中添加引用Spire.Doc.dll(dll文件可以在安装路径下的Bin文件夹中获取)

 

示例代码

1. 插入图片到Word批注

步骤 1:添加using指令

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawing;

步骤 2:创建文档,加载测试文件

Document doc = new Document();
doc.LoadFromFile("testfile.docx");

步骤 3 :获取段落

Paragraph paragraph = doc.Sections[0].Paragraphs[2];

步骤 4 :添加文本、图片到批注

Comment comment = paragraph.AppendComment("探索黑科技,小米为发烧而生!");
comment.Format.Author = "Administor";  
         DocPicture docPicture = new DocPicture(doc);
Image img = Image.FromFile("mi.png");
docPicture.LoadImage(img);//插入图片到批注comment.Body.AddParagraph().ChildObjects.Add(docPicture);

步骤 5 :保存文件

doc.SaveToFile("result.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("result.docx");

 

测试结果:

C#全部代码:

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawing;namespace InsertImgToComment_Doc
{    class Program
    {        static void Main(string[] args)
        {            //实例化Document类,加载文档
            Document doc = new Document();
            doc.LoadFromFile("testfile.docx");            //获取需要添加批注的段落
            Paragraph paragraph = doc.Sections[0].Paragraphs[2];            //添加文本批注内容、批注作者
            Comment comment = paragraph.AppendComment("探索黑科技,小米为发烧而生!");
            comment.Format.Author = "Administor";           
            //实例化DocPicture类,加载图片
            DocPicture docPicture = new DocPicture(doc);
            Image img = Image.FromFile("mi.png");
            docPicture.LoadImage(img);            //插入图片到批注            comment.Body.AddParagraph().ChildObjects.Add(docPicture);            //保存文件并打开文档
            doc.SaveToFile("result.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("result.docx");
        }
    }
}

VB.NET代码:

Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsImports System.DrawingNamespace InsertImgToComment_Doc    Class Program        Private Shared Sub Main(ByVal args As String())            Dim doc As Document = New Document()
            doc.LoadFromFile("testfile.docx")            Dim paragraph As Paragraph = doc.Sections(0).Paragraphs(2)            Dim comment As Comment = paragraph.AppendComment("探索黑科技,小米为发烧而生!")
            comment.Format.Author = "Administor"
            Dim docPicture As DocPicture = New DocPicture(doc)            Dim img As Image = Image.FromFile("mi.png")
            docPicture.LoadImage(img)
            comment.Body.AddParagraph().ChildObjects.Add(docPicture)
            doc.SaveToFile("result.docx", FileFormat.Docx2013)
            System.Diagnostics.Process.Start("result.docx")        End Sub
    End ClassEnd Namespace

 

2.读取Word批注

步骤 1 :添加using指令

using System.Text;using System.IO;using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;

步骤 2 :创建实例,加载文档

Document doc = new Document();
doc.LoadFromFile("test.docx");

步骤 3 :将批注内容写入Txt文档

//实例化StringBuilder类StringBuilder SB = new StringBuilder();//遍历所有word批注,将批注内容写入Txt文档foreach (Comment comment in doc.Comments)
{    foreach (Paragraph p in comment.Body.Paragraphs)
    {
        SB.AppendLine(p.Text);
    }
}
File.WriteAllText("CommentExtraction.txt", SB.ToString());
System.Diagnostics.Process.Start("CommentExtraction.txt");

C# 全部代码:

using System.Text;using System.IO;using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;namespace ExtractComments
{    class Program
    {        static void Main(string[] args)
        {            //创建实例,加载文档
            Document doc = new Document();
            doc.LoadFromFile("test.docx");            //实例化StringBuilder类
            StringBuilder SB = new StringBuilder();            //遍历所有word批注,将批注内容写入Txt文档
            foreach (Comment comment in doc.Comments)
            {                foreach (Paragraph p in comment.Body.Paragraphs)
                {
                    SB.AppendLine(p.Text);
                }
            }
            File.WriteAllText("CommentExtraction.txt", SB.ToString());
            System.Diagnostics.Process.Start("CommentExtraction.txt");
        }
    }
}

VB.NET 代码

Imports System.TextImports System.IOImports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsNamespace ExtractComments    Class Program        Private Shared Sub Main(ByVal args As String())            Dim doc As Document = New Document()
            doc.LoadFromFile("test.docx")            Dim SB As StringBuilder = New StringBuilder()            For Each comment As Comment In doc.Comments                For Each p As Paragraph In comment.Body.Paragraphs
                    SB.AppendLine(p.Text)                Next
            Next

            File.WriteAllText("CommentExtraction.txt", SB.ToString())
            System.Diagnostics.Process.Start("CommentExtraction.txt")        End Sub
    End ClassEnd Namespace

 

3. 回复Word批注内容

步骤 1 :添加using指令 

using Spire.Doc;using Spire.Doc.Fields;

步骤 2 :创建实例

Document doc = new Document();
doc.LoadFromFile("test.docx");

步骤 3 :获取批注

Comment comment = doc.Comments[0];

步骤 4 :回复批注

Comment replyComment = new Comment(doc);
replyComment.Format.Author = "Adam";
replyComment.Body.AddParagraph().AppendText("这条批注内容请再丰富一下,内容有些单调");
comment.ReplyToComment(replyComment);

步骤 5 :保存文件

doc.SaveToFile("ReplyToComment.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("ReplyToComment.docx");

 

测试结果:

C# 全部代码:

using Spire.Doc;using Spire.Doc.Fields;namespace ReplyComment_Doc
{    class Program
    {        static void Main(string[] args)
        {            //实例化Document类,加载文件
            Document doc = new Document();
            doc.LoadFromFile("test.docx");            //获取第一个批注
            Comment comment = doc.Comments[0];            //实例化Comment类,添加批注回复作者以及回复内容
            Comment replyComment = new Comment(doc);
            replyComment.Format.Author = "Adam";
            replyComment.Body.AddParagraph().AppendText("这条批注内容请再丰富一下,内容有些单调");
            comment.ReplyToComment(replyComment);            //保存文件并打开
            doc.SaveToFile("ReplyToComment.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("ReplyToComment.docx");
        }
    }
}

VB.NET 代码:

Imports Spire.DocImports Spire.Doc.FieldsNamespace ReplyComment_Doc    Class Program        Private Shared Sub Main(ByVal args As String())            Dim doc As Document = New Document()
            doc.LoadFromFile("test.docx")            Dim comment As Comment = doc.Comments(0)            Dim replyComment As Comment = New Comment(doc)
            replyComment.Format.Author = "Adam"
            replyComment.Body.AddParagraph().AppendText("这条批注内容请再丰富一下,内容有些单调")
            comment.ReplyToComment(replyComment)
            doc.SaveToFile("ReplyToComment.docx", FileFormat.Docx2013)
            System.Diagnostics.Process.Start("ReplyToComment.docx")        End Sub
    End ClassEnd Namespace

以上为本次关于操作Word批注的全部内容。

(本文完)

如需转载,请注明出处。

原文出处:C#/VB.NET 操作Word批注(二)——如何插入图片、读取、回复Word批注内容


1人推荐
随时随地看视频
慕课网APP