Visualforceを使わずにApexのみでPDFを作る(Spring’26)
ベンジャミンのヤマノウチです。
Spring’26からVisualforceを経由せずにApexだけでPDFを作成できる、というので試してみました。
1:Spring’26時点では有効化の必要があるので有効化する
※くれぐれも影響のないSandboxやDeveloper環境などでお試しください
1.1:設定で「リリース更新」を検索、リリース更新を選択。「Use Visualforce PDF Rendering Service with Apex Blob.toPdf()」の「使用開始」ボタンを押下する。

1.2:「テスト実行を有効化」を押下する

2:開発者コンソールで以下のコードを実行する
いったん「請求書」としてますがなんでもよいと思います。
// 1. 変数の定義
String accName = '株式会社ベンジャミン';
// 2. HTMLの組み立て
// 新しいエンジンでは Arial Unicode MS を指定することで日本語が描画されます
String html = '<html><head><style>' +
'body { font-family: "Arial Unicode MS"; }' +
'h1 { color: #1797E8; border-bottom: 1px solid #ccc; }' +
'</style></head><body>' +
'<h1>請求書</h1>' +
'<p>取引先名: ' + accName + '</p>' +
'<p>このPDFは Spring \'26 の Blob.toPdf() で生成されました。</p>' +
'</body></html>';
// 3. PDF変換(設定が有効なら、ここでHTMLがレンダリングされます)
Blob pdfBlob = Blob.toPdf(html);
// 4. ファイルとして保存
ContentVersion cv = new ContentVersion();
cv.Title = 'Spring26_Invoice_Test.pdf';
cv.PathOnClient = 'Spring26_Invoice.pdf';
cv.VersionData = pdfBlob;
insert cv;
System.debug('PDFの生成に成功しました。ID: ' + cv.Id);
3:結果を確認する
ファイルタブから「Spring26_Invoice_Test.pdf」を探して開く、あるいはプレビューする

考え方としてはBlob.ToPdf()のメソッドがHTMLを読み込めるようになった、と理解したのでよさそうです。もともとPDF作るだけならできてた・・・?のかもですが、マルチバイト(日本語含む)対応含め今回のリリースでの適用とのことです。フォントの制約もありそうです。がっつり作ろうと思ったらまだまだ検証が必要ですが、ちょっとしたものならこれで十分かもしれませんね。
