PDF for WPF and Silverlight
ページとオーバーレイの作成
PDF for WPF/Silverlight の概要 > 機能:PDF for WPF/Silverlight > ページとオーバーレイの作成

前の例では、コンテンツをドキュメントに追加する操作を C1PdfDocument オブジェクトの作成のすぐ後で開始しました。これは、C1PdfDocument の作成時に空のページがドキュメントに自動的に追加されて、任意の種類のコンテンツを受け入れる準備ができているために可能でした。

最初のページを既に塗りつぶしてある場合は、NewPage メソッドを使用して新しいページを追加できます。

デフォルトでは、ドキュメント内のすべてのページが同じサイズと同じ方向を持ちます。これらのパラメータは、C1PdfDocument コンストラクタで指定できます。ページのサイズと方向も、C1PdfDocument.PaperKindC1PdfDocument.PageSize、および C1PdfDocument.Landscape プロパティを設定することでいつでも変更できます。たとえば、次のコードは、すべての用紙サイズを PaperKind 列挙によって定義してドキュメントを作成します。

Visual Basic でコードを書く場合

Visual Basic
コードのコピー
Dim font As New Font("Tahoma", 7, PdfFontStyle.Bold)

Dim sf As New StringFormat()
 sf.Alignment = HorizontalAlignment.Center
 For page As Integer = 0 To pdf.Pages.Count - 1
     ' ページを選択します。
    pdf.CurrentPage = page
     ' フッターをレンダリングするための四角形を構築します。

    Dim rect As Rect = pdf.PageRectangle

    rect.Y = rect.Bottom - 36
     ' フッターを書き込みます。
    Dim text As String = String.Format("Page {0} of {1}", page + 1, pdf.Pages.Count)
     pdf.DrawString(text, font, Colors.Gray, rect, sf)
 Next

C# でコードを書く場合

       
C#
コードのコピー
Rect rect = new Rect(72, 72, 100, 50); 
// 一定のフォントおよびStringFormatオブジェクトを作成します。
Font font = new Font("Tahoma", 18);
StringFormat sf = new StringFormat();
sf.Alignment = HorizontalAlignment.Center;
sf.LineAlignment = VerticalAlignment.Center;

// 各用紙サイズにつき1つのページを作成します。
bool firstPage = true;
foreach (var fi in typeof(PaperKind).GetFields(System.Reflection.BindingFlags.Static | 
    System.Reflection.BindingFlags.Public))
{
    // Silverlight/Phone はEnum.GetValuesを持っていません。
    PaperKind pk = (PaperKind)fi.GetValue(null);

    // カスタムサイズはスキップします。
    if (pk == PaperKind.Custom) continue;

    // 最初のページ以降のすべてのページに新しいページを追加します。
    if (!firstPage) pdf.NewPage();
    firstPage = false;

    // 用紙の種類および方位を設定します。
    pdf.PaperKind = pk;
    pdf.Landscape = !pdf.Landscape;

    // コンテンツをページに描画します。
    
    string text = string.Format("PaperKind: [{0}];\r\nLandscape: [{1}];\r\nFont: [Tahoma 18pt]",
        pdf.PaperKind, pdf.Landscape);
    pdf.DrawString(text, font, Colors.Black, rect, sf);
    pdf.DrawRectangle(Colors.Black, rect);
}
         

 

ドキュメントに追加された最終ページ以外にも書き込むことができます。C1PdfDocument.CurrentPage プロパティを使用して書き込み対象のページを選択し、通常の描画コマンドを通常どおりに使用します。これは、ドキュメントのレンダリングを完了した後で、コンテンツをページに追加する場合に役立ちます。たとえば、次のコードは、現在のページ番号と総ページ数を含むフッター("Page n of m")をドキュメント内の各ページに追加します。

Visual Basic でコードを書く場合

Visual Basic
コードのコピー
Dim font As New Font("Tahoma", 7, PdfFontStyle.Bold)
Dim sf As New StringFormat()
sf.Alignment = HorizontalAlignment.Center
For page As Integer = 0 To pdf.Pages.Count - 1
    ' ページを選択します。
    pdf.CurrentPage = page
    ' フッターをレンダリングするための四角形を構築します。
    Dim rect As Rect = pdf.PageRectangle
    rect.Y = rect.Bottom - 36
    ' フッターを書き込みます。
    Dim text As String = String.Format("Page {0} of {1}", page + 1, pdf.Pages.Count)
    pdf.DrawString(text, font, Colors.Gray, rect, sf)
Next

C# でコードを書く場合

    

C#
コードのコピー
Font font = new Font("Tahoma", 7, PdfFontStyle.Bold);

StringFormat sf = new StringFormat();
sf.Alignment = HorizontalAlignment.Center;
for (int page = 0; page < pdf.Pages.Count; page++)
{
    // ページを選択します。
    pdf.CurrentPage = page;
    // フッターをレンダリングするための四角形を構築します。

    Rect rect = pdf.PageRectangle;
   
    rect.Y = rect.Bottom-36;
    // フッターを書き込みます。
    string text = string.Format("Page {0} of {1}", page + 1, pdf.Pages.Count);
    pdf.DrawString(text, font, Colors.Gray, rect, sf);
}