PDF for WPFドキュメントには画像も簡単に追加できます。すべての作業が C1PdfDocument.DrawImage メソッドによって処理されます。
C1PdfDocument.DrawImage は、指定された画像を指定された位置に描画し、パラメータで画像の配置とスケーリングを制御できます。次の例では、この画像は次のようになります。
このコードを使用すると、同じ画像が3回描画されます。
Visual Basic でコードを書く場合
Visual Basic |
コードのコピー
|
---|---|
Dim rect As Rect = pdf.PageRectangle rect.Inflate(-150, -150) Dim fs As Stream = File.Open("..\..\image.jpg", FileMode.Open) ' 書き込み可能なビットマップでイメージを書き込みます。 Dim bi As New BitmapImage() bi.BeginInit() bi.StreamSource = fs bi.EndInit() Dim wb = New WriteableBitmap(bi) ' 画像を四角形内の中心に配置し、アスペクト比を維持したままスケーリングします。 pdf.DrawImage(wb, rect, ContentAlignment.MiddleCenter, Stretch.Uniform) |
C# でコードを書く場合
C# |
コードのコピー
|
---|---|
Rect rect = pdf.PageRectangle; rect.Inflate(-150, -150); Stream fs = File.Open(@"..\..\image.jpg", FileMode.Open); // 書き込み可能なビットマップでイメージを書き込みます。 BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.StreamSource = fs; bi.EndInit(); var wb = new WriteableBitmap(bi); // 画像を四角形内の中心に配置し、アスペクト比を維持したままスケーリングします。 pdf.DrawImage(wb, rect, ContentAlignment.MiddleCenter, Stretch.Uniform); |
Rect rect = pdf.PageRectangle();
rect.Inflate(-72, -72);
//画像を四角形と同じ大きさに引き伸ばします。
pdf.DrawImage(pictureBox1.Image, rect);
//画像を四角形内の中心に配置し、アスペクト比を維持したままスケーリングします。
pdf.DrawImage(pictureBox1.Image, rect, ContentAlignment.MiddleCenter, C1.WPF.Pdf.ImageSizeModeEnum.Scale);
//画像を四角形の左上隅にレンダリングします。
pdf.DrawImage(pictureBox1.Image, rect, ContentAlignment.TopLeft, 1.C1Pdf.ImageSizeModeEnum.Clip);
PDF ドキュメントは次のように表示されます。
メタファイルを含む通常の .NET Image オブジェクトもレンダリングできます。メタファイルはビットマップに変換されず、ドキュメント内で再生されるため、最適な解像度が維持されます。チャートや技術的な図面を PDF ドキュメントに追加する場合は、ビットマップではなくメタファイルの方が適しています。
ビットマップ画像は、PDF for WPF によって自動的に管理されます。同じ画像を(たとえば、ページヘッダーで)複数回レンダリングしても、画像の1つのコピーのみが PDF ファイルに保存されます。