PageSize.cs
// 
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// © MESCIUS inc. All rights reserved.
// 
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Common;
using GrapeCity.Documents.Drawing;

namespace DsPdfWeb.Demos.Basics
{
    // ページのサイズと向きを変更する方法を示します。
    public class PageSize
    {
        public int CreatePDF(Stream stream)
        {
            const float in2mm = 72f / 25.4f;
            var colorOrig = Color.Red;
            var colorNew = Color.Blue;
            var doc = new GcPdfDocument();
            // デフォルトのページサイズは、縦向きのレターサイズ(8 1/2 インチ x 11インチ)です。
            var page = doc.NewPage();
            var sOrigPageInfo = $"変更前ページサイズ: {page.Size} ポイント ({page.Size.Width / 72f}\" * {page.Size.Height / 72f}\"),\r\n" + 
                $"用紙種類: {page.PaperKind}, 用紙は横向き: {page.Landscape}";
            // 元のページ境界を保存します。
            var rOrig = page.Bounds;
            // ページのパラメータを変更します。
            page.Landscape = true;
            page.PaperKind = PaperKind.A4;
            var sNewPageInfo = $"変更後ページサイズ: {page.Size} ポイント ({page.Size.Width / in2mm}mm * {page.Size.Height / in2mm}mm),\r\n" + 
                $"用紙種類: {page.PaperKind}, 用紙は横向き: {page.Landscape}";
            // 新しいページの境界です。
            var rNew = page.Bounds;
            // 元ページ(赤)および新ページ(青)の境界線をそれぞれ描画します。
            page.Graphics.DrawRectangle(rOrig, colorOrig, 6);
            page.Graphics.DrawRectangle(rNew, colorNew, 6);
            // 元ページ(赤)および新ページ(青)の情報を描画します。
            var tf = new TextFormat()
            {
                Font = Common.Util.getFont(),
                FontSize = 14,
                ForeColor = colorOrig
            };
            page.Graphics.DrawString(sOrigPageInfo, tf, new PointF(72, 72));
            tf.ForeColor = colorNew;
            page.Graphics.DrawString(sNewPageInfo, tf, new PointF(72, 72 * 2));
            // PDF ドキュメントを保存します。
            doc.Save(stream);
            return doc.Pages.Count;
        }
    }
}