PDF 出力は unvell.ReoGrid.IO.Pdf が担当します。外部パッケージに依存せず、
System.Drawing にも依存しないため Linux / macOS のサーバーでも動作します。
V4 は印刷経由でしか PDF を作れませんでしたが、V5 は直接出力できます。
出力する
using unvell.ReoGrid.IO.Pdf;
PdfExporter.Export(wb, "book.pdf"); // 全シート
PdfExporter.Export(ws, "sheet.pdf"); // 1 シートだけ
byte[] bytes = PdfExporter.ExportToBytes(wb); // ストリームで受け取る
ExportToBytes は Web API のレスポンスとして返す場合などに使います。
印刷設定を適用する
var settings = new PrintSettings
{
Paper = PaperKind.A4,
Orientation = PageOrientation.Landscape,
ShowGridLines = false,
FitToPagesWide = 1,
};
PdfExporter.Export(ws, "sheet.pdf", settings);
設定を省略するとシートの ws.PrintSettings が使われます。
指定できる項目は 印刷とページ設定 と共通です。
日本語フォント
IPAexGothic が DLL に埋め込まれています(Type0 / CIDFontType2)。 サーバーにフォントをインストールしていなくても日本語が出力されます。
PDF に埋め込むのは、その文書で使った文字だけです(サブセット化)。フォント全体は約 6 MB ありますが、日本語の帳票 1 枚なら PDF は数十 KB に収まります。
欧文は標準の Helvetica 4 フェイス(通常・太字・斜体・太字斜体)を使います。
IPAexGothic には太字・斜体のフェイスが無いため、Excel が MS ゴシックで PDF を書くときと同じく 合成します。太字は字形の輪郭を塗りに加えて線でもなぞり(線幅 1/35 em)、斜体は字形を傾けます。 文字送りは変わらないので、レイアウトは通常の書体と同じです。
複数ページ
改ページは印刷と共通のエンジン(Paginator)が計算します。行・列は
Excel と同じく分割されず、印刷可能領域にパックされます。
画像
シートに配置した画像はそのまま埋め込まれます(画像)。 PNG と JPEG に対応します。
条件付き書式
データバー・カラースケール・アイコンセットも描画されます。アイコンは
IGridGraphics の楕円・多角形プリミティブで描かれ、画面と同じ見た目になります。
ライセンス
PDF 出力にはライセンスキーが必要です。 有効なキーが無い状態(未適用・期限切れ・
allowedAssembly 不一致)では PdfExporter は ReoGridLicenseException を投げ、ファイルは
一切書き出されません。透かし入りの PDF にフォールバックすることはありません。
ファイル入出力を黙って劣化させるのではなく失敗させているのは、ヘッドレス用途を想定して いるためです。サーバー上には透かしに気付く人がおらず、最初に目にするのはその文書を受け取った 相手になります。評価にはトライアルキーを適用してください(ライセンスキーの適用)。
サーバーでの利用
unvell.ReoGrid.One.Core(net10.0・依存ゼロ)に含まれます。
XLSX を読んで PDF にする流れは ヘッドレスで使う を
参照してください。