チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»docnetimageandshape

Displaying items by tag: docnetimageandshape

ワードアート(WordArt)は、カラフルでスタイリッシュなテキストを文書に挿入できるワード文書の機能です。さらに、テキストの形状を曲げたり、伸ばしたり、傾けたりすることもでき、特別な効果でテキストを際立たせるための手軽な方法です。この記事では、Spire.Doc for .NET を使用して、プログラムで Word 文書にワードアートを追加する方法を紹介します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word 文書にワードアートを挿入する

Spire.Doc for .NET が提供する ShapeType 列挙型は、"Text" で始まるさまざまなワードアートの形状タイプを定義しています。Word 文書でワードアートを作成するには、ShapeObject のインスタンスを初期化し、ワードアートの種類とテキスト内容を指定する必要があります。詳しい手順は以下の通りです。

  • Document インスタンスを作成します。
  • Document.AddSection() メソッドを使用して文書にセクションを追加し、Section.AddParagraph() メソッドを使用してセクションに段落を追加します。
  • 段落に形状を追加し、Paragraph.AppendShape(float width, float height, ShapeType shapeType) メソッドを使用して形状のサイズとタイプを指定します。
  • ShapeObject.VerticalPosition および ShapeObject.HorizontalPosition プロパティを使用して、形状の位置を設定します。
  • ShapeObject.WordArt.Text プロパティを使用して、ワードアートのテキストを設定します。
  • ShapeObject.FillColor および ShapeObject.StrokeColor プロパティを使用して、ワードアートの塗りつぶし色と線色を設定します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。
  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace CreatWordArt
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントインスタンスを作成
            Document doc = new Document();

            // セクションを追加
            Section section = doc.AddSection();

            // 段落を追加
            Paragraph paragraph = section.AddParagraph();

            // 段落にシェイプを追加し、シェイプのサイズと種類を指定
            ShapeObject shape = paragraph.AppendShape(400, 150, ShapeType.TextDeflateBottom);

            // シェイプの位置を設定
            shape.VerticalPosition = 60;
            shape.HorizontalPosition = 60;

            // WordArtのテキストを設定
            shape.WordArt.Text = "WordドキュメントのWordArt";

            // WordArtの塗りつぶしの色と輪郭の色を設定
            shape.FillColor = System.Drawing.Color.Cyan;
            shape.StrokeColor = System.Drawing.Color.DarkBlue;

            // ドキュメントを保存
            doc.SaveToFile("output/ワードアートの作成.docx", FileFormat.Docx2013);
            doc.Dispose();
        }
    }
}

C#:Word 文書にワードアートを挿入する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 画像と図形
Tagged under

場合によっては、Word ドキュメント内の画像を別の画像やテキストに置き換えたい場合があります。たとえば、履歴書を作成する場合、テンプレートの元にある画像を自分の写真に置き換える必要があります。この記事では、Spire.Doc for .NET を使用して、C# および VB.NET でプログラムによって Word の画像を置き換える方法を示します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

C# および VB.NET で Word の画像を新しい画像に置き換る

Word 内の画像を別の画像に置き換えるには、ドキュメントの要素をループします。画像を検索してリストに追加します。次に、置換する画像をリストから取得し、DocPicture.LoadImage() メソッドを使用して別の画像に置換します。詳細な手順は次のとおりです。

  • Document クラスのインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントをロードします。
  • List クラスのインスタンスを初期化します。
  • ドキュメント内のすべてのセクションをループします。
  • 各セクションのすべての段落をループします。
  • 各段落のすべてのサブオブジェクトをループします。
  • 画像を検索してリストに追加します。
  • リストから特定の画像を取得し、DocPicture.LoadImage() メソッドを使用して別の画像に置換します。
  • Document.SaveToFile() メソッドを使用して結果ドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Collections.Generic;
using System.Drawing;

namespace ReplaceImageWithImage
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Documentクラスのインスタンスを初期化する
            Document doc = new Document();
            //Wordドキュメントをロードする
            doc.LoadFromFile("Sample.docx");

            //Listクラスのインスタンスを初期化する
            List pictures = new List();

            //ドキュメント内のすべてのセクションをループする
            foreach (Section sec in doc.Sections)
            {
                //各セクションのすべての段落をループする
                foreach (Paragraph para in sec.Paragraphs)
                {
                    //各段落内のすべてのサブオブジェクトをループする
                    foreach (DocumentObject docObj in para.ChildObjects)
                    {
                        //画像を検索してリストに追加する
                        if (docObj.DocumentObjectType == DocumentObjectType.Picture)
                        {
                            pictures.Add(docObj);
                        }
                    }
                }
            }

            //リストの最初の画像を別の画像に置き換える
            DocPicture picture = pictures[0] as DocPicture;
            picture.LoadImage(Image.FromFile(@"doc.png"));

            //結果ドキュメントを保存する
            doc.SaveToFile("ReplaceWithNewImage.docx", FileFormat.Docx2013);

        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Collections.Generic

Namespace ReplaceImageWithImage
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            'Documentクラスのインスタンスを初期化する
            Dim doc As Document = New Document()
            'Wordドキュメントをロードする
            doc.LoadFromFile("Sample.docx")

            'Listクラスのインスタンスを初期化する
            Dim pictures As List(Of DocumentObject) = New List(Of DocumentObject)()

            'ドキュメント内のすべてのセクションをループする
            For Each sec As Section In doc.Sections
                '各セクションのすべての段落をループする
                For Each para As Paragraph In sec.Paragraphs
                    '各段落内のすべてのサブオブジェクトをループする
                    For Each docObj As DocumentObject In para.ChildObjects
                        '画像を検索してリストに追加する
                        If docObj.DocumentObjectType Is DocumentObjectType.Picture Then
                            pictures.Add(docObj)
                        End If
                    Next
                Next
            Next

            'リストの最初の画像を別の画像に置き換える
            Dim picture As DocPicture = TryCast(pictures(0), DocPicture)
            picture.LoadImage(Image.FromFile("doc.png"))

            '結果ドキュメントを保存する
            doc.SaveToFile("ReplaceWithNewImage.docx", FileFormat.Docx2013)

        End Sub
    End Class
End Namespace

C#/VB.NET:Word の画像を置き換える方法

C# および VB.NET で Word の画像をテキストに置き換える

Spire.Doc は画像をテキストに直接置き換える方法を提供していない。しかし、この機能は、画像の位置にテキストを挿入し、ドキュメントから画像を削除することで実現できます。次の手順では、Word 内のすべての画像をテキストに置換き換える方法を示します。

  • Document クラスのインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントをロードします。
  • ドキュメント内のすべてのセクションをループします。
  • 各セクションのすべての段落をループします。
  • List クラスのインスタンスを初期化します。
  • 各段落のすべてのサブオブジェクトをループします。
  • 画像を検索してリストに追加します。
  • リスト内の画像をループします。
  • Paragraph.ChildObjects.Indexof() メソッドを使用して、段落の画像のインデックスを取得します。
  • TextRange クラスのインスタンスを初期化し、TextRange.Text プロパティを使用してテキスト範囲のテキストを設定します。
  • Paragraph.ChildObjects.Insert() メソッドを使用して、画像の位置にテキスト範囲を挿入します。
  • Paragraph.ChildObjects.Remove() メソッドを使用して段落から画像を削除します。
  • Document.SaveToFile() メソッドを使用して結果ドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Collections.Generic;

namespace ReplaceImageWithText
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Documentクラスのインスタンスを初期化する
            Document doc = new Document();
            //Wordドキュメントをロード する
            doc.LoadFromFile("Sample.docx");

            int j = 1;
            //ドキュメント内のすべてのセクションをループする
            foreach (Section sec in doc.Sections)
            {
                //各セクションのすべての段落をループする
                foreach (Paragraph para in sec.Paragraphs)
                {
                    //Listクラスのインスタンスを初期化する
                    List pictures = new List();
                    //画像を検索してリストに追加する
                    foreach (DocumentObject docObj in para.ChildObjects)
                    {
                        if (docObj.DocumentObjectType == DocumentObjectType.Picture)
                        {
                            pictures.Add(docObj);
                        }
                    }

                    //リスト内のすべての画像をループし、テキストに置き換える
                    foreach (DocumentObject pic in pictures)
                    {
                        int index = para.ChildObjects.IndexOf(pic);
                        TextRange range = new TextRange(doc);
                        range.Text = string.Format("Image-{0}", j);
                        para.ChildObjects.Insert(index, range);
                        para.ChildObjects.Remove(pic);
                        j++;
                    }
                }
            }

            //結果ドキュメントを保存する
            doc.SaveToFile("ReplaceWithText.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Collections.Generic

Namespace ReplaceImageWithText
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            'Documentクラスのインスタンスを初期化する
            Dim doc As Document = New Document()
            'Wordドキュメントをロード する
            doc.LoadFromFile("Sample.docx")

            Dim j = 1
            'ドキュメント内のすべてのセクションをループする
            For Each sec As Section In doc.Sections
                '各セクションのすべての段落をループする
                For Each para As Paragraph In sec.Paragraphs
                    'Listクラスのインスタンスを初期化する
                    Dim pictures As List(Of DocumentObject) = New List(Of DocumentObject)()
                    '画像を検索してリストに追加する
                    For Each docObj As DocumentObject In para.ChildObjects
                        If docObj.DocumentObjectType Is DocumentObjectType.Picture Then
                            pictures.Add(docObj)
                        End If
                    Next

                    'リスト内のすべての画像をループし、テキストに置き換える
                    For Each pic As DocumentObject In pictures
                        Dim index As Integer = para.ChildObjects.IndexOf(pic)
                        Dim range As TextRange = New TextRange(doc)
                        range.Text = String.Format("Image-{0}", j)
                        para.ChildObjects.Insert(index, range)
                        para.ChildObjects.Remove(pic)
                        j += 1
                    Next
                Next
            Next

            '結果ドキュメントを保存する
            doc.SaveToFile("ReplaceWithText.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word の画像を置き換える方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 画像と図形
Tagged under

Word ドキュメントでは、画像とテキストが密接に関連することがよくあります。文字だけのドキュメントに比べ、画像を使ったドキュメントは、より分かりやすく、魅力的です。この記事では、Spire.Doc for .NET を使用して Word ドキュメントに画像を挿入する方法について説明します。このプロフェッショナルな Word ライブラリを使用すると、画像のサイズ、位置だけでなく、折り返しのスタイルも設定することができます。

Spire.Doc for .NET をインストールする

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word ドキュメントに画像を挿入し、折り返しスタイルを設定する

Spire.Doc for .NET は、行内、四角形、狭く、内部、上下、背面、前面のような一般的な折り返しスタイルを提供しています。以下は、画像を挿入して、折り返しスタイルを設定する詳細な手順です。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、サンプル Word ドキュメントを読み込みます。
  • Document.Sections[] プロパティを使用して、Word ドキュメントの最初のセクションを取得します。
  • Section.Paragraphs[] プロパティを使用して、セクションの指定された段落を取得します。
  • 画像を読み込み、Paragraph.AppendPicture() メソッドを使用して指定された段落に画像を挿入します。
  • DocPicture.TextWrappingType プロパティを使用して、画像のテキストの折り返しスタイルを設定します。
  • Document.SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C#
  • VB.NET
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace WordImage
{
    class InsertImage
    {
        static void Main(string[] args)
        {
            //Documentクラスのインスタンスを作成する
            Document document = new Document();

            //Wordドキュメントを読み込む
            document.LoadFromFile(@"C:\実例.docx");

            //最初のセクションを取得する
            Section section = document.Sections[0];

            //指定した2つの段落を取得する
            Paragraph para1 = section.Paragraphs[3];
            Paragraph para2 = section.Paragraphs[4];

            //指定した段落に画像を挿入する
            DocPicture Pic1 = para1.AppendPicture(Image.FromFile(@"C:\画像1.jpg"));
            DocPicture Pic2 = para2.AppendPicture(Image.FromFile(@"C:\画像2.jpg"));

            //テキストの折り返しスタイルをにそれぞ四角形と行内れ設定します。
            Pic1.TextWrappingStyle = TextWrappingStyle.Square;
            Pic2.TextWrappingStyle = TextWrappingStyle.Inline;

            //ドキュメントを保存する
            document.SaveToFile("画像の挿入.docx", FileFormat.Docx);
        }
    }
}
Imports System.Drawing
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace WordImage
    Class InsertImage
        Private Shared Sub Main(ByVal args As String())

            'Documentクラスのインスタンスを作成する
            Dim document As Document = New Document()

            'Wordドキュメントを読み込む
            document.LoadFromFile("C:\実例.docx")

            '最初のセクションを取得する
            Dim section As Section = document.Sections(0)

            '指定した2つの段落を取得する
            Dim para1 As Paragraph = section.Paragraphs(5)
            Dim para2 As Paragraph = section.Paragraphs(9)

            '指定した段落に画像を挿入する
            Dim Pic1 As DocPicture = para1.AppendPicture(Image.FromFile("C:\画像1.jpg"))
            Dim Pic2 As DocPicture = para2.AppendPicture(Image.FromFile("C:\画像2.png"))

            'テキストの折り返しスタイルをにそれぞ四角形と行内れ設定します。
            Pic1.TextWrappingStyle = TextWrappingStyle.Square
            Pic2.TextWrappingStyle = TextWrappingStyle.Inline

            'ドキュメントを保存する
            document.SaveToFile("画像の挿入.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントに画像を挿入する方法

Word ドキュメントに指定した位置に画像を挿入する

Spire.Doc for .NET が提供する DocPicture.HorizontalPositionDocPicture.VerticalPosition プロパティは、指定した位置に画像を挿入することを可能にします。詳細な手順は以下の通りです。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、サンプル Word ドキュメントを読み込みます。
  • Document.Sections[] プロパティを使用して、Word ドキュメントの最初のセクションを取得します。
  • Section.Paragraphs[] プロパティを使用して、セクションの指定された段落を取得します。
  • 画像を読み込み、Paragraph.AppendPicture() メソッドを使用してドキュメントに画像を挿入しています。
  • DocPicture.HorizontalPosition プロパティと DocPicture.VerticalPosition プロパティを使用して、画像の水平および垂直位置を設定します。
  • DocPicture.Width プロパティと DocPicture.Height プロパティを使用して画像の高さと幅を設定します。
  • DocPicture.TextWrappingType プロパティを使用して、画像のテキストの折り返しスタイルを設定します。
  • Document.SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace InsertImageAtSpecificLoacation
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentクラスのインスタンスを作成する
            Document document = new Document();

            //Wordドキュメントを読み込む
            document.LoadFromFile(@"C:\実例.docx");

            //最初のセクションを取得する
            Section section = document.Sections[0];

            //画像を読み込み、ドキュメントに挿入する
            DocPicture picture = section.Paragraphs[0].AppendPicture(Image.FromFile(@"C:\画像.jpg"));

            //画像の位置を設定する
            picture.HorizontalPosition = 120.0F;
            picture.VerticalPosition = 200.0F;

            //画像の大きさを設定する
            picture.Width = 200;
            picture.Height = 138;

            //テキストの折り返しスタイルを背面に設定する
            picture.TextWrappingStyle = TextWrappingStyle.Behind;

            //ドキュメントを保存する
            document.SaveToFile("指定した位置に画像の挿入.docx", FileFormat.Docx);
        }
    }
}
Imports System.Drawing
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace InsertImage
    Class Program
        Private Shared Sub Main(ByVal args As String())

            'Documentクラスのインスタンスを作成する
            Dim document As Document = New Document()

            'Wordドキュメントを読み込む
            document.LoadFromFile("C:\実例.docx")

            '最初のセクションを取得する
            Dim section As Section = document.Sections(0)

            '画像を読み込み、ドキュメントに挿入する
            Dim picture As DocPicture = section.Paragraphs(0).AppendPicture(Image.FromFile("C:\画像.jpg"))

            '画像の位置を設定する
            picture.HorizontalPosition = 120.0F
            picture.VerticalPosition = 200.0F

            '画像の大きさを設定する
            picture.Width = 200
            picture.Height = 138

            'テキストの折り返しスタイルを背面に設定する
            picture.TextWrappingStyle = TextWrappingStyle.Behind

            'ドキュメントを保存する
            document.SaveToFile("指定した位置に画像の挿入.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントに画像を挿入する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 画像と図形
Tagged under