コアコンポーネント
- TPdf - PDF ドキュメントの読み込み、ナビゲーション、テキスト抽出、編集を扱うメインの PDF ドキュメント処理コンポーネント
- TPdfView - PDF ページの表示および操作のためのビジュアルコンポーネント
- TPdfReadingSession - ホストの TTS エンジンと TPdfView の単語追跡をまとめる読み上げ制御コンポーネント
- TPdfThumbnailView - ページナビゲーション用のスクロール可能なサムネイルサイドパネル
- ネイティブ LCL 環境 - Linux Qt6 と macOS Cocoa は native PDFium、正しい LP64 binding、platform のフォント/ファイルサービス、実際の bitmap channel 配置を使います。検証済み Free Pascal/LCL 構成と能力の範囲はネイティブのセットアップを参照してください
ドキュメント操作
- ドキュメント読み込み - ディスク、メモリストリーム、完全なバイト配列、ゼロベースの
Index/Countバイト配列ウィンドウ、またはLoadCustomDocument経由のオンデマンド TStream アダプタから PDF ファイルを読み込みます。互換、厳格、リカバリの各ポリシーは、PDFium のセマンティックパーサーを置き換えることなく、上限付きのクラシック、ハイブリッド、xref ストリーム診断を追加します- 検証済み修復出力 -
SaveAsRepairedは完全な単一リビジョンのコピーを作成し、バイトを返したりファイルをアトミックに置き換えたりする前に、その xref とページ構造を独立して厳格ロードします- 型付きオブジェクトグラフ -
ExportObjectGraphはダイレクト値とオブジェクトストリーム値に対して上限付きの型付き JSON を出力し、SaveAsObjectGraphPatchedは検証済みのトップレベル辞書変更を段階的なインクリメンタルリビジョンとして適用し、提供前に結果を厳格ロードします- パスワード保護 - パスワード保護された PDF ドキュメントを開き、認証されたセッションの有効な
UserPermissionsを報告- ドキュメント作成 -
CreateDocument、AddPage、AddText、AddImage、AddPicture、AddJpegImage、CreatePathを用いて新規 PDF ドキュメントをゼロから構築- ドキュメント保存 - 各種オプション(インクリメンタル、セキュリティ除去)および PDF 1.0 から PDF 1.7 までの明示的な PDF ターゲットバージョンで変更済みドキュメントを保存
- PDF/A-1b 出力 -
SaveAsPdfA/SaveAsPdfAToStreamは基本保存をインクリメンタル更新で後処理し、XMP メタデータストリーム、sRGB ICC OutputIntent、更新されたドキュメント Catalog を注入することで結果を PDF/A-1b 準拠にします。カスタム ICC プロファイルはTPdfASaveOptions.IccProfileData経由でサポートされます- PDF/A 検証 -
ValidatePdfAおよび読み取り専用のPdfAConformanceプロパティは、開いているドキュメントから XMPpdfaidマーカー、埋め込み ICC を含む OutputIntent、暗号化の有無をスキャンし、準拠レベル(pac1a、pac1b、pac2b、pac3b、pacNone、pacUnknown)と検出された各問題を記述するTPdfAValidationIssueエントリのリストを報告します- PDF バージョン準拠バリデータ - SaveAs が PDF 1.0 から PDF 1.7 をターゲットとする場合、ライタは選択されたターゲットバージョンより後に導入された辞書エントリ、フィルタ、アノテーションサブタイプ、アクションタイプ、フォント、色空間、暗号化パラメータを拒否します(例:JBIG2Decode、MarkInfo、OutputIntents、AES / AES-256、Polygon / Caret / Watermark / Redact アノテーション、JavaScript / Trans / SetState アクション)
- ストリーム圧縮 - 自動 FlateDecode 圧縮により、保存時にすべての PDF ストリームが最適に圧縮されます。デバッグパイプライン用にオプトアウトするには
Compressed := Falseを設定- スケーラブルなバッチマージ -
MergeFilesはファイルバックアップされたソースをソースごとのページ範囲とパスワード付きでインポートし、開いたままにするソースドキュメントを最大 1 つに抑え、進捗、キャンセル、停止 / スキップ処理、ロールバック、フォーム、アウトライン、リソース、ビューア設定ポリシーを公開します- ページサブセットインポート -
ImportPagesByIndexはソースドキュメントから明示的なゼロベースインデックス配列をコピーします。InsertAt = 0 はページ 1 の前に挿入、InsertAt = PageCount は末尾に追加。空のインデックス配列を渡すとすべてのソースページがインポートされます- N-up 構成 -
ImportNPagesToOneは、ソースドキュメントのページを NumX×NumY で合成した新しいTPdfを返します。PDF ユーザー単位(1 単位 = 1/72 インチ)でサイズ指定- ページ並べ替え -
MovePagesはゼロベースインデックス配列と最初に移動するページの宛先インデックスを用いてページを所定位置で並べ替えます- ページプラン検証 -
ValidatePagePlanは削除、移動、挿入、分割、マージのマッピングをプレビューし、ナビゲーション、ラベル、フォーム、構造ツリー、インポート機能、署名への影響を一覧化して、参照先が宙に浮くプランや明示的な承認なしに署名済みコンテンツを変更するプランを拒否します- 2 パスレイアウト生成 -
GenerateLayoutは折り返しテキスト、罫線、画像、ページ XObject、ヘッダー、フッターを計測して改ページした上でネイティブページオブジェクトをアトミックに生成し、安定した{page}と{pages}プレースホルダーは計測済みページ数を保持します- ディスクバックのページングレイアウト -
GeneratePagedLayoutはコマンドを呼び出し元が選択したシーク可能なストレージに書き込み、各ページをコンパクトな非連続セグメントから復元し、保持するページ配列を LRU キャッシュで上限管理し、PDFium ページを順次追加します- ページ横断テーブルレイアウト -
TPdfLayoutTableは固定、比率、コンテンツサイズの各列を一度に解決し、連続するヘッダー行を繰り返し、対象のボディ行を分割し、行スパンのグループを保持したまま、キャプション、セル境界線、リンク、およびページをまたぐ 1 本の連続した Table / TR / TH / TD セマンティック階層を出力します- キャッシュされたレイアウトノード - レイアウトプランは制約、コンテンツ、フォント、スタイル、ソース、計測器の完全な識別情報ごとにキャッシュされ、
TPdfLayoutCachedNodeは繰り返しテンプレートを遅延構築し、再利用可能な 1 つのネイティブ Form XObject から各配置を出力します- 自動タグ付き PDF レイアウト -
GenerateTaggedLayoutは同じ計測済みレイアウトプランから、ネイティブ MCID、アーティファクト、Document 構造ツリー、ParentTree と IDTree マッピング、見出し、リスト、代替テキスト付き図、テーブルヘッダー、OBJR 所有権付き Link アノテーションを出力します。項目制約はブロックと見出しを一緒に保ち、widow / orphan の下限を強制し、物理的な改ページを強制します- マークコンテンツ編集 -
PageObjectMarks、AddPageObjectMark、SetPageObjectMarkParam、RemovePageObjectMarkParam、RemovePageObjectMarkは、安定したネイティブマークを通じて BDC プロパティリストを検査および変更します- Bidi と複雑スクリプトテキスト -
AddShapedTextは方向付きラン、文脈依存フォーム、リガチャ、アドバンス、オフセットを位置決めされた CID Type 2 グリフに変換し、生成された ToUnicode マッピングとActualTextが論理的な Unicode セマンティクスを保持します- CID Type 2 フォントオーサリング -
AddCidType2Textは、明示的な CID-to-GID と ToUnicode マッピング、安全なオプションサブセット化、制御されたフルフォントフォールバック、抽出整合性チェック付きで、呼び出し元が指定した TrueType データを埋め込みます- 統合キャッシュバイト予算 -
TPdf.CacheBudgetBytesは解析済みページシーン、サムネイル、構造データ、テキストスナップショット、ページオブジェクトスナップショットを 1 つの計測可能なグローバル LRU で調整し、TPdfTileCacheとシステムフォントキャッシュは呼び出し元が選択したガバナーに参加できます- ホストシステムフォントプロバイダー -
ConfigureSystemFontProviderはネイティブの不足フォント要求を、バイト検証、上限付き LRU キャッシュ、オプションの共有バイトガバナンス、ネイティブフォールバック、テーブル抽出、ライフサイクル統計を備えたアプリケーションプロバイダーにルーティングします- Form XObject ページ再利用 -
CreateXObjectFromPageは他のドキュメントの任意のページから再利用可能なTPdfXObjectハンドルを生成します。InsertFormObjectFromXObjectはラップされたページの 1 コピーを現在のページに挿入します。ウォーターマーク、テンプレートオーバーレイ、「1 ページを複数ページにスタンプする」ワークフローに最適。宛先ページオブジェクトはFPDFPageObj_SetMatrixおよびTPdfMatrixヘルパーを通じて位置決め、スケール、回転が可能です- ページ管理 - 個別ページの追加、削除、操作。
AddPage(0, ...)は最初のページを挿入し、即座にアクティブにします- ページボックス - 現在のページの MediaBox、CropBox、BleedBox、TrimBox、ArtBox の読み書き
- Catalog 言語 - Catalog の /Lang エントリに格納されているドキュメント言語の読み書き
- トレーラファイル ID - 永続的および変更可能なトレーラの /ID エントリをバイナリバイトとして読み取り
- ドキュメント JavaScript アクション - ドキュメントレベルの JavaScript ネームツリーアクション名およびスクリプトを列挙
- タグ付き PDF 構造ツリー - タグ付き PDF ページの論理構造要素、アクセシビリティテキスト、言語、マークコンテンツ ID、階層を検査
- ビューア設定 - ドキュメントのビューア設定辞書から
PrintCopies、PrintPageRanges、PrintScaling、PrintPaperHandlingを読み取り。保存された PDF は最初のページのオープンアクションでデフォルトで Fit Height になります
テキスト操作
- テキスト抽出 -
Text、TextInRectangle、インデックス付きCharacter、CharacterRectangle、CharacterOriginプロパティを介して PDF ページから文字レベルの精度でテキストを抽出- 構造化テキストモデル -
GetStructuredTextは、ネイティブな文字ジオメトリ、フォントメタデータ、テキストオブジェクト識別、タグ付き PDF セマンティクス、物理レイアウトフォールバック順序から、上限付きのページ、ブロック、行、スタイル付きスパンの階層を構築します- テーブル検出と抽出 -
ExtractTablesとExtractDocumentTablesは、ネイティブな単語ボックスと変換済みパス罫線を組み合わせて枠付きまたは空白整列のテーブルを検出し、結合セルを保持し、信頼度をスコア化し、ページ継続をマークし、CSV または JSON を出力します- セマンティックリフローとレスポンシブ HTML -
BuildReflowDocumentは、タグ付き PDF セマンティクス、物理レイアウト推論、テーブル抽出を、上限付きの再利用可能なノードツリーに統合します。その安全な HTML 出力は見出し、段落、リスト、図、ページセクション、テーブルスパンを保持します- 検索可能 OCR レイヤー -
ApplyOcrSearchLayerは上限付きのトップダウン BGRA ページレンダリングをアプリケーションプロバイダーに渡し、信頼度クアッドをネイティブページジオメトリ経由でマッピングし、スキャン画像を再エンコードすることなく不可視の検索可能テキストを追加します- 文単位の読み上げ単位 - TPdf.ReadingUnits、TPdf.DocumentReadingUnits、TPdfView.ReadingUnits、BuildReadingUnits は、同期 TTS リスニング読み上げ向けに文サイズの TPdfReadingUnit レコードを提供します
- 視覚行選択 -
TPdfView.SelectLineAtは、1 始まりページと 0 始まり文字インデックスを含む視覚的なテキスト行を、トリプルクリック選択やShift+Home/Shift+Endで使われる同じ行境界モデルを通じて選択します- 単語単位の読み上げ強調表示 -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowページ文字オフセットをそれを含む TPdfWordBox に対応付け、強調表示して単語インデックスを返します; TPdfView 上で TPdfWordBox を現在読み上げ中の単語として強調表示します; TPdfView 上の現在の単語単位読み上げカーソルのオーバーレイをクリアします; 現在の単語単位読み上げカーソルに使用するオーバーレイ色を制御します; 読み上げ追跡中に TPdfView が現在読み上げ中の単語を表示位置へスクロールするかどうかを制御します- 読み上げセッション制御 -
TPdfReadingSession、TPdfSpokenText、SpokenTextAppend、BuildSpokenTextFromWords、SpokenToPageChar、EstimateSpokenWordIndexが、ホストの TTS エンジン、読み上げチャンク、単語位置コールバック、推定ペーシング、一時停止と再開、TPdfView の単語カーソル更新をまとめて制御します- テキスト検索 -
FindFirst、FindNext、FindPreviousを用いて大文字小文字区別、単語単位、連続検索オプションでテキストを検索します。TPdf.CreateDocumentSearchを使えば、ページ空間の結果矩形、協調的キャンセル、一定のページハンドルメモリでドキュメント全体を前後方向にストリーミング検索できます- 検索ハイライトオーバーレイ -
TPdfView.HighlightSearchTextは現在のページのマッチオーバーレイを置き換え、AddSearchTextHighlightは追加の語に対して一意の範囲を追記するため、複数のクエリを同時に表示しておけます。ClearHighlightはセット全体を削除します。文字範囲はページ固有のため、別のページへ移動すると自動的にクリアされます。HighlightColorはデフォルトでclYellowで、アプリケーションがオーバーレイをテーマ化できるよう公開されています- 文字プロパティ -
CharacterAngle、CharacterFontSize、CharacterFontWeight、CharacterGenerated、CharacterIsHyphen、CharacterMapErrorインデックス付きプロパティを使用して個々の文字のフォントサイズ、ウェイト、角度、位置にアクセス- 欧州文字サポート -
AddTextは、テキストオブジェクトを作成する前に対応するシステム TrueType フォントを自動的にロードしてキャッシュするため、PDFium の内蔵標準フォントでは表現できないアクセント付きのチェコ語、フランス語、ドイツ語、スペイン語、ポルトガル語、ポーランド語、トルコ語の文字がコード変更なしで正しくレンダリングされます- テキスト追加 - カスタムフォント、色、透明度、回転を伴う新規テキストを PDF ページに追加
- テキストオブジェクト位置設定 -
SetTextPositionsおよびTPdfSingleArrayを介して既存のテキストオブジェクトの文字ごとの位置を設定- フォント情報 - ページオブジェクト単位でファミリー名、埋め込み状態、イタリック角度、アセント / ディセント、生のフォントデータを含むフォントプロパティを取得
アノテーションサポート
- アノテーションタイプ - テキスト、リンク、ハイライト、下線、取り消し線などの多数のアノテーションタイプをサポート
- アノテーション作成 - プログラム的に新規アノテーションを作成
- アノテーション編集 - 色、透明度、コンテンツを含む既存のアノテーションプロパティを変更
- リンクアノテーション - アクションサポート付きで内部および外部リンクを処理
フォームサポート
- 音声フォーム入力アクセサー - TPdf と TPdfView の FocusedFormFieldValue、FocusedFormFieldName、FocusedFormFieldDetails は、現在の論理フォームフィールド値、名前、TPdfFormFieldInfo を公開し、キーボードまたは音声によるフォーム入力に使えます
- フォームタイプ - AcroForm および XFA フォームのサポート
- フォーム入力 - JavaScript サポートを伴うインタラクティブフォーム入力
- V8 DLL 選択 - 読み込み前に
EnableV8Engineを設定して、対応するDLLs\Win32またはDLLs\Win64フォルダからpdfium.v8.dllを使用し、V8FeaturesAvailable、XfaBStrHelpersAvailable、GetRecommendedV8Flagsを介して V8/XFA ヘルパーの利用可能性をクエリ- フィールドアクセス - インデックスまたは位置によるフォームフィールド値の読み書き
- フィールド情報 - フィールドタイプ、フラグ、名前などのプロパティにアクセス
- フィールドフラグ -
SetFormFieldFlags/SetFormFieldFlagsAtを介してインデックスまたは位置による AcroForm フィールドフラグの更新。読み取り専用、必須、パスワード、複数選択フラグを含む- フォームフラット化 -
GenerateFormAppearancesはすべてのページ上のすべてのフォームウィジェットの /AP アピアランスストリームを再生成し、FlattenPage/FlattenAllPagesはアノテーションとフォームフィールドを静的なページコンテンツ(編集不可)に焼き込みます- フォームウィジェットのテキスト選択、クリップボード & Undo / Redo - フォーカスされた AcroForm ウィジェットで、ビューは
GetSelectedFormText、CopySelectedFormTextToClipboard、CutSelectedFormTextToClipboard、PasteFormTextFromClipboard、SelectAllFormText、およびFormUndo/FormRedo/FormCanUndo/FormCanRedoを公開します。エディタはCtrl+A、Ctrl+C、Ctrl+Insert、Ctrl+X、Shift+Delete、Ctrl+V、Shift+Insertを処理します。読み取り専用フィールドや、フォーム入力または変更権限のないセッションに対しては、切り取りと貼り付けを拒否します- ドキュメント編集トランザクションと Undo / Redo -
BeginEditTransaction、CommitEditTransaction、RollbackEditTransactionは任意のページ、オブジェクト、アノテーション、添付ファイル、メタデータ編集をグループ化し、UndoEdit、RedoEdit、移植可能な編集ジャーナルは上限付きの SHA-256 検証済み双方向デルタを使用します- クラッシュリカバリとコミット駆動自動保存 - チェックサム付きリカバリパッケージはソースと復元済みのフィンガープリントを上限付き編集ジャーナルに束縛し、アトミックな自動保存はコミット、undo、redo の後に明示的なサイドカーを更新します。ソース PDF は書き換えられません
画像操作
- 画像抽出 - インデックス付き
Bitmapプロパティで PDF ページからビットマップを抽出。BitmapCountを反復処理してすべての画像をディスクに保存- JPEG 挿入 -
AddJpegImageは生の JPEG バイトの TStream を受け取り、再エンコードなしで画像を /DCTDecode XObject として埋め込みます- Picture サポート -
AddPictureは登録済みの VCL/LCL グラフィッククラスを介した自動フォーマット変換を伴うTPictureオブジェクトを受け付けます- 直接画像挿入 -
AddImage(FileName)は VCL または LCL グラフィックスユニットに登録された任意の形式(PngImage 経由の BMP、PNG、JPG など)を認識し、AddPicture パイプラインを共有します。AddImage(TBitmap)は TPicture 中間ステップをスキップするため、レンダリングまたはバッチ生成作業から TBitmap を既に保持している呼び出し元を簡素化します- 画像 ICC プロファイル - 画像ページオブジェクトは存在する場合に埋め込み ICC プロファイルデータを公開します(
FPDFImageObj_GetIccProfileDataDecodedのバインディング)- サムネイル生成 -
Thumbnailプロパティで現在ページのサムネイルビットマップを生成するか、PageNumberを変えずにTPdf.RenderPageThumbnailで任意の 1 始まりページを描画します。エントリ数とピクセルバイトの上限で抑えられたリビジョン認識 LRU を備えます- 解析済みページシーンキャッシュ -
TPdf.RenderPageByIndex、RenderPageThumbnail、ExtractThumbnailは上限付き LRU キャッシュされた PDFium ページシーンを再利用します。ページ編集、ページツリー変更、フォーム状態、ドキュメント解放時には古いエントリが無効化されます
ヘルパーユニット
- 非同期インフラ -
FPdfAsyncは、構造化された協調的キャンセルと削除可能なコールバックおよびデッドラインソース、設定可能なTPdfFuture<T>結果ディスパッチ、固定ワーカー、4 つの FIFO 優先度レーン、上限付きキーのバックプレッシャー、タスクごとのハンドル、タイミング診断、集計統計、グレースフルシャットダウンを備えた再利用可能なTPdfAsyncExecutorを組み合わせます- ストリームアダプタ -
TPdfStreamAdapterは Pascal のTStreamを PDFium のFPDF_FILEACCESSコールバックにブリッジするため、LoadCustomDocumentは PDF 全体をメモリにバッファリングする代わりにブロックをオンデマンドで読み取ります- プログレッシブダウンロードセッション -
TPdfProgressiveDocumentは PDFium のネイティブ可用性プロバイダーを維持し、ドキュメント、フォーム、ページのヒントをTPdfRangeRequestSchedulerに供給し、欠落範囲を統合し、ページに不可欠なバイトのためにバックグラウンド転送を割り込ませ、要求サイズと再試行を上限管理し、冗長な転送をキャンセルし、PDF 全体が到着する前に線形化されたページを開きます- 上限付きストリーム検査 -
TPdfStreamInspectorは物理ストリームオブジェクトを一覧化し、安全な生ウィンドウと順序付けられた汎用フィルタデコードを公開し、画像と添付ファイルのネイティブアクセスパスを報告し、ソース、出力、辞書、カウント、展開率の各予算を強制します- コンテンツストリーム正規化 -
TPdf.SaveAsNormalizedContentは論理ページコンテンツをトークン化し、コメントを除去し、状態とコンテナのバランスを検証し、未対応の演算子とインライン画像データを保持し、安全な/Contents配列を統合します- Fast Web View 出力 -
TPdf.SaveAsLinearizedは最初のページのオブジェクトを後続ページより先に書き込み、2 つの相互参照セクションを出力し、ページオフセットと共有オブジェクトのヒントテーブルを構築します。これにより HTTP Range クライアントはファイル全体をダウンロードせずに要求ページを開けます- オブジェクトストリーム出力 -
TPdf.SaveAsObjectStreamは対象の値を上限付きの PDF 1.5+ ObjStm グループに詰め込み、オープンに不可欠なオブジェクトはダイレクトのまま保ち、ランダムアクセスを犠牲にすることなく適応的な type-2 xref エントリを書き込んでファイルを小型化します- 変更オブジェクトのインクリメンタル保存 -
TPdf.BeginIncrementalSaveとCommitIncrementalSaveは安定したセマンティックスナップショットを比較し、以前の暗号化 / 非暗号化の全バイトを保持し、R5、R6、R7 のセキュリティパラメータを継承し、変更されたオブジェクトのみを追記し、各結果を厳格に再オープンし、ファイルコミットには永続的なサイドファイルとアトミック置換を使用します- オプショナルコンテンツ制御 -
TPdf.InspectOptionalContentはレイヤー、設定、使用方法メタデータ、ラジオグループ、順序、ロック、OCMD ポリシー、可視性式を一覧化し、SaveAsOptionalContentConfiguredは PDFium がネイティブレンダリングコンテキストを通じて適用する決定論的なレイヤー状態を書き込みます- 上限付き作業ストレージ -
TPdfRandomAccessStoreは小さなデータをメモリに保持し、呼び出し元が選択した上限でクローズ時に削除される専用一時ファイルへ一度だけスピルし、共有カーソルを変更せずに位置指定読み取りを提供します。TPdf.SaveMemoryLimitはコア保存後処理に同じポリシーを適用し、デフォルトのオープンアクションとページラベルのカタログ更新は固定サイズウィンドウと疎な遅延オブジェクトインデックスを使用します- ネイティブバージョンクエリ -
TPdf.PdfVersionはヘッダーとカタログのセマンティクスにFPDF_GetFileVersionのパーサー状態を再利用し、8 バイトのヘッダーガードで不正なカタログダウングレードを拒否します- マトリックスジオメトリツールキット -
FPdfMatrixは PDFium のFS_MATRIXを、後合成と前合成、ピボット対応変換、ストレッチ / コンテイント / カバーの矩形フィッティング、スケールを考慮した可逆性診断、分解、非破壊の逆行列ヘルパー、ベクトルと四角形のマッピング、1 回のアロケーションでの点または矩形の一括処理、インプレース変種、1 パスの変換済み境界計算でラップします- キャンセル可能なプログレッシブレンダリング -
TPdf.RenderPageProgressiveは PDFium のFPDF_RenderPageBitmap_Start+RenderPage_Continueループを駆動し、IFSDK_PAUSEコールバック経由で反復間にIPdfCancellationTokenをポーリングするため、長時間の高 DPI レンダリングは完了するまでブロックする代わりにページ途中で中止できます。prsDone、prsCancelled、prsFailedのTPdfProgressiveStatusを返します- ゼロコピーレンダーパス -
RenderPage/RenderTile/RenderPageProgressiveは内部バッファでのステージングではなく、PDFium 出力を宛先TBitmapの DIB バッファに直接書き込み、レンダリングごとに幅 × 高さ × 4 バイトのメモリコピーを節約します。高 DPI(サムネイルパネル、印刷品質エクスポート、バッチエクスポート)で最も顕著です。宛先 DIB が安全にラップできない場合、スキャンラインごとのフォールバックパスが保持されます- 低視力向けビットマップ色変換 - InvertPdfBitmap、GrayscalePdfBitmap、DuotonePdfBitmap はレンダリング済み 32 ビット TBitmap ピクセルをインプレース変換し、反転、グレー、2 色の低視力向け表示を作ります
- 低視力向けライブ表示 -
TPdfView.OptionsはreInvertとreNightDuotoneをサポートし、NightDuotoneInkとNightDuotonePaperがオーバーレイ描画前の夜間配色を制御します
描画操作
- パス描画 - 線、ベジエ曲線、閉じた図形でパスを作成
- オブジェクト削除 - TPdf または TPdfView からページオブジェクトを削除しページコンテンツを再生成
- 塗りつぶしとストローク - 塗りつぶしモード、色、透明度、ストロークプロパティを設定
- ブレンドモード - 各種 PDF ブレンドモードのサポート
- 線スタイル - 線端、線結合、ストローク幅を設定
電子署名
- 署名検出 - PDF ドキュメント内の電子署名を検出および列挙
- 署名情報 - 署名内容、バイト範囲、サブフィルター、理由、時刻にアクセス
- MDP 権限 - ドキュメント変更検出および防止権限をクエリ
- 署名後リビジョン分析 -
AnalyzeSignatureRevisionsはオリジナルバイトへのインクリメンタル変更を DocMDP と FieldMDP に対して分類し、検証マテリアルの更新を特定し、ドキュメントを再保存することなくシャドウ定義や未解決の圧縮オブジェクトを報告します- PDF 2.0 楕円曲線プロファイル - PAdES 検証は NIST、Brainpool、Ed25519、Ed448 署名を識別し、曲線とダイジェストの整合および AlgorithmIdentifier パラメータをチェックし、未対応のネイティブ暗号を不正な組み合わせとは独立に報告します
添付ファイルサポート
- 添付ファイルアクセス - 埋め込みファイル添付の読み取り、作成、変更、削除
- 上限付きバッチ抽出 -
ReadAttachmentMetadataは添付ファイルを一度に一覧化し、ExtractAttachmentsToStreamsはファイルごと、集計、チャンク、キャンセルの各制御の下でデコード済みペイロードを 1 つずつ書き出します- 添付ファイル名 - 添付ファイル名にアクセス
- 添付ファイルタイプ - 存在する場合に埋め込みファイルの MIME サブタイプ値を読み取り
- ブックマーク -
Bookmarks配列、BookmarkChildren、HasBookmarkChildren、BookmarkFromトラバースヘルパーを介して階層サポート付きでドキュメントブックマークをナビゲート- 名前付きデスティネーション -
Destination、DestinationByName、DestinationCountを介してインデックスまたは名前で名前付きデスティネーションにアクセス- ページラベル -
PageLabelを介して各ページのページラベルを取得。ドキュメントが前付にローマ数字を使用している場合に便利- ウェブリンク -
WebLink、WebLinkCount、TPdfView.WebLinkAtPosでページ上のウェブリンクを検出およびナビゲート- リンクアノテーション -
LinkAnnotation、LinkAnnotationCount、TPdfView.LinkAnnotationAtPosを介してアクションとデスティネーション情報付きでリンクアノテーションにアクセス- 安全なリンククリック処理 - TPdfView は自動 goto / URI 処理の前に
OnAnnotationLinkClick/OnWebLinkClickイベントを発生させ、起動アクションはデフォルトで無効化されています。リンククリック検出は、ジェスチャがドラッグではなくクリックの場合にのみ実行され、新しい MouseDown アンカーを使用するため、パンジェスチャは既存のスクロールパスを変更なしで通過します
レンダリング
- 高品質レンダリング -
RenderPage/RenderTileを介してページをデバイスコンテキスト、ビットマップ、タイルにレンダリング。宛先 DIB バッファへのゼロコピー直接書き込み付き- キャンセル可能なプログレッシブレンダリング -
RenderPageProgressiveは PDFium のプログレッシブループを駆動し、反復間でIPdfCancellationTokenをポーリングし、prsDone、prsCancelled、またはprsFailedを返します。キャンセルされた場合、ビットマップにはそれまでに行われた部分的な作業が保持されます- 並列ページレンダリング -
RenderPagesParallelは現在のドキュメントを一度キャプチャし、各ワーカーに独立してロードされた PDFium モジュールとドキュメントを与え、要求順序を保持し、ページごとおよび合計の保持出力メモリを上限管理します- 安全なコンテンツ墨消し -
SaveAsRedactedは分離されたスナップショットに/Redact矩形を適用し、交差するトップレベルページオブジェクトと重複するアノテーションを保守的に削除し、不透明な置換を描画し、埋め込み添付ファイルを除去し、ロード済みドキュメントを変更することなくサニタイズされた単一リビジョンの結果を書き出します- レンダリングオプション - LCD テキスト最適化(
reLcd)、アノテーション(reAnnotations)、グレースケール、印刷モードフラグ- Skia フック - 呼び出し元が外部 SkCanvas を提供する場合、低レベルの
FPDF_RenderPageSkiaおよびFPDF_FFLDrawSkiaバインディングが利用可能です(同梱の DLL エクスポートに依存)- 印刷モード選択 -
SetPdfPrintModeおよびTPdfPrintModeを介して EMF、テキストのみ、PostScript、パススルー、イメージマスク、Type 42 の PDFium 印刷モードを設定- 非同期オーバーレイ - TPdfView は、アプリケーション所有のワーカーが別の TPdf インスタンスでレンダリングする間、オプトインの読み込みオーバーレイを表示できます
- ページ回転 - 0、90、180、270 度回転のサポート(
ro0、ro90、ro180、ro270)- 透明度検出 -
Transparentプロパティは、ブレンドモードと部分アルファを含め、現在のページ上の任意のオブジェクトが透明度を持つかどうかを報告します
表示 (TPdfView)
- 表示モード -
dmSingleContinuous、dmTwoPageContinuous、dmTwoPageContinuousWithCover(表紙ページが単独で表示され、その後見開きで継続)。ユニットレベルのComputeSpreadPagesヘルパーは、ビューアをインスタンス化することなく見開きページの計算を公開します- フィットモード -
FitModeはページのビューポート内での配置方法を選択します:pfmNone(手動ズーム)、pfmActualSize(100%)、pfmFitPage(ページ全体がビューポートに収まる)、pfmFitWidth(ページ幅がビューポート幅と一致)、pfmFitHeight(ページ高さがビューポート高さと一致)。アクティブなフィットモードは Resize 時および現在のページが変更されたときに自動的に再適用されます。Zoom を直接設定すると、標準的な PDF ビューア規約に従い、アクティブなフィットモードはキャンセルされます(FitMode はpfmNoneに戻ります)- ズームコントロール -
PageZoom、PageWidthZoom、PageHeightZoom、ActualSizeZoomページごとのヘルパーによる可変ズーム- ページカラー -
PageColorはレンダリングされた PDF ページの背景を周囲のコントロールのColorから分離します。デフォルトはclWhiteであるため、ホストアプリケーションのテーマに関係なく PDF ページは紙のように白くレンダリングされます。ダークモードビューアはスクロール領域を暗く保ちながら、実際の PDF ページを白く(またはアプリケーションが選択した任意の色に)保てます- インタラクティブテキスト選択 - エンドユーザーは PDF ページ上のテキストをドラッグして選択でき、ヒットテストは選択とパンの間で自動切り替えされます:文字をクリックすると選択ドラッグが開始され、空白をクリックするとパンになります。ダブルクリックで単語を選択、トリプルクリックで行を選択、
Ctrl+Aでページを選択(見開きモードでは両方のページ)、Ctrl+CでCF_UNICODETEXTとしてコピー、Shift+arrowsで選択範囲を拡張、テキスト上でホバーするとカーソルがcrIBeamに切り替わり、ビューアの端へドラッグするとページが自動スクロールします。新しい公開プロパティSelectionColorとOnSelectionChange、新しい public なHasSelection、SelectedText、SelectionCharCount、ClearSelection、SelectAll、CopySelectionToClipboard。見開き表示モードは CR/LF 結合で両方の表示ページにわたって選択します。ホストが独自のPopupMenuを割り当てていない場合、デフォルトの右クリックコピーポップアップが自動的に接続されます。キオスクホスト向けに v1.17.0 のAllowUserTextSelectionフラグでゲートされます- 座標マッピング -
DeviceToPage/PageToDeviceでビューアデバイス座標と PDF ページ座標を変換。TRectを受け取りTPdfRectangleを返すオーバーロードを含む- テキスト選択とヒットテスト -
CharacterIndexAtPosでビューアポイント下の文字を解決し、PaintSelectionでテキスト選択ハイライトを描画- マウス & キーボード - マウスドラッグスクロール、PgUp / PgDn / Ctrl+Home / Ctrl+End ショートカット、ホイールアップ / ホイールダウンページナビゲーションを含む完全な入力デバイスサポート。Ctrl+ホイールはアプリケーションズーム用に予約されており、ナビゲーションハンドラではスキップされます
- ユーザー入力ロックダウン -
AllowUserPageChangeはキーボードページショートカットを制御し、ChangePageOnMouseScrollingはホイールページジャンプを制御し、AllowUserTextSelectionはマウス / キーボードテキスト選択入力を制御します。3 つすべてはデフォルトで True です。サブクラス化なしでキオスク、プレビューペイン、読み取り専用埋め込みをロックダウンするには、これらを False に切り替えます- 非同期レンダーオーバーレイ -
AsyncRendering、LoadingText、LoadingColorは長時間レンダリングに独自のワーカーを使用するアプリケーションに一貫した視覚的アフォーダンスを提供するため、レンダリングされたページの上に小さな「読み込み中...」インジケータを描画します。デフォルトでは既存の動作が保持されます。TPdfはインスタンスごとにレンダリングおよびページアンロード呼び出しをシリアル化するようになりました。アプリケーションは依然としてワーカーディスパッチを所有し、レンダリング中のドキュメントの変更を避ける必要があります- 安全なリンククリック処理 -
LinkOptionsは 4 つの PDF リンクアクションタイプの自動動作を制御する公開セットです:loAutoGoto(ページジャンプ)、loAutoOpenURI(ShellExecute)、loAutoLaunch(ShellExecute)、loAutoEmbeddedGoto(予約)。デフォルトではloAutoGotoとloAutoOpenURIのみが有効です。loAutoLaunchとloAutoEmbeddedGotoはオフのままなので、誤クリックで任意のプログラムが実行されることはありません。OnAnnotationLinkClickとOnWebLinkClickは任意の自動アクションの前に発生し、アプリケーションがイベントを Handled とマークしたり、リダイレクトしたりできるようにします- フォーム操作 - ビューア内でのインタラクティブフォーム編集、および v1.23.0 の選択 / Undo / Redo ヘルパー
- 視覚的スタイリング -
PageShadowSize、PageShadowColor、PageBorderColorはページの矩形の下にオプションのドロップシャドウを描画し、その周りに 1 ピクセルの境界線を描画します。SmoothScrollはサムトラッキングを即時のままにしながら、行 / ページスクロールバーコマンドをタイマー駆動のセグメントでアニメーション化するようになりました- サムネイルナビゲーション -
TPdfThumbnailView(ユニットFPdfThumbnail)はスクロール可能なサイドパネルに 1 行ごとに 1 ページのサムネイルをレンダリングし、ホバーと選択のハイライト、およびクリックでナビゲートする機能を備えています。TPdfView の横に配置するように設計されています。プロパティ:CurrentPageIndex、ThumbnailWidth、ThumbnailHeight、TextColor、HoverColor、SelectionColor、BorderColor。イベント:OnPageClick
圧縮
- 自動圧縮 -
Compressedプロパティが True(デフォルト)の場合、保存時にすべての PDF ストリームが FlateDecode 圧縮されることが保証されます- 後処理 - 圧縮エンジンは保存された PDF データをスキャンし、未圧縮のストリームを zlib 最大圧縮で圧縮します
- 相互参照の再構築 - ストリーム圧縮がバイトオフセットを変更した場合、xref テーブルを自動的に再構築します
- ゼロオーバーヘッド - すべてのストリームが既に圧縮されている場合、データは変更なしで通過します
セキュリティ
- パスワードサポート - パスワード保護された PDF ドキュメントを開く
- 権限 - ドキュメントとユーザー権限を読み取り。
SecurityAuditデモは権限、添付ファイル、ドキュメント JavaScript、URI / Launch リンク、署名、XFA、V8 利用可能性を、TXT / JSON レポート保存および TXT コピーアクションを伴う読み取り専用のリスクサーフェスに統合します- 上限付き DER ツールキット -
FPdfAsn1は低および高タグ番号、型付き値、ソート済み SET OF コレクション、正規化された時刻または文字列形式をエンコードします。ゼロコピーリーダーウィンドウ、型付きデコーダ、リソース制限付きバリデータは CMS、PAdES、証明書、タイムスタンプワークフローを支えます- 署名固有の長期検証 -
TPadesDssOptions.Vrisはハッシュキー付きの間接 VRI 辞書を書き込み、共有される証明書、OCSP、CRL ストリームはコンテンツハッシュで重複排除されます。PAdES B-LT または B-LTA 署名は新しい署名の VRI を自動的に作成します- リモートおよび中断署名 -
PreparePadesRemoteSignatureは SHA-256 ドキュメントダイジェスト、正確な ByteRange、プレースホルダー座標、準備済み PDF のフィンガープリントを HSM またはクラウド署名向けに永続化し、CompletePadesRemoteSignatureは変更済み、再利用、過大、ダイジェスト不一致のセッションを出力書き出し前に拒否します- 署名リビジョンポリシー分析 -
AnalyzeSignatureRevisionsはクラシック、ハイブリッド、xref ストリームのリビジョンチェーンを再構築し、署名ごとに DocMDP と FieldMDP を適用し、不正、シャドウ、圧縮、予算超過の変更に対してはフェイルクローズします- 曖昧さを排除する署名プロファイル - PAdES 検証は必須キーをトップレベルの署名辞書でのみカウントし、重複や一貫しない Sig または DocTimeStamp プロファイルを拒否し、ByteRange がダイレクトな 16 進 Contents トークンを正確に除外することを要求します
- マルチ署名エビデンスエクスポート -
BuildPadesEvidenceReportは PDFium ファクト、CMS ポリシー、トラストとタイムスタンプの状態、証明書パスのハッシュ、DSS/VRI カバレッジ、リビジョン決定を相関付け、上限付きの JSON と CSV で出力します- アーカイブタイムスタンプ更新 -
RenewPadesArchiveTimestampは既存の署名履歴の正確な範囲に RFC 3161 Document Time-stamp を追記し、必要に応じて最初に完全な DSS を更新し、出力前に結果の B-LTA チェーンを検証します- 非同期トラスト検証 -
ValidatePadesTrustとValidatePadesTrustAsyncは、オリジナルバイトのデタッチ署名、署名者と TSA チェーン、オプションのオンライン失効エビデンス、RFC 3161 タイムスタンプトークンを、段階的な進捗、上限付き取得、協調的キャンセル付きで検証します- 認定トラスト -
TPdfEuropeanTrustedListは呼び出し元が認証した ETSI トラストリストのみを解析し、キャッシュされた XML を再認証し、呼び出し元所有の更新ソースを受け入れ、QualifiedTrustEvaluatorを通じてオフラインの認定サービス評価を提供します- セキュリティ削除 - セキュリティを削除してドキュメントを保存(権限がある場合)
印刷
- 印刷モード - グローバル
SetPdfPrintMode関数を介して EMF、テキストのみ、PostScript Level 2 / 3、PostScript パススルー、EMF イメージマスク、Type 42 印刷モードから選択- ビューア設定 -
PrintCopies、PrintPageRanges(1 ベースのページ範囲)、PrintScaling、PrintPaperHandlingを介してドキュメント作成者の意図を表示。SetPdfPrintPaperHandlingDevModeは両面印刷ヒントを WindowsDEVMODE.dmDuplexにマップします- N-up 印刷 - Delphi、C++Builder、Lazarus の
PrintPreferencesデモは、奇数 / 偶数ページフィルタリング、グレースケールレンダリング、オプションの 1 ピクセルセル境界、PDF 作成者の印刷設定、SetPdfPrintPaperHandlingDevModeを介した両面印刷意図のマッピングを伴う N-up シート構成(1 / 2 / 4 / 9 ページ / シート)を示します
同梱デモ
Demo\Delphi、Demo\CBuilder、Demo\Lazarusツリーは、3 つすべての IDE ファミリにわたって実際の API サーフェスを活用する実行可能なサンプルプロジェクトを同梱しています。ハイライト:
- PDFViewer / MultiPageViewer / SplitView - エンドツーエンドの TPdfView 使用法:読み込み、ナビゲーション、ズーム、回転、見開き、表紙対応レイアウト、同期コマンドによる Delphi / C++Builder / Lazarus 並列 PDF 比較。ビューアデモは複数ギガバイトの PDF の実用的な速度テストでもあり、2.x GB のドキュメントが、ページレンダリングを応答性の高い状態に保ちながらほぼ即座に使用可能な最初のビューに到達できます
- ViewerInteractionLab - 表示モード、フィットモード、ページカラー、回転、検索ハイライト、テキスト選択、選択テキストプレビュー、クリップボードアクション、DeviceToPage 座標フィードバック向けの Delphi、C++Builder、Lazarus 集中型 TPdfView インタラクションサンプル
- SearchAndSelect - 全ページ検索結果一覧、前 / 次マッチナビゲーション、ダブルクリックによる結果ジャンプ、
HighlightSearchText、大文字小文字区別 / 単語単位検索、AllowUserTextSelection、SelectedText、SelectAll、CopySelectionToClipboard、ClearSelection、見開き表示モード向けの Delphi、Lazarus、C++Builder 集中型ワークフローサンプル- PreflightReport - 再利用可能な
FPdfPreflightReportオブジェクトは、PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R、PDF/VT の結果を、ステータス、Info / Warning / Error の重要度、ルックアップ、検索、フィルタリング、決定論的な集計、安定した SHA-256 フィンガープリント、TXT / HTML / Markdown / JSON / CSV 出力、SARIF 2.1.0 / JUnit XML / NDJSON / XML 自動化フォーマットとともに収集します。Delphi、Lazarus、C++Builder のデモとコンソールワークフローがプレビュー、バッチルーティング、サマリー、レポート添付、CI 終了コードゲーティングを提供します- ContentExtractionLab - TXT / JSON エクスポート、全 / 無カテゴリ選択、元 PDF 保存、レポートコピーアクションを伴う、ドキュメントメタデータ、ページテキスト、ページオブジェクト、画像、添付ファイル、リンク、アノテーション、ブックマーク、フォント / 文字メトリクス向けの Delphi、Lazarus、C++Builder 統合コンテンツインベントリワークフロー
- WatermarkStamp - マルチページターゲット PDF にわたる中央配置ウォーターマーク、コーナースタンプ、ページ番号ラベル向けの Delphi、Lazarus、C++Builder 再利用可能 Form XObject ワークフロー
- CreatePDF - テキスト、画像、パス、テーブル、ウォーターマーク構成を伴うマルチページ PDF をゼロから構築。アクセント付きのチェコ語 / フランス語 / ドイツ語 / スペイン語 / ポルトガル語 / ポーランド語 / トルコ語テキストを書き込んでフォント選択と Unicode 処理を検証するための「European Text」オプションも含まれます
- ExtractText / ExtractImages / ContentExtractionLab - 抽出されたテキスト(ページごとに分割された出力を含む)または埋め込み画像をディスクに保存、または 1 パスでマルチカテゴリコンテンツインベントリレポートを生成
- FormFill - AcroForm フィールドメタデータの読み取り、値の書き込み、/AP アピアランスの再生成、編集可能またはフラット化された結果の保存
- FontProperties - Delphi、C++Builder、Lazarus で TPdf と TPdfView の両方を介してインデックス付き文字 / フォントメタデータを検査
- MergePDF / SplitPDF - 複数のソース PDF をファイルごとのページ範囲選択、オプションの出力パス、実行ログ、キャンセルボタン、マージ完了サマリー付きで結合、または 1 つの PDF をページごとの出力ファイルに分割
- PDFtoJpg / BatchExport - ファイルごとの全体進捗、ページごとの現在の進捗、DPI / 品質 / パスワード入力、
IPdfCancellationTokenでバックアップされた協調的にキャンセル可能なバッチを伴う Delphi、C++Builder、Lazarus のワンショットまたはバッチ複数ファイル PDF から JPG への変換- StandardsLab - PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R、PDF/VT 検証、問題報告、標準指向の保存出力向けの Delphi、C++Builder、Lazarus ワークフローサンプル
- PrintPDF / PrintPreferences - プレビュー、ページ範囲、コピー、丁合、進捗、キャンセル付きの Delphi、C++Builder、Lazarus 標準 PDF 印刷(PrintPDF)、および奇数 / 偶数フィルタリングと PDF 作成者の印刷設定付きの Delphi、C++Builder、Lazarus N-up シート構成(PrintPreferences)
- SecurityAudit - 権限、添付ファイル、JavaScript アクション、URI / Launch リンク、ウェブリンク、署名、XFA 状態、V8 / XFA ヘルパー利用可能性、TXT / JSON 監査レポート向けの Delphi、C++Builder、Lazarus 読み取り専用リスクサーフェスサンプル
- Attachment - PDF を作成し、埋め込みファイル添付の追加 / 一覧表示 / 抽出 / 削除 / 保存を MIME サブタイプ表示付きで実行
- ImageToPDF - プレビューと画像ごとの進捗を伴う、1 ページあたり 1 画像の Delphi、C++Builder、Lazarus 画像バッチ変換
Delphi、C++Builder、Lazarus の回帰テストスイートは、同じフィクスチャ PDF を共有する 147 件(Pas)/ 123 件(C++)のケースをカバーするため、3 つすべての IDE ファミリ間で動作はバイト整合性を保ちます
プラットフォームサポート
- Delphi - Delphi XE5 (RAD Studio XE5) から Delphi 13.1 Florence (RAD Studio 13.1) まで
- C++Builder - C++Builder XE5 (RAD Studio XE5) から C++Builder 13.1 Florence まで
- Lazarus - Free Pascal / Lazarus サポート
- Win32 / Win64 - 32-bit および 64-bit Windows プラットフォームの両方
ページ対応付けを使う比較は挿入、削除、移動ページと、上限付き Unicode テキスト差分、複数の視覚領域を識別します。overlay で変更をエクスポートできます
トランザクションのナビゲーション結合は、選択/並べ替えインポートでも outline 階層、スタイル、URI アクション、再対応付けしたページ宛先を保持します
オプションの Tesseract OCR は scan ページに検索テキストを追加し、依存関係の診断、キャンセル、リソース上限を明示します
選択ページの AcroForm 結合はトランザクションとして実行し、明示的な名前ポリシーとリソース分離に対応します。オプションのバーコードプロバイダーは Code128、QR、DataMatrix、PDF417 を生成し、グレースケール画像を認識します