C# Wordで特殊記号を追加・削除


Wordの文書には、キーボードにはない特殊記号や図形文字を入力することができます。今回はSpire.Doc for .Net という無料のライブラリを利用して、Wordで記号を追加・削除する方法を紹介していきます。

下準備

1.E-iceblueの公式サイトからFree Spire.Doc for .NET無料版をダウンロードしてください。

2.Visual Studioを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいDoc.dllを参照に追加してください。(Net 4.0を例としたら、デフォルトパスは“Bin→NET4.0→Spire.Doc.dll”というようです。)

記号を追加

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

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            //Document objectを作成します。
            Document doc = new Document();
            //Section対象を追加します。
            Section sec = doc.AddSection();

            //sectionに段落を追加します。
            Paragraph p = sec.AddParagraph();
            p.AppendText("チェックマークです→");

            //段落の末尾をチェックマークの記号を追加します。この記号の16進コードは\u0052です
            //十進コード(char)82).ToString()で表示してもいいです。


            //TextRange tr=p.AppendText("\u0052");
            TextRange tr = p.AppendText(((char)82).ToString());

            //フォントを設定します。Wordで記号のフォントを参照ていいです。ここはWingdings2です。
            tr.CharacterFormat.FontName = "Wingdings 2";

            //新しい段落を追加し、メールの記号をいれます。
            Paragraph p1 = sec.AddParagraph();
            p1.AppendText("メールです→");
            //TextRange tr1 = p1.AppendText("\u002A");
            TextRange tr1 = p1.AppendText(((char)42).ToString());
            tr1.CharacterFormat.FontName = "Wingdings";

            //新しい段落を追加し、笑顔の記号をいれます。
            Paragraph p2 = sec.AddParagraph();
            p2.AppendText("笑顔です→");
            //TextRange tr2 = p2.AppendText("\u004A");
            TextRange tr2 = p2.AppendText(((char)74).ToString());
            tr2.CharacterFormat.FontName = "Wingdings";

            //保存します。
            doc.SaveToFile("記号を追加.docx");

        }
    }
}

実行結果

記号を削除 (メールの記号を例に)

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

// Document objectを作成します。
 Document doc = new Document();
 //ファイルをロードします。
 doc.LoadFromFile("特殊記号.docx");

 //FindStringメソッドでメールの記号を探します。
 TextRange tr = doc.FindString("\u002A", true, true).GetAsOneRange();

 //TextRangeにあったところを発見し、このTextRangeを削除します。
 Paragraph p = tr.OwnerParagraph;
 p.ChildObjects.Remove(tr);

 //保存します。
 doc.SaveToFile("test.docx", FileFormat.Docx2013);

実行結果