ソースコードレベルのネイティブ PDF · Delphi と C++Builder

工業グレードの PDF 機能を RAD Studio アプリへ。外部ランタイムには一行も依存しない

HotPDF は Delphi と C++Builder のために作られたソースコードレベルの PDF コンポーネントライブラリです。純ネイティブで外部 PDF ランタイムや DLL を使わず、高度な組版シェーピング、コンプライアンス署名、標準プリフライト、マルチギガバイト処理の能力を、すべて単一の実行プロセス内に閉じ込めます

  • 純 Delphi ソースコード · 外部 PDF DLL なし
  • OpenType GSUB + GPOS フルエンジン
  • インプロセス PFX/PKCS#12 署名
  • PAdES B-B / B-T / B-LT / B-LTA
  • PDF/A · PDF/X · PDF/UA 三軸適合
  • マルチギガバイト Direct File API

同種コンポーネントが容易に真似できない 8 つの差別化

以下のセールスポイントは、すべて HotPDF が出荷済みの機能であり、ロードマップ上の約束ではありません。1 つ 1 つに、ソースコードのユニット名、関数名、通過したテストという形で検証可能な実装証拠が付いています

ソースコードレベルのネイティブ · 外部 PDF ランタイムなし

Pascal ソースコードのままプロジェクトに統合し、生成・解析・保存の全行程をあなたのプロセス内で完結させます。デバッグも配置も完全に制御可能。画像/圧縮で使う C バックエンド(zlib-ng、libjpeg-turbo、OpenJPEG、jbig2dec)はすべて静的オブジェクトファイルとしてリンクされ、実行時に追加の PDF エンジン DLL はありません

エントリクラス THotPDF · Pascal ソースユニット 47 本

OpenType シェーピング + ポジショニングの完全実装

フルセットの GSUB(LookupType 1–8)代替エンジンと、フルセットの GPOS(全 9 種類の LookupType)ポジショニングエンジンを内蔵。合字、スモールキャップ、文脈置換、文字ペア/文脈カーニング、mark-to-base、mark-to-mark、cursive 接続まで一通り揃っています。多くの同種 Delphi PDF コンポーネントは、この部分が空白です

テキスト出力の段階で 20 以上の OpenType 組版機能を自動有効化

ジェネレータ側の複雑スクリプトシェーピング

20 以上のスクリプトに対応するジェネレータ側シェーピング: アラビア語(Supplement / Extended-A/B を含む)、シリア語、モンゴル語、チベット語、デーヴァナーガリーとインド系諸語、ジャワ語、タイ/ラオス語、ヘブライ語、クメール語、ビルマ語など。UAX #9 双方向パイプラインと完全な /ToUnicode 逆マッピングを備え、コピー/ペースト/検索でも元のコードポイントを復元します

35 項目の合字逆マッピングを内蔵(LAM-ALEF、YEH-HAMZA 系、アッラーンの名など)

インプロセス PFX / PKCS#12 署名 · 依存ゼロ

THotPDF.SignPDFWithPFX を一行呼び出すだけで PFX/PKCS#12 署名が完了します。OpenSSL もプラットフォームの暗号プロバイダも不要。ASN.1、RSA、AES、PKCS#12 のアンパックから CMS SignedData(RFC 5652)までの一連の処理を HotPDF 内部で実装しており、結果は再現可能・監査可能です

実装ユニット: HPDFASN1 / HPDFRSA / HPDFCrypt / HPDFPFX / HPDFCMS / HPDFAES

PAdES 長期検証 · エンドツーエンド

PAdES B-B / B-T / B-LT / B-LTA に対応。EU の eIDAS 適合で必須となる難所——RFC 3161 タイムスタンプ、DSS/VRI 辞書、ドキュメントタイムスタンプ署名、Seed Value 制約、XAdES-in-PDF をすべて実装済みです。競合製品の多くは、素の CMS の段階で止まったまま

長期アーカイブと電子署名のユースケースで、法規制の証跡要件にそのまま対応

三軸適合 + プリフライトレポート

PDF/A-1/-2/-3、PDF/X-1a/-3/-4、PDF/UA-1 の三系統の独立した適合プロファイルを同時にロック。不適合な呼び出しは、不適合な PDF を黙って生成するのではなく、診断例外として通知します。CreatePreflightReport はテキスト/JSON/HTML/CSV レポートを出力し、veraPDF による検証も済みです

メソッド単位の PDF バージョンゲート: RequirePDFVersion + StrictVersionLock

マルチギガバイト Direct File API

ファイルからファイルへ直接処理し、メモリ上にオブジェクトグラフを組みません。DAOpenFileReadOnly、DACopyFile、EncryptFile、DecryptFile などが古典 xref テーブル、XRef ストリーム、混合参照、インクリメンタル更新のファイルを処理し、スループットは秒単位です

2 GB / 167 万オブジェクトの実測: AES-256 暗号化が約 14 秒。1.25 GB 文書のページ数をミリ秒で読み出し

CFF / OpenType-CFF / CID サブセット化

TrueType、OpenType-CFF、CID キー付き CFF フォントをサブセット化し(EnableFontSubsetting)、Type0/Identity-H のグリフ ID を保持します。CJK 文書は約 14 MB の CID キー付き CFF から 500 KB〜2 MB へ、典型的なラテン TTF は 350 KB から 10〜15 KB へ縮小します

決定論的なサブセットタグにより、出力はバイト単位で再現可能

4 種類のレポートエンジンアダプタ

FastReport、QuickReport、ReportBuilder、DevExpress ExpressPrinting(cxGrid/cxRichEdit/cxScheduler/cxPivotGrid をカバー)に DBGrid アダプタを加えた構成。既存のレポートを一行で HotPDF の PDF バックエンドに接続でき、レポートを書き直す必要はありません

アダプタユニットは Lib/addons/<engine> に配置

主張ではなく、検証可能な証拠

2 GB単一ドキュメント処理、167 万オブジェクトを実測
47本の Pascal ソースユニット
41%オブジェクトストリーム圧縮後のサイズ削減率を実測
756+API・サンプル・適合・ワークフローのトピック
出荷済み、検証済み。 DUnitX(Win32 / Win64)と GoogleTest(C++Builder)の回帰テストが常時ゲートを守り、適合声明は veraPDF で検証済み。PDFSpecComplianceMatrix.md には、サポートする作成面について「未実装の PDF 仕様コードギャップなし」と記録されています

HotPDF を真剣に見るべきユーザー

エンタープライズ文書 / 電子署名

契約書、請求書、アーカイブ——PAdES 長期検証、署名済みバイト範囲を守るインクリメンタル更新(BeginIncrementalUpdate)、PDF/A アーカイブ適合が必要な分野です

多言語 / 複雑文字の出版

アラビア語、インド系諸語、CJK など、正しいシェーピングとポジショニング、コピー&ペーストでの復元が求められる場面——「描画しても正しい、コピーしても正しい」を HotPDF が一度に解決します

大容量 / サーバー側 PDF パイプライン

一括暗号化、復号、ページ数の棚卸し、抽出——Direct File API があれば、マルチギガバイトのファイルをメモリに丸ごと滞留させずに処理できます

既存レポートシステムへの PDF 追加

FastReport / QuickReport / ReportBuilder / DevExpress のレポートを使っているなら——アダプタ一行で HotPDF バックエンドに載せ替えられ、既存のレポート設計はそのまま生きます

デスクトップ / 単一ファイル納品

単一実行ファイルでの配置、サードパーティ PDF DLL を持ち歩かない設計、一連の処理すべてを自分のプロセス内でデバッグしたい——そんなデスクトップ業務ソフトに

アクセシビリティ / PDF/UA

タグ付き PDF 構造ツリー、ロールマッピング、マーク付きコンテンツ、/Alt//ActualText などのアクセシビリティ属性により、PDF/UA-1(ISO 14289-1)に対応

一行の署名、外部依存ゼロ

OpenSSL もプラットフォーム暗号プロバイダも不要——PFX/PKCS#12 署名は完全に HotPDF のプロセス内で完結します:

var Pdf: THotPDF;
	Pdf := THotPDF.Create(nil);
	try
	  Pdf.FileName := 'contract.pdf';
	  Pdf.SignPDFWithPFX('contract.pdf', 'signed.pdf',
	                     'cert.pfx', 'pfx-password');
	finally
	  Pdf.Free;
	end;

長期検証(PAdES B-LTA)が必要ですか? DSS/VRI 辞書と RFC 3161 タイムスタンプを追加するだけです。署名済み文書のバイト範囲を壊さずにインクリメンタル更新したいときは BeginIncrementalUpdate / SaveIncrementalUpdate を使います

次のステップ

機能一覧 と コンポーネント概要 から始めて、 ドキュメント目次 でクラス別(THotPDF、THPDFPage、THPDFPara)に掘り下げるか、 リリースノート で最近追加された機能を眺めてください