チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
ワードアート(WordArt)は、カラフルでスタイリッシュなテキストを文書に挿入できるワード文書の機能です。さらに、テキストの形状を曲げたり、伸ばしたり、傾けたりすることもでき、特別な効果でテキストを際立たせるための手軽な方法です。この記事では、Spire.Doc for .NET を使用して、プログラムで Word 文書にワードアートを追加する方法を紹介します。
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
Spire.Doc for .NET が提供する ShapeType 列挙型は、"Text" で始まるさまざまなワードアートの形状タイプを定義しています。Word 文書でワードアートを作成するには、ShapeObject のインスタンスを初期化し、ワードアートの種類とテキスト内容を指定する必要があります。詳しい手順は以下の通りです。
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();
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
場合によっては、Word ドキュメント内の画像を別の画像やテキストに置き換えたい場合があります。たとえば、履歴書を作成する場合、テンプレートの元にある画像を自分の写真に置き換える必要があります。この記事では、Spire.Doc for .NET を使用して、C# および VB.NET でプログラムによって Word の画像を置き換える方法を示します。
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
Word 内の画像を別の画像に置き換えるには、ドキュメントの要素をループします。画像を検索してリストに追加します。次に、置換する画像をリストから取得し、DocPicture.LoadImage() メソッドを使用して別の画像に置換します。詳細な手順は次のとおりです。
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
Spire.Doc は画像をテキストに直接置き換える方法を提供していない。しかし、この機能は、画像の位置にテキストを挿入し、ドキュメントから画像を削除することで実現できます。次の手順では、Word 内のすべての画像をテキストに置換き換える方法を示します。
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
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word ドキュメントでは、画像とテキストが密接に関連することがよくあります。文字だけのドキュメントに比べ、画像を使ったドキュメントは、より分かりやすく、魅力的です。この記事では、Spire.Doc for .NET を使用して Word ドキュメントに画像を挿入する方法について説明します。このプロフェッショナルな Word ライブラリを使用すると、画像のサイズ、位置だけでなく、折り返しのスタイルも設定することができます。
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
Spire.Doc for .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
Spire.Doc for .NET が提供する DocPicture.HorizontalPosition と DocPicture.VerticalPosition プロパティは、指定した位置に画像を挿入することを可能にします。詳細な手順は以下の通りです。
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
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。