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」をリリースしています。


弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。

また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /