//
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// Copyright (c) GrapeCity 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 GcPdfWeb.Samples
{
// このサンプルは、PDF への URL で指定された Web ページをレンダリングする
// 最も簡単な方法を示しています(ここでは、Google ホームページをレンダリングします)。
//
// このサンプルでは、GcHtmlRenderer クラスを直接使用してページを一時的な PDF
// ファイルにレンダリングし、出力ストリームで返します。
// 他のコンテンツと共に HTML ファイルを PDF ファイルに簡単に追加できる、より柔軟な
// 方法は、HelloWorldHtml および他のサンプルで示されているように、拡張
// メソッド GcPdfGraphics.MeasureHtml()/GcPdfGraphics.DrawHtml() を使用
// することです。
//
// 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");
// ソース Uri で GcHtmlRenderer を作成します(GcHtmlRenderer ctor および
// 他の HTML レンダリングメソッドは、レンダリングする HTML ページを指定する Uri、
// または実際の HTML を表す文字列のいずれかを受け入れることに注意してください)。
using (var re = new GcHtmlRenderer(uri))
// ソースWebページを一時ファイルにレンダリングします。
re.RenderToPdf(tmp);
// 作成した PDF を一時ファイルからターゲットストリームにコピーします。
using (var ts = File.OpenRead(tmp))
ts.CopyTo(stream);
// 一時ファイルを削除します。
File.Delete(tmp);
// PDF ドキュメントを保存します。
}
}
}