RenderPage0.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.Html;

namespace DsPdfWeb.Demos
{
    // このサンプルは、URL で指定された Web ページを PDF にレンダリングする
    // 最も簡単な方法を紹介しています(ここでは、Google のホームページをレンダリングします)。
    // 
    // このサンプルでは、GcHtmlBrowser を使用して、指定された URI を読み込む
    // HtmlPage のインスタンスを生成し、HtmlPage.SaveAsPdf() メソッドを呼び出して
    // ページを PDF にレンダリングしています。
    // 
    // 他のコンテンツと一緒に HTML コンテンツを PDF ファイルに簡単に追加できる
    // 別のアプローチとして、HelloWorldHtml や他のサンプルのように、
    // 拡張メソッド GcPdfGraphics.MeasureHtml()/GcPdfGraphics.DrawHtml() を
    // 使用する方法があります。
    // なお、これらのメソッドには、GcHtmlBrowser のインスタンスをパラメータとして
    // 渡す必要があることに注意してください。
    // 
    // GcHtml をプロジェクトに追加する方法の詳細については、HelloWorldHtml
    // サンプルコードの上部にあるコメントのメモを参照してください。
    public class RenderPage0
    {
        public void CreatePDF(Stream stream)
        {
            // Web ページがレンダリングされる一時ファイルを取得します。
            var tmp = Path.GetTempFileName();
            // レンダリングする Web ページの Uri。
            var uri = new Uri("https://www.google.co.jp");
            // HTML のレンダリングに使用する GcHtmlBrowser のインスタンスを生成します。
            using var browser = Common.Util.NewHtmlBrowser();
            // ソース Uri をレンダリングする HtmlPage インスタンスを作成します。
            using var htmlPage = browser.NewPage(uri);
            // ソースWebページを一時ファイルにレンダリングします。
            htmlPage.SaveAsPdf(tmp);
            // 作成した PDF を一時ファイルからターゲットストリームにコピーします。
            using (var ts = File.OpenRead(tmp))
                ts.CopyTo(stream);
            // 一時ファイルを削除します。
            File.Delete(tmp);
            // PDF ドキュメントを保存します。
        }
    }
}