GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の、製品のTIPSや発売などに関する最新情報をお届けします。

GrapeCity

DioDocsでHTMLをPDFと画像に出力する

今回は、「DioDocs(ディオドック)」でHTMLのコンテンツをPDFや画像に出力する機能を紹介したいと思います。こちらは2019年12月18日(水)にリリースされた「DioDocs V3J」でDioDocs for PDFに追加された機能です。

HTMLを扱うために必要なNuGetパッケージについては製品ヘルプに記載されています。

DioDocs for PDF - HTML の PDF への描画

この機能を使用してPDFと画像に出力できるHTMLコンテンツは以下の3種類です。

  • HTMLドキュメント(HTML文字列)
  • HTMLファイル
  • HTMLページ(Webページ)

1. PDFに出力

(1) HTMLドキュメント(HTML文字列)

シンプルなHTML文字列を描画するにはDrawHtmlを使用します。

var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;

var html = @"
    <!DOCTYPE html>
    <html>
      <head>
        <style>
            p.round {
              font: 28px Yu Gothic;
              color: Blue;
              padding: 3px 5px 3px 5px;
            }
        </style>
      </head>
      <body>
        <p class='round'>Hello, World!</p>
        <p class='round'>こんにちは、DioDocs(ディオドック)です</p>
      </body>
    </html>";

g.DrawHtml(html, 72, 72, new HtmlToPdfFormat(false), out SizeF size);

doc.Save("HTMLStringToPDF.pdf");

PDFに出力(HTMLドキュメント)

(2) HTMLファイル

HTMLファイルの場合はSystem.IO.File.ReadAllTextで対象のHTMLファイルのHTML文字列を読み取ってDrawHtmlに設定します。

var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;

g.DrawHtml(File.ReadAllText("ActiveReports.html"),
           72,
           72,
           new HtmlToPdfFormat(false),
           out SizeF size);

doc.Save("ActiveReports.pdf");

PDFに出力(HTMLファイル)

(3) HTMLページ(Webページ)

HTMLページの場合はSysytem.Uriで対象のWebページのURLを指定してGcHtmlRendererに設定します。

var pdffile = @"HTMLPageToPDF.pdf";
var uri = new Uri(@"https://docs.grapecity.com/help/diodocs/pdf/#overview.html");

var gcHtmlRenderer = new GcHtmlRenderer(uri);

gcHtmlRenderer.RenderToPdf(pdffile, new PdfSettings());

PDFに出力(HTMLページ)

2. 画像に出力

(1) HTMLドキュメント(HTML文字列)

シンプルなHTML文字列を描画するにはGcHtmlRendererを使用します。RenderToJpegでJPEGに、RenderToPngでPNGに出力できます。

var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;

var html = @"
    <!DOCTYPE html>
    <html>
      <head>
        <style>
            p.round {
              font: 28px Yu Gothic;
              color: Blue;
              padding: 3px 5px 3px 5px;
            }
        </style>
      </head>
      <body>
        <p class='round'>Hello, World!</p>
        <p class='round'>こんにちは、DioDocs(ディオドック)です</p>
      </body>
    </html>";

var gcHtmlRenderer = new GcHtmlRenderer(html);
gcHtmlRenderer.RenderToJpeg("HTMLStringToImage.jpeg", new JpegSettings());
gcHtmlRenderer.RenderToPng("HTMLStringToImage.png", new PngSettings());

画像に出力(HTMLドキュメント)

(2) HTMLファイル

HTMLファイルの場合はSystem.IO.File.ReadAllTextで対象のHTMLファイルのHTML文字列を読み取ってGcHtmlRendererに設定します。

var doc = new GcPdfDocument();
var page = doc.NewPage();
var g = page.Graphics;

var gcHtmlRenderer = new GcHtmlRenderer(File.ReadAllText("ActiveReports.html"));

gcHtmlRenderer.RenderToJpeg("HTMLFileToPDF.jpeg", new JpegSettings());
gcHtmlRenderer.RenderToPng("HTMLFileToPDF.png", new PngSettings());

画像に出力(HTMLファイル)

(3) HTMLページ(Webページ)

HTMLページの場合はSysytem.Uriで対象のWebページのURLを指定してGcHtmlRendererに設定します。

var jpegfile = @"HTMLPageToPDF.jpeg";
var pngfile = @"HTMLPageToPDF.png";
var uri = new Uri(@"https://docs.grapecity.com/help/diodocs/pdf/#overview.html");

var gcHtmlRenderer = new GcHtmlRenderer(uri);

gcHtmlRenderer.RenderToJpeg(jpegfile, new JpegSettings());
gcHtmlRenderer.RenderToPng(pngfile, new PngSettings());

画像に出力(HTMLページ)


今回紹介した機能を記載しているデモはこちらです。

今回紹介した機能を記載しているサンプルはこちらです。

GrapeCityJP/DDPdfHtmlDocument(HTMLドキュメント)

GrapeCityJP/DDPdfHtmlFile(HTMLファイル)

GrapeCityJP/DDPdfHtmlWebPage(HTMLページ)

DioDocsは2020年5月20日に最新バージョンの「V3J SP1」をリリースしています。

  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の製品・技術資料をご覧ください。
  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の製品のデモアプリケーションをお試しください。