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 ドキュメントを保存します。
}
}
}