PDFium Delphi Component Docs

PAdES 署名 · PDF 2.0 暗号化 · 6 つの ISO 標準 · Delphi / C++Builder / Lazarus

レンダリングエンジンにできないすべてを、Object Pascal で

エンジンはページを描画し、構造を読み取ります。文書への署名、暗号化の書き込み、PDF 標準の検証、線形化リビジョンやインクリメンタルリビジョンの出力はできません。PDFium Delphi Component はそのすべてを PDFium の上に実装します。エンジン API に対応物が存在しない 36 ユニット 62,000 行以上のコードに加え、ビューアーとアクセシブルリーダーのアーキテクチャを提供し、その全行をソースとして同梱します

完全な概要を読む 機能カタログを見る

エンジンを超えて手に入るもの

以下の各ポイントは、API リファレンスとデモで検証できる提供済みの機能です

署名の読み取りではなく、デジタル署名

エンジンは署名辞書の存在を報告できるだけです。このライブラリは署名を作成します。ETSI EN 319 142-1 に準拠した PAdES baseline B-B、B-T、B-LT、B-LTA、RFC 5652 に準拠した CMS / CAdES SignedData、RFC 3161 タイムスタンプ要求、Document Security Store の注入、アーカイブタイムスタンプ、証明書チェーンの信頼検証を提供します。リモート署名と HSM 署名は操作を分割するため、秘密鍵がワークステーションに到達する必要はありません

SignPades / ValidatePadesTrust / PreparePadesRemoteSignature

開くだけではない、書き込む暗号化

ISO 32000-2 の AES-256 と algorithm 2.B の R6 鍵導出、ストリームと文字列の完全な暗号化スイープ、ISO/TS 32003 の AES-GCM、ISO/TS 32004 の PDF MAC トークンを提供します。AES、SHA-2、SHA-3、HMAC、ASN.1 のプリミティブは純正 Object Pascal で、公開された FIPS テストベクターに対して検証済みです。外部の C ライブラリがデプロイメントやセキュリティレビューに入ることはありません

SaveAsEncrypted; FPdfAes / FPdfSha512 / FPdfAsn1

エンジンにない PDF ライター

エンジンが提供するのは逐次の全ファイル保存だけです。このライブラリはその上に独自のリビジョンを書き込みます。Annex F ヒントテーブル付きの線形化 Fast Web View、オブジェクトストリームと xref ストリームのパッキング、前回の出力をバイト単位で保つ dirty-object インクリメンタルリビジョンです。破損したファイルには、暗黙の修復ではなく構造化された診断情報とともに strict、compatible、recovery の各読み込みポリシーを提供します

SaveAsLinearized / SaveAsObjectStream / BeginIncrementalSave / SaveAsRepaired

プレーンテキストを超えるコンテンツ抽出

GetStructuredText は文字ジオメトリと Tagged PDF セマンティクスから、ページ / ブロック / 行 / スタイル付きスパンの階層を構築します。ExtractTables は枠線付き表と空白整列表を検出し、結合セルを保持したまま CSV または JSON を出力します。BuildReflowDocument は固定レイアウトの PDF をセマンティックな HTML に変換します。XFDF と FDF はフォームデータと 18 種類の注釈サブタイプを交換します。いずれもエンジンが API を一切公開していないフォーマットです

ExtractTables / BuildReflowDocument / ExportXFDF

同クラスで最広の IDE 対応

Delphi / C++Builder(RAD Studio XE5 から 13.1 Florence)に加え Lazarus / Free Pascal 3.8+、Win32 と Win64。3 つの IDE ファミリーが同じフィクスチャー PDF と回帰スイートを共有します

1257 Pascal + 515 C++ テストケース、バイト整列

完全な PDF 標準スペクトラム

PDF/A-1b 出力(SaveAsPdfA)+ 検証(ValidatePdfA)に加え、節レベルの結果コード、マーカー注入、バージョン準拠ゲートを備えた PDF/UA、PDF/E、PDF/X、PDF/R、PDF/VT のバリデーターを提供します。PDF/A は ISO 19005 part 1 から 4 をカバーし、PDF/X は X-6 に、PDF/VT は VT-2s ストリームパッケージングに対応します

専用ユニット FPdfPdfa/Pdfua/Pdfe/Pdfx/Pdfr/Pdfvt.pas

アクセシビリティ読み上げ / 弱視

TPdfReadingSession がホスト TTS エンジン向けの読み上げを統合します(文単位の読み上げ単位、単語単位のハイライト、音声テキストマッピング)。さらに InvertPdfBitmap、GrayscalePdfBitmap、DuotonePdfBitmap の弱視変換とライブのナイトデュオトーン表示を提供します

ほとんどのラッパーに完全に欠けているアクセシビリティレイヤー

ゼロコピー + キャンセル可能なプログレッシブレンダリング

レンダリングパスは PDFium の出力を宛先 TBitmap DIB バッファーに直接書き込み、フレームごとの全ページピクセルコピーを省きます。RenderPageProgressive は反復間でキャンセルトークンをポーリングし、レンダリング途中で中断できます

高 DPI でフレームごとに 1 回の 幅×高さ×4 バイトコピーを節約

数ギガバイト PDF のオンデマンドストリーミング

LoadCustomDocument のオンデマンド TStream アダプターを通じて、PDFium はブロック単位で読み取ります。数ギガバイトの文書、リモート文書、データベースでホストされる文書をメモリ内コピーなしで読み込め、ほぼ即座に利用可能な最初の表示に到達します

2.x GB 文書でほぼ瞬時の最初の表示

3 つのコンポーネント + 33 の共有デモ

TPdf(文書エンジン)、TPdfView(対話型ビューアー)、TPdfThumbnailView(サムネイルナビ)。3 つの IDE で共有される 33 の COMMON デモが、表示、検索、フォーム入力、結合/分割、一括エクスポート、印刷、セキュリティ監査、プレフライトレポートなどをカバーします

PDFViewer / PreflightReport / SecurityAudit / StandardsLab など

セキュリティ優先の既定値

リンクアクションの許可リスト(LinkOptions)、起動アクションの既定無効化、リスク面を監査する SecurityAudit デモを提供します。危険なアクションを既定で開くのではなく、すぐに安全に使えます

セキュリティ重視の金融 / 医療デプロイメントに適合

ソース付き · ロイヤリティフリー · 長期サポート

Pascal ソースを同梱し、ランタイムロイヤリティなし、長期メンテナンスを提供します。Win32/Win64 版 pdfium.dll と pdfium.v8.dll(V8/XFA 対応)をバンドルし、オプションで Skia レンダーフックを備えます

デプロイメントごとの費用はありません

エビデンス

3IDE ファミリー: Delphi / C++Builder / Lazarus
6+PDF 標準: A / UA / E / X / R / VT
333 IDE 共有の COMMON デモ
1770+Pascal + C++ 回帰テストケース

PDFium Delphi Component を選ぶべきユーザー

文書ビューアー / リーダー

本番級のレンダリング品質と対話性(テキスト選択、検索ハイライト、リンク、ズーム、連続 2 ページ表示)を必要とする組み込み PDF ビューアー

アクセシビリティ / 支援技術

視覚障害のあるユーザー向けの読み上げ統合と弱視変換。ほとんどの PDF ラッパーには全く存在しないレイヤーです

コンプライアンス / プレフライトツールチェーン

PDF/A 生成と検証、PDF/UA アクセシビリティ、バージョンゲート、CI 向けプレフライトレポートを必要とする用途

巨大 / リモート文書

完全にメモリに保持するのではなく、オンデマンドで読み込む必要がある数ギガバイトやデータベースでホストされる PDF

クロス IDE チーム

Delphi、C++Builder、Lazarus を同時に使うチーム。1 つのコンポーネントセット、同じフィクスチャー、同じデモ

セキュリティ重視のデプロイメント

リンク / 起動アクションを厳格に制御する金融、医療、政府のシナリオ

数行でページをレンダリング

手書きの C 相互運用なし。そのまま使えるネイティブ Pascal コンポーネントです:

uses PDFium;

var
  Pdf: TPdf;
  Bmp: TBitmap;
begin
  Pdf := TPdf.Create(nil);
  try
    Pdf.FileName := 'report.pdf';
    Pdf.Active := True;
    Pdf.PageNumber := 0;              // ページ番号は 0 基点

    Bmp := Pdf.RenderPage(0, 0,
      Round(PointsToPixels(Pdf.PageWidth, 150)),
      Round(PointsToPixels(Pdf.PageHeight, 150)));
    try
      Bmp.SaveToFile('page1.bmp');
    finally
      Bmp.Free;
    end;
  finally
    Pdf.Free;
  end;
end;

次のステップ

製品概要 と クイックスタート から始め、 完全な機能カタログ と 例 を眺め、 最新の提供内容は リリースノート をお読みください