C#/VB.NET 操作Word批註(二)——如何插入圖片、讀取、回覆Word批註內容

在前面的文章C# 如何插入、修改、刪除Word批註一文中介紹瞭如何操作Word批註的一些方法,在本篇文章中將繼續介紹操作Word批註的方法。分以下三種情況來介紹:

  1. 插入圖片到Word批註
  2. 讀取Word批註
  3. 回覆Word批註

所需工具


示例代碼

1. 插入圖片到Word批註

【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.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace 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 Class
End Namespace

測試下效果:
C#/VB.NET 操作Word批註(二)——如何插入圖片、讀取、回覆Word批註內容

2.讀取Word批註內容

【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.Text
Imports System.IO
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace 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 Class
End Namespace

讀取結果:
C#/VB.NET 操作Word批註(二)——如何插入圖片、讀取、回覆Word批註內容

3.回覆Word批註

【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.Doc
Imports Spire.Doc.Fields

Namespace 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 Class
End Namespace

測試結果:
C#/VB.NET 操作Word批註(二)——如何插入圖片、讀取、回覆Word批註內容

需要注意的是,在回覆Word批註這個功能上,免費版的Spire.Doc暫不支持,須使用商業版
以上爲本次關於操作Word批註的全部內容。
(本文完)
如需轉載,請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章