v4.6 から、ReoGrid の WinForms 版はワークシートを PDF に直接書き出せます。PDF 出力に必要な機能は ReoGrid に内蔵しているため、追加のライブラリやプリンタードライバーを使わずに出力を完結できます。
using unvell.ReoGrid.PDF;
ワークシートをエクスポート
PDFExporter.Export(grid.CurrentWorksheet, @"C:\Reports\sales.pdf");
ブック全体をエクスポート
複数のワークシートを渡すと、順に続けて 1 つの PDF にします。
// コントロールのすべてのワークシート
PDFExporter.Export(grid.Worksheets, @"C:\Reports\book.pdf");
// 指定したワークシートを、指定した順で
PDFExporter.Export(new[] { grid.Worksheets["Sheet1"], grid.Worksheets["Sheet3"] }, @"C:\Reports\summary.pdf");
印刷する内容のないワークシートはページを追加しません。
ストリームへエクスポート
using (var ms = new MemoryStream())
{
PDFExporter.Export(grid.CurrentWorksheet, ms);
byte[] pdf = ms.ToArray(); // メールの添付ファイルなどに
}
PDFExporter のメソッド
| メソッド | 説明 |
|---|---|
Export(Worksheet sheet, string filePath) | ワークシート 1 枚をファイルに出力 |
Export(Worksheet sheet, Stream stream) | ワークシート 1 枚をストリームに出力 |
Export(IEnumerable<Worksheet> sheets, string filePath) | 複数のワークシートを 1 つのファイルに出力 |
Export(IEnumerable<Worksheet> sheets, Stream stream) | 複数のワークシートを 1 つのストリームに出力 |
ページのレイアウトは印刷設定に従います
PDF はワークシートを印刷したときとまったく同じレイアウトになり、印刷の 1 ページが PDF の 1 ページになります。印刷のための設定がすべて反映されます。
- 印刷範囲と改ページ
- 用紙サイズ・向き・余白(
PrintSettings.PaperName・Landscape・Margins) - 倍率、またはページ数に合わせる設定(
PageScaling・FitToPage) - ページの順序とページ中央への配置(
PageOrder・CenterHorizontally・CenterVertically) - ヘッダーとフッター(
Worksheet.HeaderFooter)
var sheet = grid.CurrentWorksheet;
sheet.PrintSettings.PaperName = "A4";
sheet.PrintSettings.Landscape = true;
sheet.PrintSettings.FitToPage = true; // 横は 1 ページ、
sheet.PrintSettings.FitToPagesWide = 1;
sheet.PrintSettings.FitToPagesTall = 0; // 縦は必要なだけ
sheet.HeaderFooter.OddFooter = "&C&P / &N ページ";
// 新しい設定で改ページを計算し直す
sheet.AutoSplitPage();
PDFExporter.Export(sheet, @"C:\Reports\sales.pdf");
まだページ分けをしていないワークシートは、エクスポート時に自動でページ分けします。すでにページ分けしたワークシートの印刷設定を変えた場合は、AutoSplitPage() を呼んで改ページを計算し直してください。各設定の詳細はページングと印刷をご覧ください。
PDF に出力される内容
- セルの塗りつぶしと、すべての種類の罫線
- フォント・サイズ・色・配置を反映したセルの文字(回転した文字、禁則処理つきで折り返す文字や改行を含む文字も含む)
- セルの画像
- 各ページのヘッダーとフッター
セル・罫線・文字はベクターと文字データのまま書き出すので、拡大しても鮮明で、PDF 内の文字は検索・選択・コピーができます。半透明の色もそのまま出力します。
フォント
ワークシートで使っているフォントを、文書で描いた文字だけに絞って埋め込みます。日本語フォントを含めても、増えるのは数 MB ではなく数十 KB です。セルのフォントにない文字は、画面と同じく日本語を表示できるフォントで描きます。
PostScript アウトラインの OpenType フォント(.otf、CFF)は埋め込めないため、そのフォントの文字は既定のフォントで出力します。
ライセンス
PDF 出力は印刷と同様に有効なライセンスキーが必要です。未設定の場合、Export は InvalidOperationException を投げます。ライセンスキーの設定をご覧ください。
サーバーで PDF を作る場合
PDFExporter は WinForms 版の機能で、デスクトップアプリの中で動作します。ASP.NET Core のサービスやバッチ処理、Linux のコンテナなど、画面を持たない環境で PDF を出力するには、Windows・Linux・macOS のヘッドレス環境で PDF を出力できる ReoGrid One V5 をお使いください。同じライセンスで両方をご利用いただけます。