グラフィックスの描画
続いて、ページのタイトルをグラフィックスメソッドで描画します。
まず、RenderGraphicsクラスのコンストラクタを実行して、RenderGraphicsオブジェクトを作成します。次に、.NET FrameworkクラスライブラリのSystem.Drawing名前空間にあるGraphicsクラスの、FillEllipseメソッドで楕円を、DrawStringメソッドで見出しの文字を描画します。見出し文字は、楕円にかぶさるように配置します。

そして、前回の記事で紹介した方法で、テキストファイル「sample3.txt」の中身をドキュメントに流し込みます。
' グラフィックスを作成
C1PrintDocument1.StartDoc()
Dim rg1 As New RenderGraphics()
rg1.Graphics.FillEllipse(Brushes.Aqua, 100, 100, 50, 50)
rg1.Graphics.DrawString("ComponentOne ColorPicker for Silverlight について",
New Font("MSゴシック", 14, FontStyle.Bold), Brushes.Blue, 120, 110)
C1PrintDocument1.EndDoc()
' 段落 para3 を作成
Dim para3 As New RenderParagraph()
fname = Application.StartupPath & "\sample3.txt"
data = ""
'ファイルから文字列を読み込む
Try
Dim sr As StreamReader = New StreamReader(fname, System.Text.Encoding.Default)
Do
data = sr.ReadLine()
para3.Content.AddText(data)
Loop Until data Is Nothing
sr.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
// グラフィックスを作成
c1PrintDocument1.StartDoc();
RenderGraphics rg1 = new RenderGraphics();
rg1.Graphics.FillEllipse(Brushes.Aqua, 100, 100, 50, 50);
rg1.Graphics.DrawString("ComponentOne ColorPicker for Silverlight について",
new Font("MSゴシック", 14, FontStyle.Bold), Brushes.Blue, 120, 110);
c1PrintDocument1.EndDoc();
// 段落 para3 を作成
RenderParagraph para3 = new RenderParagraph();
fname = Application.StartupPath + "/sample3.txt";
data = "";
//ファイルから文字列を読み込む
try
{
StreamReader sr = new StreamReader(fname, System.Text.Encoding.Default);
while (data != null)
{
data = sr.ReadLine();
para3.Content.AddText(data);
}
sr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
イメージ画像の挿入
続いて、ファイルにあるイメージ画像を読み込み、ドキュメントに挿入します。これは、RenderImageクラスをオブジェクト化し、Imageプロパティにファイルの画像を指定するだけです。作成したグラフィックス、段落、イメージをそれぞれBodyセクションに追加し、Generateメソッドでドキュメントを作成すればページのできあがりです。
' RenderImage を作成します。 C1PrintDocument1.StartDoc() Dim img As New RenderImage fname = Application.StartupPath & "\sample.jpg" img.Image = System.Drawing.Image.FromFile(fname) img.Width = "100%" C1PrintDocument1.EndDoc() ' 段落をドキュメントに追加 C1PrintDocument1.Body.Children.Add(rg1) C1PrintDocument1.Body.Children.Add(para3) C1PrintDocument1.Body.Children.Add(img) C1PrintDocument1.Generate()
// RenderImage を作成します。 c1PrintDocument1.StartDoc(); RenderImage img = new RenderImage(); fname = Application.StartupPath + "/sample.jpg"; img.Image = System.Drawing.Image.FromFile(fname); img.Width = "100%"; c1PrintDocument1.EndDoc(); // 段落をドキュメントに追加 c1PrintDocument1.Body.Children.Add(rg1); c1PrintDocument1.Body.Children.Add(para3); c1PrintDocument1.Body.Children.Add(img); c1PrintDocument1.Generate();
