変更履歴
リリース履歴
PDF Library for Delphi ライブラリのバージョン履歴。エントリは新しい順に並んでおり、各リリースはプロジェクトのリリースポリシーに従ってセマンティックバージョニングに準拠します。
最新リリース
- 最新バージョン: v3.555.0; リリース日: 2026-10-10
Version 3.555.0
追加
- Windows 11 on ARM で、ネイティブな Free Pascal ARM64 と Delphi ARM64EC によるソースビルドを利用できます。ライブラリと DLL は別々のビルド出力として生成されます
変更
- Windows ARM は、システムの AES CBC/GCM と JPEG プロバイダー、移植性のある圧縮、JPEG 2000 向けにアーキテクチャに合った OpenJPEG 共有ライブラリを使います
- Windows ARM DLL は、名前付き C ABI エクスポートと正の値の不透明インスタンスハンドルを公開し、64 ビットポインタを切り詰めません
修正
- Delphi ARM64EC の XMP は、名前空間対応の MSXML インターフェースと上限付きの XML 解析を使い、遅延バインディングの OLE 呼び出しでの失敗を回避します
Version 3.554.0
追加
- ネイティブのヘッドレス対応が Linux ARM64 と macOS x64 に拡大しました。アーキテクチャに合った FPC ビルドと、Intel macOS 向けの Delphi dylib が提供されます
- ネイティブ検証ツールは、Linux と macOS の両方で x64 と ARM64 に対応します
修正
- Intel macOS では、Apple silicon 向けパスの代わりに、正しいネイティブの OpenSSL・Cairo・Fontconfig・OpenJPEG プロバイダー位置を選択するようになりました
- LLVM LLD 使用時、Delphi Intel macOS のリンクは、絶対パスのシステムライブラリやフレームワーク入力を選択された Windows SDK キャッシュを基準に解決します
Version 3.553.1
追加
- Delphi macOS ARM64 で、XMP メタデータのネイティブ編集とラウンドトリップに対応しました。カスタムプロパティ、標準識別子、無関係な名前空間の保持を含みます
修正
- ネイティブな Delphi macOS の PFX 署名と RFC 3161 タイムスタンプは、macOS の OpenSSL プロバイダーを選択します。RSA と EC の PDF 署名、明示的なトラストチェーン、署名タイムスタンプ、ドキュメントタイムスタンプは ARM64 で検証されます
- ネイティブ XMP の読み込み・保存サイクルは、処理命令を蓄積する代わりに単一のパケットエンベロープを保持します
Version 3.553.0
追加
- Delphi でも macOS ARM64 のヘッドレス動的ライブラリをビルドできるようになりました。C エントリポイントはネイティブ Free Pascal ビルドと同じ 880 個です
- Delphi macOS バックエンドは、ネイティブフォント、Cairo レンダリング、OpenSSL による暗号化とダイジェスト、システムの zlib と libcurl、OpenJPEG、ImageIO による JPEG エンコード・デコードを使用します
修正
- macOS のファイルアクセス、リソース検索、固定幅バイナリ構造、ネイティブコーデックバインディングは、プラットフォームに適した宣言を使うようになりました
- macOS のバックグラウンドレンダリングは、移植性のある一時停止イベントを使います
- Delphi macOS は、復号中に入力バッファを解放することなく、暗号化された PDF 文字列とオブジェクトストリームを正しく復号します
Version 3.552.2
修正
- 請求書検証と OCR プロバイダーで、古い Delphi コンパイラとの互換性を復旧しました。Win32 と Win64 のトライアルライブラリビルドを含みます
Version 3.552.1
修正
- macOS の動的ライブラリバッファは、実際のデータを公開するようになり、埋め込まれたゼロバイトを保持し、解放の成功を正しく報告します
- 動的ライブラリのインスタンスハンドルは、64 ビットターゲットでオブジェクトアドレスを切り詰めたり解放済みハンドルを再利用したりすることなく、有効なまま維持されます
- ライブラリのアンロードは、未解放のインスタンスとバッファを解放します
Version 3.552.0
追加
- ネイティブ Free Pascal によるヘッドレス PDF 生成、読み込み、テキストワークフロー、Cairo ビットマップ描画を、Linux x86_64 と macOS arm64 で利用できるようになりました。システムフォントとネイティブの PNG・JPEG・JPEG 2000 プロバイダーを備えています
- ネイティブ OpenSSL による暗号化、ダイジェスト、PKCS12 署名、CMS 検証を備えました。証明書のトラストアンカーを明示的に指定でき、検証時間も確認できます
- ネイティブ Free Pascal ターゲットで、組み込み libcurl による HTTP レンジアクセスと RFC 3161 タイムスタンプワークフローを利用できます。署名タイムスタンプ属性とドキュメントタイムスタンプの検証も含まれます
- ネイティブの XMP メタデータ解析と書き込みは、名前空間ベースのプロパティを保持し、DOM 構築の前に DTD や過大・深いネストの XML を拒否します
修正
- ネイティブのバンド単位ビットマップ描画がページ変換を初期化し、バンド境界でも Cairo のアンチエイリアシングを維持するようになりました
- 共有のタイムスタンプ・検証・タグ付け宣言は、オプションの PDFium ビルドを必要としなくなりました
Version 3.551.0
追加
- 正確な Unicode コンテンツ置換は、周囲の文字、既存の TJ スペーシング、後続テキストのアンカーを保持し、削除と検証済み置換フォントをサポートします。選択したページテキストを置換する前に、サポートされないマッピングを報告します
- 構造化抽出はタグ付き読み取り順序に従い、セマンティックロールと名前空間を解決し、段組みとページ装飾要素を検出します。JSON・CSV・Markdown・DOCX エクスポートでは、空のセル、結合セル、ページまたぎのテーブルセルも保持します
- オプションの Tesseract OCR アダプターが、hOCR と TSV の結果、向きの信頼度、ベースラインをサポートします。明示的な上限と段階ごとの診断も備えます
- OCR テキストレイヤーは、既存テキストをスキップするか、以前ライブラリが所有していたレイヤーだけを置き換えられます。ページのピクセルと共有コンテンツは保持されます
- 新しい Delphi・DLL・ActiveX コントロールが、構造化解析オプション、OCR 設定、正確置換の診断を公開します
変更
- 構造化 JSON はスキーマバージョン 2 を使い、安定したセマンティックノード識別子、読み取り順序のソース、テーブルスパン、推論の信頼度を持ちます
- Unicode 置換は、フォントバイトを推測せずに、不完全なマッピング、部分的なグリフクラスター、サポートされないソースを拒否します
修正
- TJ の数値スペーシングは、描画とテキストジオメトリの両方で水平スケーリングを一度だけ適用するようになりました
- フォント計測は、コレクションが共有されている場合に実際のリソースを再選択し、各リソーススコープ内では直接フォント解析を再利用します
- コンテンツフィンガープリントは、範囲チェックとオーバーフローチェックを有効にしてもハッシュ値を保持します
Version 3.550.0
変更
- SVG エクスポートは、ページの描画順序、ネストしたフォームコンテンツ、正確なクリッピングパス、変換後のストロークジオメトリを保持するようになりました
追加
- 上限付きのネイティブラスターフォールバックが、エクスポート設定がバックドロップスナップショットを許す場合に、サポートされない描画オペレーションを処理します
- GetLastSVGExportDiagnostics は、ページコンテンツのエクスポート外にある可視注釈アピアランスを含め、省略されたピクセル、近似、ラスターフォールバックを報告します
Version 3.549.0
追加
- バージョン付き請求書 XML スキーマと Schematron 検証は、オプションのプロバイダーを受け入れ、ステージの完了状況、ルール識別子、フィールドパス、重大度、エンジン診断を返します
- 組み込みの請求書ビジネス検証は、選択された添付ファイルを上限付きデコードで読み込み、ファイル名が欠落していたり曖昧だったりする場合は拒否します
- Delphi・DLL・ActiveX は、ルールファイル、時間制限、出力制限を明示して xmllint と SaxonJ 検証を実行できます
Version 3.548.0
追加
- PDF/UA-2 リーダーチェックは、明示的または自動のプロファイル選択を通じて、識別情報、PDF バージョン、名前空間参照、ロールマッピング、ドキュメントルート、構造の親を検証します
- Delphi・DLL・ActiveX の各 API は、再利用可能な検証パイプライン内で PDF/UA ターゲットを選択し、検証済み・未検証・上限付きの検証カバレッジを公開します
変更
- 検証レポートとプリフライトレポートは、PDF/UA-2 を PDF/UA-1 とは独立に識別し、実装済みチェックの合格が完全なアクセシビリティ認証を意味しないことを明記します
Version 3.547.0
追加
- 描画ページのビジュアル比較を追加しました。チャネル許容差、無視するリージョン、変更領域、ピクセル数、差分マスク、オーバーレイを指定できます
- ドキュメントのビジュアル比較は、挿入・削除されたページの前後で同一ページ画像を整列させ、変更またはリサイズされたページのペアを報告します
- Delphi・DLL・ActiveX からファイルのビジュアル比較を実行すると、構造化された JSON レポートが返ります
Version 3.546.0
追加
- Arlington 検証カバレッジレポートは、完全な合格、既知の失敗、不完全なルールサポート、操作エラーを区別します。Delphi・DLL・ActiveX の各 API から利用できます
修正
- サポートされないモデル式は、成功した検証結果に黙って寄与する代わりに、明示的な診断を出すようになりました
Version 3.545.0
追加
- C# と VB.NET の DLL WorkflowWorkbench サンプルは、複数ページのレポート生成、テキスト抽出、ページの分割と結合、バイナリメモリ転送、ネイティブリソースの明示的な所有権を示します
- DocumentInspectionWorkbench は、Delphi・C++Builder・Lazarus の全体でページインベントリと設定可能な診断重大度ゲートを提供するようになりました。初回実行に必要な入力も生成されるため、単体で完結して動作します
変更
- C++ DLL の LinkDemo は、ページリンクとアウトラインを備えた完全なナビゲーションドキュメントを作成するようになりました。DLL パスと出力パスを明示的に指定でき、保存したドキュメントを検証し、失敗はプロセス終了コードで報告します
- WorkflowGallery は、ラウンドトリップチェックで保存済みドキュメントと HTTP レスポンスボディを検証し、検証レポートを公開します
- DocumentLab のクイックツアーにドキュメント検査が含まれるようになり、ネイティブポートフォリオとパッケージの紹介から、専用の DLL ワークフローカタログへリンクします
修正
- Delphi のドキュメント検査は、解析の前にファイルごとのカウンターを初期化するようになりました。読み込めない入力のレポートも対象です。Delphi と C++Builder は、ロケールに依存しない JSON 数値を書き出します
- C++ DLL の診断サンプルは、成功パスを含めて、ライブラリのアンロード前にネイティブインスタンスを解放します
Version 3.544.0
追加
- 9 つのネイティブドメインラボが、シナリオ選択、ガイド付きクイックツアー、シナリオごとのログを提供します。引数なしでラボを起動すると、オフラインで閲覧できる HTML ページが自動的に開きます
変更
- Delphi・C++Builder・Lazarus のサンプルポートフォリオは、Showcase、HelloWorld、9 つのラボを中心とする構成になりました。Delphi はインタラクティブな Reader を維持しています
- 専門デモと特化チュートリアルは、各ラボ内のローカルシナリオモジュールとして統合されました。個別のサンプルプロジェクトや共通デモソースディレクトリを増やさずに、元の動作を保っています
- ラボツアーは、分離した出力フォルダとタイムアウトで自分のシナリオを実行するため、別途ビルドした兄弟サンプル実行ファイルに依存しなくなりました
- シナリオノートはドメインガイドからリンクされ、オプションの Delphi レポートフレームワーク統合は ContentLab の下にまとめられています
- Lazarus のスキャンコーデックマトリクスは、生成したフィクスチャを完了できないエンコードパスをスキップとして扱い、要求された外部エンコーダーが利用できる場合にだけ JBIG2 の計測結果を公開します
修正
- 墨消しシナリオは PDF 1.7 ドキュメントを生成するようになり、コンテンツ削除が必須のバージョンチェックに合格するようになりました
- ページキャプチャーシナリオは、最後のコンテンツページをキャプチャーする間、一時的なドキュメントページを保持し、単一ページドキュメントのキャプチャー失敗を防ぎます
- C++Builder のバーコードギャラリーは、成功した 0 以外のドキュメントハンドルとページハンドルを受け入れるようになり、値が 1 を超えるハンドルを拒否しなくなりました
- Lazarus のナビゲーションシナリオは、成功レポートを公開する前に PDF 書き込みの失敗を報告するようになりました。コンパニオンのリモートターゲットドキュメントも対象です
Version 3.543.0
変更
- ネイティブデモポートフォリオは、フラッグシップツアーと機能ワークベンチを前面に置く構成になりました。特化した API チュートリアルは、各プラットフォームの Miscellaneous フォルダにまとめられています
削除
- C++Builder Reader のメタデータ対応、前提条件のみを含む ReportBridges 実行ファイル、重複していた Lazarus TextExtract サンプル、冗長な Delphi AddWebLinkConsole エントリを削除しました。今後は、実際のビューア、レポートブリッジ、検査、抽出、AddWebLink の各サンプルを使用してください
修正
- C++Builder の LoggerDemo は、完了したセッションログを読む前にログライターを閉じて UTF-8 で出力するようになりました。PDF 作成後のファイル共有エラーや、長いログによるコンソールクラッシュを防ぎます
Version 3.542.0
変更
- Showcase と AdvancedWorkflowMatrix は、実装ユニットを各 Delphi・C++Builder・Lazarus サンプルフォルダ内に収めるようになりました。プロジェクトのコピーに共通デモユニットディレクトリは不要です
- Showcase のソースガイドはローカルビルダーを示すようになりました。9 ページのドキュメント、編集可能なフォーム、切り替え可能なレイヤー、オフラインエクスポートは変わりません
修正
- C++Builder のワークフロースイートは、終了前に完全なワークフローリストとコンソールレポートを書き出します
Version 3.541.0
追加
- 9 ページの Showcase に、編集可能なプロジェクト概要とレイヤー化したフロアプランが含まれます。フォームの値は保存され、デザインノートも必要に応じて追加できます
- C++Builder にも、Delphi と Lazarus と同じフラッグシップ Showcase が含まれるようになりました
- コンソール Showcase の実行では、フルページ PNG プレビュー、インタラクティブな PDF、UTF-8 テキストエクスポートを含むオフライン閲覧用ページを生成します
変更
- Delphi Showcase は、ガイド付きプレビュー、フォームの直接編集、デザインノートの表示制御、編集済み PDF の保存、画像とテキストのエクスポート操作を備えて起動するようになりました
- 3 つのネイティブ Showcase エントリはすべて、ドキュメントビルダーとオフラインエクスポートの実装を共有しています
修正
- Showcase のテーブルセクション、注釈サンプル、バーコードシンボルは意図した領域に収まり、ページラベルも読みやすいままです
- Delphi Showcase はユーザー所有の出力ディレクトリに書き込み、プレビュー・エクスポート・保存の失敗を明示的に処理します
Version 3.540.0
変更
- AdvancedWorkflowMatrix は、1 つのワークフローランチャーを Delphi・C++Builder・Lazarus で共有し、分離した出力で専門デモを実行します。選択とタイムアウトをサポートし、欠落しているバイナリと子プロセスの失敗を CSV と HTML レポートに記録します
- Lazarus の TextExtract と ExtractText は、単一の読み取り専用抽出セッションを共有し、パスワードを受け付けて UTF-8 出力を書き出します。最小構成のコンソールエントリと抽出モードの比較も維持されます
- C# ActiveX HelloWorld は、ヘッドレス出力オプション、明示的な COM クリーンアップ、分かりやすいデプロイ診断を備えた、作成と保存に特化したスターターサンプルです
修正
- C# Table2PDF は余分な空白ページを避け、返されたフォント ID を使用し、プロセスアーキテクチャに合わせて DLL を特定します
- Visual Basic の DLL スターターは、ビルドに必要なネイティブバインディングを含み、アーキテクチャ固有の DLL 読み込みを処理します
- C++Builder のレポートエンジンガイドは、統合が欠落している場合にそのことを報告し、プレースホルダー PDF を実際のブリッジ結果として見せなくなりました
- C++Builder Reader は、読み取れない PDF を渡された場合、生成済みサンプルに差し替えるのではなく、明示的に失敗します
Version 3.539.53
修正
- TextPaging デモは、必要なフォントを読み込めない場合やページ上限のために未描画のテキストが残る場合にエラーで停止するようになり、部分的な PDF が正常な結果として保存・オープンされなくなりました
Version 3.539.52
修正
- ActionNavigationMatrix コンソールデモは、メインとコンパニオン PDF の書き込みと FDF エクスポートを確認してから成功を報告するようになり、出力操作が失敗したときは 0 以外の終了コードで停止します
Version 3.539.51
修正
- 名前ツリーと数値ツリーの検索は、逆転した範囲境界を無視するようになりました。不正な形式の PDF で有効な子エントリが隠されることはありません
Version 3.539.50
修正
- 整数ソートは比較でオーバーフローせずに符号付き整数の全範囲を扱えます
- 空のソート済み整数リストやファイル位置リストは、後続要素の問い合わせに 0 を返します。スパース整数のメンバーシップ判定は、挿入順と重複エントリを保持したまま、間に存在する全範囲を確保しないようになりました
Version 3.539.49
修正
- PNG の取り込みでは、途中で切れたチャンク、不正なヘッダーやパレット、未対応のインターレース値、終端チャンクの欠落や破損を、画像を利用可能とみなす前に検出して拒否します
- PNG の再読み込みでは、リーダーオプションを保持したまま以前の画像データとメタデータをクリアします。メタデータのみの読み取りでは、バッファーを確保せずに画像データ本体をスキップします
Version 3.539.48
修正
- ファイルストリームはリサイズ時に要求された長さを守り、長いファイル名は完全な絶対パスに展開されます
- ストリームへの挿入は 64 ビットの長さとカーソルを保持し、データを変更する前にストリーム外の挿入位置を拒否し、読み書きの未完了を報告します
- ページ番号付きファイル名は、拡張子の直前に番号を追加します。ディレクトリ名はそのまま保たれ、拡張子のない名前も扱えます
Version 3.539.47
修正
- HTML テキストの描画と継続では、エスケープされた山括弧とエンティティの表記をそのまま保持し、デコード済みテキストを二重に解釈しなくなりました
- Markdown のコードスパンとコードブロックは、生成される HTML と描画結果の PDF でアンパサンドとエンティティ表記を保持し、データセットのエクスポートでも同じリテラルテキストをセル値に保ちます
Version 3.539.46
修正
- Delphi の ExtractImage デモは、選択できない画像をスキップし、書き込みに成功した数を数え、抽出が不完全な場合はそのことを報告します。無条件に成功メッセージを表示することはありません
- ExtractImage は出力ディレクトリを作成し、抽出画像の名前を付けるときに入力ファイルの拡張子だけを取り除きます。ExtractAnnotAttach は、読み込みが成功以外の結果を返した時点で停止します
Version 3.539.45
修正
- 名前ツリーと数値ツリーの照会は、循環しているまたは重複した子ノードをスキップして有効な兄弟ノードの処理を続け、呼び出しスタックを溢れさせずに深くネストしたツリーも処理します
- 名前ツリーの列挙は無効な名前キーを無視し、検索と削除は 32,768 を超える名前/値ペアを持つリーフでもエントリの完全なオフセットを保持します
Version 3.539.44
修正
- ページボックスの照会と取り込みは、親のページツリーノードにある継承不可の bleed、trim、art ボックスを無視し、代わりにリーフページのボックスまたはその実効 crop ボックスを使用します
HasPageBoxは、直接継承された media ボックスと crop ボックスを、間接配列の場合と同様に一貫して報告します
Version 3.539.43
修正
- EMF ベクター取り込みは既定の黒ペンと白ブラシで始まるため、オブジェクトを明示的に選択しない描画レコードも表示されたままになります
- 32 ビットと 16 ビットのポリラインはパス括弧内の独立した図形を保持し、16 ビットの複数ポリラインはパスが描かれるまで描画を遅らせ、null ペンにも従います
Version 3.539.42
修正
- bleed、trim、art ボックスのオプションを指定した CapturePageEx は、そのボックスが定義されていないページで、メディアボックス全体の代わりに、ドキュメントどおり crop ボックスを取り込むようになりました。ページに書き込まれるボックスも同じ ISO 32000-1 の既定に従います
Version 3.539.41
修正
- EMF の取り込みは 32 ビット PolyBezier レコードを、最初の点を制御点として使うのではなく始点から描画するため、曲線が 16 ビットレコードと一致します
- EMF の Polyline レコードは、閉じた塗りつぶし図形ではなく、ペンだけの開いた線として描画されます
- EMF の PolylineTo レコードは現在位置から始まり、もう閉じられません。また、最初の 2 点が水平線上にあるレコードが、その後に描画されるすべての図形でペンを無効にすることがなくなりました
- 32 ビット EMF の PolyPolyline レコードはすべてのポリラインを描画します。これまで複数ポリラインを含むレコードはスキップされ、単一ポリラインは何も描画しませんでした
Version 3.539.40
修正
- ImportAnnotationsFromFDFString と ImportAnnotationsFromFDF は、XFDF の取り込みと同様に、実際に追加された注釈の数を返します。ページがドキュメント外だったり /Subtype を持たなかったりしてスキップされたエントリは数えなくなりました
Version 3.539.39
修正
- EMF の取り込みは PolyDraw レコードを完全に描画します。線や曲線を描きながら図形を閉じる点が捨てられなくなり、閉じた図形は最後のセグメントを保ち、続く曲線もずれません。複数の図形を含む 16 ビット PolyDraw レコードはすべての図形を保持し、move で始まらない図形は現在位置から始まります
- EMF の取り込みは、実際の点数より多くの点を宣言している Polyline、PolyBezier、Polygon、PolyDraw、および 16 ビットの PolyPolyline と PolyPolygon レコードをスキップします。以前はレコードの境界を越えて読み進めるため、後続のレコードの内容で余計な線が描かれたり、変換が壊れたりする可能性がありました
Version 3.539.38
修正
- 領域の左や上からグリッドが始まる halftone リージョンや、回転したグリッドがセルを負の座標に置く JBIG2 halftone リージョンは正しくデコードされます。そのようなセルは捨てられたり移動されたりする代わりに領域の端で切り取られ、グリッド原点が領域の隅へ引き寄せられることもなく、完全に外側にあるセルは ITU-T T.88 の規定どおりスキップされます
Version 3.539.37
修正
- 領域外のグリッドセルをスキップする halftone リージョンを含む JBIG2 画像は、halftone グリッドが正方形でない場合でも正しくデコードされるようになりました。これまでスキップマスクの行と列が入れ替わって構築されていたため、スキップされるべきセルがデコードされ、領域の残りが乱れていました
Version 3.539.36
修正
- MovePage で移動したページは、以前の Pages ノードから継承していたページボックス、回転、リソースの独自コピーを受け取ります。移動先ページでの SetPageBox 呼び出しやテキスト・画像の描画が、古いノードとそこからまだ継承しているページに影響しなくなります
- SetPageBox は、既存のボックスが他のページや Pages ノードと共有されている間接オブジェクトの場合、そのボックスを参照する全ページのサイズを変える代わりに、ページに専用のボックスを与えます
- CopyPageRanges は、コピー元ページのページボックスが Pages ノードと、CropBox が MediaBox と共有されたままにならないようにします。コピー後にコピー元ページのボックスを変更しても、兄弟ページや両ボックスが同時にサイズ変更されなくなります
Version 3.539.35
修正
- TransformPageElement は、パスや画像の周囲に巻き付ける行列のうちスケールと回転の部分を、小数点以下 4 桁ではなく 6 桁で書き込みます。大きなページでも小さな回転や細かいスケール係数が目に見えてずれなくなります。平行移動は従来どおり小数点以下 4 桁のままです
Version 3.539.34
変更
- コンテンツレイヤーを書き直すページ編集、つまり ScalePage、TransformPageElement、DeletePageElement、RedactRegion、ConvertTextToPaths、そして ParsePageContentLayer のプログラムを WritePageContentLayer で書き戻す処理は、変更しない数値オペランドの元のテキストを保持するようになり、レイヤー全体を小数点以下 4 桁に丸めなくなりました
- TPDFContentProgram に新しい CanonicalNumbers プロパティが追加されました。解析の前に設定すると、NormalizeContentStreams と同様にすべての数値を正規形に書き直します
修正
- 出力精度より小さい非ゼロの数値、たとえば 0.00001 のスケール係数は、0 ではなく有効数字のまま書き込まれます。これにより、コンテンツ正規化、保存時のコンテンツオプティマイザー、新規 PDF オブジェクトが、微小な変換をコンテンツを隠してしまう特異行列に変えてしまうことはなくなりました
Version 3.539.33
修正
- RecolorPage と RecolorDocument は、ページが
0.5 gのような小数値で色を設定していても、コンマ小数のシステムで変換エラーを起こさなくなりました - DrawSVG、DrawSVGFromFile、GetSVGWidth、GetSVGHeight は、コンマ小数のシステムでも
width="100.5"のような小数の SVG 長さを読み取り、既定値にフォールバックしなくなりました。ExportPageSVG は小数の塗り色と線色を保持します - RenderPageRegionToFile と RenderPageToDCClip は、どのロケールでも
10.5,20.5,50.5,40.5のような小数のクリップ矩形を受け付けます。壊れたクリップ文字列は例外を起こす代わりに失敗するか、クリップなしで描画されるようになり、余分な値が矩形をはみ出すこともありません - AddPolygonAnnotation、AddPolyLineAnnotation、AddInkAnnotation は、どのロケールでも小数の頂点座標を読み取り、不正な座標リストを拒否します
- SetOutputIntentMixingHints は、コンマ小数のシステムでも
0.95のような solidity 値を受け付けます。CheckDocumentPolicy はDocument.Version >= 1.3のような小数の機能値を数値として比較します
Version 3.539.32
修正
- AddTagAttribute は、コンマ小数のシステムでも
0.5や2.5 3.5のようなピリオド小数の値を PDF 数値として書き込み、PDF 名前に変えてしまうことがなくなりました。システムの小数点記号で書かれた値も引き続き受け付けます - SetStructElemBBox、SetStructElemSpaceBefore、SetStructElemSpaceAfter、SetStructElemStartIndent、SetStructElemEndIndent、SetStructElemColor は、数値をシステムロケールに依存せずに書式化し、指数表記では決して書きません
- BeginPDFVCRPlaceholder で作成した PDF/VCR プレースホルダーは、コンマ小数のシステムでも保存前の GTS_BBox 検証に合格します
Version 3.539.31
修正
- GetSimilarImageDeduplicationReportJSON は、コンマ小数のシステムでも maxAcceptedMeanError を
0,333333333333333の代わりに有効な JSON 数値として書き込みます - GetObjectJSON と ExportObjectJSON は、
-.25、+3、007.5のような PDF 数値を JSON の数値構文で書き出します。出力が有効な JSON になり、SetObjectJSON と ImportObjectJSON がそのまま受け入れられます - JSON レポートは、NaN や無限大の値に対して
+InfやNANを書くことも、浮動小数点例外で失敗することもなく、nullを書き込みます。オーバーフローした PDF 数値を扱う GetDocumentJSON、非有限座標を扱う GetAnnotationHitsJSON、およびバーコード、deskew、構造化テキスト、PDF/VCR の各レポートが該当します - PDF コンテンツ、SVG、HTML、CSV 出力の数値書式は、無効な浮動小数点演算を起こす代わりに、NaN に対して 0 を書き込みます
Version 3.539.30
修正
- ImportAnnotationsFromFDF と ImportAnnotationsFromFDFString が、インポートした注釈を再び作成するようになりました。以前は各エントリーがカウントされるだけで、/Subtype 値が一度も読まれていなかったため、実際には何も追加されていませんでした
- FDF 注釈のインポートは、/Rect、/Page、/Contents、/T、/Subj をどのキー順序でも読み取り、各ルックアップをそれぞれの注釈エントリー内に留め、以前のバージョンが書いたコンマ小数を含め、数値をシステムロケールに依存せずに解析します
- ExportAnnotationsToFDF と ExportAnnotationsToFDFString は、注釈ごとに固有の /Rect を PDF ユーザー空間で書き込むため、書き出したファイルを再取り込みしても注釈はずれず、同じ位置に収まります
Version 3.539.29
修正
- ExportAnnotationsToXFDF と ExportAnnotationsToXFDFString は、XFDF の要求どおり、rect、opacity、width、dashes の各値をどのシステムロケールでもピリオド小数点で書き込みます
- ImportAnnotationsFromXFDF と ImportAnnotationsFromXFDFString は、コンマ小数のシステムでも標準的なピリオド小数の XFDF を変換エラーで失敗せずに読めるようになりました。また、不正な形式の数値に遭遇した場合は、インポート全体を中断する代わりにその値だけをスキップします
- 以前のバージョンがコンマ小数のシステム上で書き出した XFDF ファイル、たとえば
rect="50,500 80,250 70,750 100,125"やopacity="0,600"は、意図された値のまま取り込めます
Version 3.539.28
修正
- コンテンツストリームオプティマイザーは、Td、TD、T*、先行する Tm、または表示済みテキストの後にテキスト位置をリセットする
1 0 0 1 0 0 Tmを削除しなくなりました。以前は保存時のコンテンツストリーム最適化でこれが削除され、後続のグリフが移動していました。BT の直後の単位 Tm や、先行する単位 Tm を繰り返すだけの Tm は、従来どおり削除されます
Version 3.539.27
修正
- MovePage、およびページを並べ替える際の CollateDocumentsEx は、ページが親 Pages ノードから継承していた MediaBox、CropBox、Rotate を保持するようになりました。これにより、別の親の下へ移動されたページがサイズ、クロップ、向きを変えることはありません。以前は /Resources だけが引き継がれていました
- BalancePageTree は、継承された /Resources、/MediaBox、/CropBox、/Rotate が間接オブジェクトである場合、それを各ページへコピーする代わりに、そのオブジェクトへの参照として保持します
Version 3.539.26
修正
- AddPageMatrix、ScalePage、DeskewPage、TransformPageElement、DeletePageElement、RedactRegion、ConvertTextToPaths が書き出すページコンテンツは、常にピリオドを小数点記号とする通常表記を使います。そのため、コンマを小数点に使うロケールのシステムでも、これらの呼び出しが
0,5 0 0 0,5 0 0 cmのような壊れた演算子を生成することはなく、極端に小さい値が指数表記で書かれることもありません - ExportAnnotationsToFDF と ExportAnnotationsToFDFString は、システムのロケールに関係なく、注釈矩形をピリオド小数で書き込みます
- RecolorPage と RecolorDocument は、色のオペランドをコンマに限らずどの小数点記号でもロケール非依存の形で書き込みます
- AddPageMatrix、ScalePage、RedactRegion は、NaN や無限大の引数をページに書き込む代わりに拒否するようになりました
Version 3.539.25
修正
- フォームフィールドアピアランスの修復は、偽の /N アピアランス状態を作る代わりにアピアランスストリームに /Type と /Subtype を書き込むようになり、CMYK 境界色が 4 成分を超えて読み出されることも、フォームフィールド削除時に間接 /Count 値を通じてページ数を読み誤ることもなくなりました
- チェックボックススタイルの修復は、Off 状態が存在しない場合に 2 つのカスタムエクスポート状態を消し去る代わりに両方保持するようになり、ラジオボタンの子は値のセッターが比較に使うのと同じエンコーディングで on 状態を登録します
- /EF 辞書を持たない添付ファイル注釈でクラッシュしなくなり、音声注釈のエクスポートは 8 ビット音声のバイトスワップをやめ、マークアップ注釈の不透明度は一貫したスケールを使うようになり、SetAnnotRect は再び成功を報告します
- ドキュメントに間接オブジェクトコールバックがない場合でも、注釈アピアランスの再構築は解放済みストリームを構造オブジェクトテーブルに残さなくなりました
- peephole オプティマイザーは、途中で同じ側の別の色演算子に置き換えられた色設定命令を捨てなくなりました。単純に隣接する重複は従来どおり畳み続けます
- テキスト抽出は " 演算子を単語間隔と文字間隔の設定として扱い、行送りを壊さなくなりました。また FindInstructionsInRect は複数サブパスからなるパスに対して重なり合う範囲を報告しなくなりました
- EMF インポート: PolyDraw は正しいオフセットから点タイプフラグを読むようになり、POLYTEXTOUTW は常に UTF-16 でテキストを読み、文字列をまたいでグリフを蓄積しなくなりました。小さいテキスト出力のグリフマッピングが文字列全体を 1 文字に置き換えることもなくなり、グラデーション塗りは退化矩形でゼロ除算しなくなりました
- EMF インポートは、ファイルから指定されたビットマップヘッダーサイズ、リージョン矩形数、ポリゴン数、グラデーション頂点インデックスをすべてレコード境界にクランプし、Win64 でレコードポインターを 32 ビットに切り詰めるのをやめました
- JBIG2 ハーフトーン領域はパターンを正しいグリッド方向に配置し、スキップマスクのテストは固定小数点で比較し、保持された算術コンテキストはフォールトする代わりにデコーダー統計をスナップショットし、ランレングス記号テーブルは先頭位置のリピートコードを保護し、MMR 参照行はセンチネルで止まり、キャンバスからはみ出した記号は移動ではなく切り詰められ、不正なカウントは無関係な実行時エラーではなくデコード失敗として表面化します
- CCITT デコードは変化要素ルックアップを初期化し、残りビットより少ないビット要求を負のシフトなしで処理します。CCITT エンコーダーは垂直モードの全範囲をカバーし、行バッファーの先を 1 バイトだけ読み進めることがなくなりました
- TIFF 読み込みはすべての IFD 読み出しを境界チェックし、パレット画像がグレースケールのグラデーションとしてデコードされるのを防ぎ、StripByteCounts を 1 回だけ書き込み、要求ページ番号をクランプします。JPEG 再圧縮に失敗した際に、壊れたストリームを成功として報告することはなくなりました
- ドキュメント比較はストリームデータをオブジェクトフィンガープリントに取り込み、重複オブジェクトを 1 対 1 で対応付け、辞書キーをソートし、配列要素を区別した上で、変更なしという誤った判定ではなく比較失敗を報告するようになりました
- 並列レンダリングの名前構築処理が、1 文字のパターンに対して範囲外を読まなくなりました
- さらに多くのデモを修復しました: ファイルリストの判定が正しいファイルと対応付けられ、多機能ビューアは入力したパスワードで実際に再試行し、4 つのデモが冒頭に空白ページを付けなくなり、埋め込みファイル系とページ操作系のデモはサンプルと出力のパスを入力ファイルの隣に解決し、画像ストラテジーのヘルパーは依存するライブラリ結果をチェックします
- ActiveX コントロールは variant 入力を受け取るすべてのメソッドで結果を初期化するようになったため、拒否された variant がスタック上のゴミを返すことがなくなりました
Version 3.539.24
修正
- ヘッダー、フッター、スタンプにおいて、スタンプトークン &T が Author の代わりにドキュメントの Title を展開するようになりました
- PrinterMark 注釈は、ISO 32000-1 の要求どおり、/PN マーク種別をリテラル文字列ではなく PDF 名前オブジェクトとして書き込みます
- 複合フォームフィールドの子インデックス照会は、一時的な子フィールドをリークする代わりに解放するようになりました
- 再平衡化されたページツリーは、Resources だけでなく祖先ノードからも MediaBox、CropBox、Rotate を継承します
- PDF 日付がタイムゾーンを省略していても、XMP の CreateDate と ModifyDate は有効な ISO 8601 形式を保ちます。また x:xmpmeta ラッパーのない XMP インポートは、後続のメタデータ更新を捨てなくなりました
- PDF 文字列の 8 進エスケープは数字 7 で止まるため、\0689 は仕様の定義どおり \06 の後にリテラル 89 が続くものとしてデコードされます
- QDF パブリッシュは、ファイルクローズエラーで隠す代わりに、元の書き込み失敗を報告します
- FPC ビルドは、1 チャンクを超える Flate ストリームを、他のコンシューマーが切り詰めてしまうチャンク単位の連結メンバーではなく、単一の zlib ストリームとして圧縮・展開します
- EditFormField デモは初回実行時にサンプルフォームを生成し、見つからずに失敗することがなくなりました。また、いくつかのデモはドキュメントの読み込み失敗を報告し、空の PDF を黙って保存しなくなりました
変更
- ドキュメント検索インデックスは、全ロケールで 1 つの中国語タイトルを共用するのではなく、各言語固有のタイトルでローカライズされたセールスポイントページを登録するようになりました
Version 3.539.23
追加
- ネイティブ JBIG2 デコードは、セグメント長が既知のスタンドアロンなランダムアクセスファイル組織(カスタムハフマン表およびリファインメント画像を含む)を受け入れます
修正
- ランダムアクセス入力はデコード前にヘッダー順序、必須のファイル終端ヘッダー、合計データ長を検証し、切り詰められたデータや末尾の余分なデータを、古いビットマップを残すことなく拒否します
Version 3.539.22
追加
- ネイティブ JBIG2 デコードがシンボル辞書やテキスト領域のカスタムハフマン表をサポートし、不正な形式の表やサポートされていないプレフィックス長に対して明示的なエラーを報告します
修正
- ハフマンリファインメントデコードが宣言されたビットマップサイズを消費し、部分バイトのシンボルピクセルを保持することで、影響を受ける JBIG2 画像のテキスト破損を防止します
Version 3.539.21
修正
- Flate と LZW のデコードは、予測子 10 から 14 に対して辞書で指定されたアルゴリズムで全行をデコードするのではなく、行ごとの PNG アルゴリズムタグに従います。Predictor 12 で圧縮された正当な相互参照ストリームが再び読み込めるようになり、画像の行がずれてデコードされることもなく、1 つの画像内で行ごとにアルゴリズムを切り替えられます
Version 3.539.20
修正
- 最初の文書情報または標準識別子の編集時に、エディターオブジェクトの初期化前に元の XMP を取得するため、既存の作成者・文書識別子・カスタムプロパティが既定のメタデータで上書きされなくなります。Windows 上の Free Pascal でも文書情報の変更が XMP に反映され、xpacket ラッパーのない XML はそのまま保存されます
Version 3.539.19
修正
- 未編集の 10 進オブジェクトの保存では、パース時の精度をそのまま維持し、既定の出力精度に丸めなくなります。そのため CalRGB のガンマや行列といった較正済み色パラメーターが、普通の保存でページの色をずらすことはなくなります。新規作成・編集された数値は引き続き設定された精度を使います
Version 3.539.18
修正
- 文書情報の更新は対象フィールドの値だけを置き換えます。作成日時と更新日時が同じ間接文字列を参照している場合、更新日時の再生成が作成日時を書き換えることはなくなります
Version 3.539.17
変更
- バージョン検出と保存時の事前チェックは、機能ルールの収集中にマネージ文字列のコピーを繰り返さなくなり、大きな文書での走査オーバーヘッドを削減します。機能検出、バージョン要件、最初の非互換機能の診断は以前とまったく同じ動作です
Version 3.539.16
修正
SaveQDFToFileとConvertFileToQDFは、Free Pascal と Lazarus において通常の圧縮 Flate コンテンツストリームを空ストリームとして書き出さなくなります。明示的な開始位置からの展開では正しい 1 起点オフセットと入力全体の長さを適用します
Version 3.539.15
修正
- JBIG2 デコーダーはローカルおよびグローバルのプロファイルセグメントを安全に読み込み、標準のページ番号 1 を通じて最初のビットマップを取得します
- MMR ビットマップのデコードは最後のピクセルの後で読み取り位置を宣言されたセグメント境界に再調整するため、末尾の EOFB やパディングが次のセグメントヘッダーと誤認されなくなります
- カスタム Huffman テーブル、ランダムアクセス構成、未知または過大なセグメント長は明示的に失敗します。切り詰められたプロファイルや不正なセグメント参照はデコードを停止し、
TPLJBIG2Decoder.LastErrorが理由を報告し、失敗時には古いビットマップを消去します RepairQDFFileは対象ディレクトリ内で排他的に作成した一時ファイルを通じて公開し、一時ファイルの書き込み・フラッシュ・クローズが完了してから対象を置き換えます。in-place 修復と上書き出力は、書き込み・フラッシュ・置き換えのいずれかに失敗した場合に古いファイルを保持し、結果 0 とエラーコード 305 を報告します- 公開処理は一時ファイルの書き込み前に対象の既存 DACL を保持し、アクセス権を維持できない場合や対象が EFS で暗号化されている場合は明示的に失敗します。排他ロックされた、または読み取れない入力は読み取り例外を raise する代わりにエラーコード 401 を報告し、ファイル公開は Unicode および拡張長の Windows パスに対応します
Version 3.539.13
修正
- QDF ファイルの修復では、本体に行全体の
endstreamやendobjマーカーを含むストリーム内容を切り捨てなくなります。修復は既知のオブジェクト末尾より前の、最後の完全な終端マーカーの組を選びます - ストリーム内で繰り返されるオブジェクト固有の末尾マーカーは、対象ストリームを消去する前に修復を失敗させ、元のバイト列・長さ・位置を保ちます
RepairQDFFileは修復全体をメモリ内で完了し、成功後にのみ書き込み用に対象を開くため、拒否された入力がfmCreateで開いたファイルを切り詰めることはなくなります- ファイル指定文字列は文書化された
/UFを先、/Fを後備とする順序を守り、未知の/Pathキーに名前の優先度を与えません
Version 3.539.10
修正
- LZW デコードは、エンコーダー側の閾値を共有するのではなくデコーダー自身の閾値でコード幅を拡張するようになり、あらゆるコード幅のストリームや辞書リセットの繰り返しも正しくデコードできます。Pillow、libtiff、PDFium で検証済みです
- CMS 署名のパースは ContentInfo、EXPLICIT ラップ、SignedData、set、identity フィールドを通じて親の境界を追跡するようになり、範囲外のデータが証明書数や identity 照合に使われることはなくなります。外側オブジェクトの後ろの有効なパディングは引き続き受け付けます
- PageLabels が
/Kidsのナンバーツリーを使う文書でページラベルを更新する際、既存エントリをルートのリーフノードに変換するようになり、リーダーが無視する第 2 の排他的な/Numsエントリを追加しなくなります - Lazarus の MergePDF サンプルは入力を第 2 コマンドライン引数から読み込み、明示的な入力が 1 つだけの場合はパラメーターエラーとして扱い、生成が失敗する前に成功を示すヒントを出力しなくなります
Version 3.539.6
修正
- バッファ走査は、短い読み取りではなく
TStream.Readが 0 を返した時点で停止するようになり、数バイトずつ返すストリームでも走査データの末尾を取りこぼさなくなります - OID エンコーディングは最初の 2 つのアークを 1 つの base-128 サブ識別子にまとめるため、
2.999.3は06 03 88 37 03としてエンコードされ、黙って1.15.3になることはなくなります - 再利用した画像ストリームへプレビューを描画する際、まず古い内容を消去するようになったため、小さいレンダリング結果の後ろに前回の画像の末尾が残らなくなります
CopyPageRangesはドキュメントインスタンスをfinallyブロックで解放し、読み込み失敗・例外・正常完了のすべてをカバーします
Version 3.539.3
修正
- エラーコード 526 が 2 つの異なる意味を持つことはなくなりました。
PDFLIB_ERROR_TEXT_LOCATION_INVALID、PDFLIB_ERROR_TEXT_LOCATION_STALE、PDFLIB_ERROR_TEXT_LOCATION_READ_ONLYは、未割り当てだった 535、536、537 に移動します。これで 526 で分岐する呼び出し側が目にするのは、ドキュメントされていた JSON エクスポート失敗だけになり、コード 527 と 528 は使用されなくなります PDFlibErrorMessageは、コード 101 から 104 を実際に発生させる処理に基づいて記述します。この 4 つのコードは、メッセージテーブルが主張していたパースエラーではなく暗号化パラメーターに属するもので、暗号化強度の失敗が "Invalid PDF structure" を報告することはなくなりますPDFlibErrorMessageは、ライブラリが発生させるすべてのコードについて実際のメッセージを返します。バイト範囲と HTTP のオープン失敗、ネットワークファイルのオープン、生の暗号化キーサイズ、JSON エクスポート、marked-content および clip-path ハンドルの拒否、番号の振り直しが行われたテキスト位置コード、埋め込み可能フォントと PDF/VCR と PDF/E のコンプライアンスコード、重複フィールドとフォームスクリプトの各ケースは、汎用の "<segment> error (NNN)" テキストへフォールバックしていましたLastErrorCodeのリファレンスページは、以前欠けていた重複フィールドのコード 705 を含むコードセット全体を列挙し、廃止された 527 と 528 のエントリを表示しなくなります
Version 3.539.2
修正
- directory が実データより多い値を宣言する TIFF は、完全に拒否されるようになりました。従来は値を捨てても件数を残したため、後続のリーダーが空配列の先頭要素を読もうとしていました
- ヘッダーが形式外のカラータイプやビット深度を持つ PNG は、色チャンネルなしでデコードされずに拒否されます。以前はこの状態で行フィルターが空バッファーに渡っていました
- 定義された 9 バイトより短い PNG resolution チャンクは、与えられたデータの先を読みません
- 2 次元の CCITT Group 3 および Group 4 画像を Free Pascal と Lazarus でデコードできます。従来は参照線検索が生成されていない配列を返し、そのコンパイラーでは空になっていました
Version 3.539.1
修正
- viewer のディスクキャッシュは、ライブラリー更新のたびにレンダリング済みビットマップを破棄します。比較していたバージョンマーカーがライブラリーバージョンと別管理で古くなり、更新後に古いビルドのキャッシュを再利用できる状態になっていました
- Free Pascal および Lazarus ビルドで 16 ビット
BI_BITFIELDSビットマップを再び正しく読めます。extended info header を使うファイルではチャンネルマスクを誤ったオフセットから取得し、色が崩れていました - device backing のないビルドでもビットマップ行を誤読しなくなりました。1 ビットおよび 4 ビット行は整数除算でサイズを求めていたため各行末尾のピクセルが失われ、保存時にはピクセルブロックが 1 バイトずれて書き込まれていました
- サイズを事前に把握できない場合でも、図面のメタファイルへの取り込みで空画像は生成されません。記録されるフレームは VCL と同様に図面自身から取得します
- 宣言されたパレットサイズが色深度を超えるビットマップの読み込みは、その値を信じずに拒否します
- 印刷ジョブ状態の問い合わせは開いたスプーラーハンドルを解放します。そのためジョブ取得で呼び出しごとにハンドルが漏れなくなりました
Docs\index.htmlが再び言語ポータルになります。ドキュメント同期が簡体字中国語のリファレンスナビゲーション コピーで置き換え、その項目リンクは存在しないディレクトリーを指していました
変更
- Lazarus パッケージ
PDFlibPasLaz.lpkは、オプションの LZW encoder、Brainpool、Ed448、ML-DSA、PDF printer、外部 JBIG2 encoder の各ユニットをメタファイル宣言とともに列挙し、コマンドライン ビルドとユニット構成を揃えました build-Win64-Demo-Laz.cmdはbuild-Lazarus-Demo.cmd win64に転送します。両方の入口でデモ実行ファイルがデモソースディレクトリーではなくbin\x86_64-win64に入ります
Version 3.539.0
追加
- Free Pascal と Lazarus は、Win64 に加えて 32 ビット Windows のビルドもサポートするようになりました。PDF の作成、読み込み、暗号化と JPEG 2000 画像に対応します
- Lazarus ライブラリ、試用版、デモ、コンソールテストのビルドスクリプトは
win32またはwin64を受け付け、各アーキテクチャー用に出力ディレクトリーを分けた Win32 ホストのクロスコンパイラーをサポートします
変更
- Win32 では外部エンコーダーが要求された場合に組み込みの Pascal JBIG2 エンコーダーを使用します。静的リンクされた外部エンコーダーは Win64 で引き続き利用できます
- FPC ビルドは同梱の Pascal zlib 実装による圧縮を含み、システムの検索パスから
zlib1.dllを読み込まなくなりました
Version 3.538.0
追加
- Free Pascal および Lazarus ビルドで外部 JBIG2 エンコーダーを利用可能になりました。プロジェクトに新しい PDFlibJBIG2EncDLL ユニットを追加し、
pdflibjbig2enc.dllを実行ファイルの隣に置けば、AddImageJBIG2FromStreamExおよびその他の JBIG2 エントリポイントは、Delphi での場合とまったく同じように外部エンコーダーの要求を尊重します。DLL がなければ要求は組み込み Pascal エンコーダーへフォールバックし続けるため、DLL を同梱しないプロジェクトは影を受けません - 再頒布可能な新しい
DLL\JBig2Enc\Win64\pdflibjbig2enc.dllと、それを生成するビルドスクリプト
Version 3.537.0
追加
- Free Pascal および Lazarus ビルドがメタファイルをベクトルページコンテンツへ変換します。
ImportEMFFromFile、ImportEMFFromStream、それらの Ex 系、LoadFromCanvasDC、NewPageFromCanvasDCは、Delphi での場合と同様に、埋め込みフォント付きの実際の PDF 描画オペレーターをそこで生成するようになり、モードが利用できないと報告することはありません。テキストは選択・検索可能なまま保たれ、出力はラスター化インポートの数分の一のサイズになります
Version 3.536.7
修正
- Free Pascal および Lazarus でプリンター列挙が実際の名前を返します。以前はすべてのプリンターが最初の 1 文字だけで返され、そのためプリンター選択、カスタムプリンタープロファイル、印刷自体がインストール済みのどのプリンターも拒否していました
GetPrinterNamesは VCL のないビルドでクラッシュしなくなりました。GetLatestPrinterNamesがすでにそうしていたように、スプーラーへ直接問い合わせます
Version 3.536.6
修正
- メタファイルをベクトルページコンテンツへ変換する処理は、対応できないビルド上で失敗を報告するようになりました。以前は内容が空のピクチャーを返していました。
ImportEMFFromFile、ImportEMFFromStream、それらの Ex 系、LoadFromCanvasDCはいずれも、そこでは有効に見える画像 id を返していたため、ページは理由を示す何もなしに真っ白になっていました。同じメタファイルを画像としてインポートする処理は影を受けず、同一のピクチャーを保持します - 変換を実行できない場合、キャンバスキャプチャーとメタファイルインポートはクラッシュしなくなりました。どちらのエントリポイントも、結果のピクチャーが存在するかを確認せずに使用していたためです
Version 3.536.5
修正
- Free Pascal および Lazarus でラスター化メタファイルインポートが機能します。
ImportEMFFromFile、ImportEMFFromStreamおよびそれらの Ex 系はラスター化を求められても何も返さず、LoadFromCanvasDCは同じモードでクラッシュしていました。画像ローダーへ渡される描画ストリームが、そこでは読み取れる形式ではなかったためです。ベクトルパスは影を受けませんでした
Version 3.536.4
修正
- Free Pascal および Lazarus でのメタファイルキャプチャーが物理サイズを再び報告するようになり、
LoadFromCanvasDCおよびその他のキャンバスキャプチャーエントリポイントは、サイズゼロのフレームで失敗する代わりに描画をインポートします - VCL を使わないフォントオブジェクトが実際の
PixelsPerInchを報告し、Assignでコピーされるようになりました。以前は両方とも無機能だったため、フォントから描画解像度を取得するコードはサイズゼロのキャンバスを要求し、準備済みのフォントをキャンバスへ渡しても黙って古いフォントが使い続けられていました - Free Pascal で作成されるメタファイルは、他のすべてのプラットフォームと同様に、既定で拡張形式になります。以前は呼び出し元が自らフラグを設定しない限り、レガシーな 16 ビットレイアウトで保存されていました
Version 3.536.3
修正
- Free Pascal および Lazarus ビルドが 4、8、16 ビットの BMP 画像をインポートできるようになりました。
AddImageFromFileとAddImageFromStreamは、これらのビット深度(ペイントソフトが書き出す 16 ビットBI_BITFIELDS形式を含む)に対して画像を返さずに黙って終了していました。VCL を使わないビットマップリーダーが 1、24、32 ビット入力しか理解しなかったためです
Version 3.536.2
修正
- Free Pascal および Lazarus でクラシック GDI メタファイルエクスポートが機能します。
RenderPageToMetafileFileとRenderPageToMetafileStreamはmfEMFとmfWMFでアクセス違反を起こしていました。VCL を使わないメタファイルキャンバスが、ブラシ、ペン、フォントを持たない空の代替品だったためです。両形式とも実際の拡張メタファイルへ記録して書き出されるようになり、mfWMFは .wmf ファイルに必要な placeable ヘッダー付きで出力されます
Version 3.536.1
修正
- Free Pascal および Lazarus ビルドが有効な 1、4、8 ビット BMP ファイルを書き出せるようになりました。VCL のビットマップを置き換える代替ビットマップがカラーテーブルをまったく出力していなかったため、パレットインデックスのビットマップはどのリーダーにも拒否され、すべて黒のパレットに対して描画されていました
- Free Pascal で二値画像インポートが再び機能します。
AddImageCCITTFromFile、AddImageCCITTFromStreamおよび JBIG2 の同等関数は、与えられた 1 ビットビットマップを読み取れるようになりました。以前は 24 ビットと 32 ビットの BMP 入力しかデコードされず、失敗していました
Version 3.536.0
追加
- Free Pascal および Lazarus ビルドが直列ループへフォールバックする代わりに並列バッチパスを実行するようになりました。
RenderPagesToFilesParallel、ドキュメント最適化の背後にある最適化バッチ、並列タイルレンダリングが、いずれも Delphi の動作に合わせてそこで CPU コア全体へ分散します
変更
- 並列ページレンダリングは、ワーカーへ分散する前に呼び出し元スレッドで最初のページをレンダリングするようになりました。これにより、レンダリングエンジンは各ワーカーが同時に初期化するのではなく、1 回だけ初期化されます
Version 3.535.0
追加
- Free Pascal および Lazarus ビルドに JPEG 2000 エンコーダーが同梱されるようになりました。
EncodeImageToJPXStream、EncodeImageToJPXFile、AddImageJPXFromFile、AddImageJPXFromStream、AddImageJPXFromStringは、可逆・非可逆の両モードで、Delphi とまったく同じようにそこで JPXDecode 画像を生成します - Free Pascal、macOS、FireMonkey ビルドが使用する非 VCL ビットマップは、非圧縮の 24 ビットおよび 32 ビット BMP ストリームを読み込み、アルファ形式を報告するようになりました
修正
- Free Pascal ビルドで Windows イメージングバックエンドを経由する画像デコードがクラッシュしなくなりました。ストリームは、バックエンドが受け付ける形式で渡されるようになりました
- 非 VCL ビルドでビットマップを別のビットマップへ代入すると、ターゲットのビットマップを空のままにする代わりにピクセルがコピーされます。以前は画像変換パスで黙って真っ白な出力になっていました
Version 3.534.1
修正
- 内蔵 TIFF デコーダーは、サポートされていない BigTIFF やタイル形式のレイアウトを明示的な診断情報とともに拒否するようになり、割り当ての前にデコード後の寸法とストリップサイズの範囲検査を行います
Version 3.534.0
変更
CheckFileComplianceと PDF/UA プリフライトは、埋め込み単純フォントおよび CID フォントの幅、完全な Type 1/CharSetと CID/CIDSet宣言、マーク付きコンテンツの外側で呼び出されるテキストを含む Form XObject、そして.notdefに解決されるテキストオペランドを検証するようになりました
Version 3.533.0
追加
TPDFlibPKCS11Clientは、明示的に選択された証明書を持たないML-DSA鍵を検出し、そのパラメータセットを報告し、PKCS #11 3.2 のCKM_ML_DSAメカニズムを通じて元のメッセージへ署名できます
Version 3.532.0
変更
- 一般的な
/ASCII85Decodeと/FlateDecodeフィルターチェーンを使用する大規模ストリームが、中間表現を実体化せずに、メモリ使用量を抑えたパイプラインでエンコードおよびデコードするようになりました
Version 3.531.0
追加
AddWebCaptureCommand、GetWebCaptureCommandCount、GetWebCaptureCommand、ClearWebCaptureCommandsは、ネットワーク取得を行わずに、標準カタログ/SpiderInfoのWeb Captureコマンドメタデータを作成、列挙、削除します
Version 3.530.0
追加
BPLoadCurve、BPKeyGen、BPSignFixedK、BPVerifyは、純粋Pascalで、RFC 5639 の素体曲線 brainpoolP256r1、brainpoolP384r1、brainpoolP512r1 上のECDSAを実装します。すべての曲線幅で共有される33リムのradix-2^16演算、ビット逐次のモジュラー約分、明示的なエイリアスガード付きのヤコビアン倍算と加算、フェルマー逆元計算、署名時に呼び出し元が指定するナンスを備えます。独立した実装で生成され双方向で相互検証された既知解ベクトルが、ラウンドトリップと改ざん拒否の回帰テストとともにすべての曲線で合格します
Version 3.529.0
追加
Ed448PublicKeyFromSeed、Ed448Sign、Ed448Verifyは、純粋Pascalで、edwards448 上のRFC 8032 PureEdDSAを実装します。2^448 = 2^224 + 1 のSolinas畳み込みを用いた16リムのradix-2^28 Goldilocks体演算、a = +1 曲線向けの強一様な積形式の群加算、114バイトのSHAKE256スカラーに対する群の位数を法とするダイジェスト全体のモジュラー約分、余因子4による検証を備えます。RFC 8032 section 7.4 の既知解ベクトルは両方ともバイト単位で一致し、ラウンドトリップ、改ざん拒否、長さ検証の回帰テストとともに合格します
Version 3.528.0
追加
MLDSA65KeyGen、MLDSA65Sign、MLDSA65Verifyは、1952バイトの公開鍵、4032バイトの秘密鍵、3309バイトの署名を持つFIPS 204 ML-DSA-65を実装しますMLDSA87KeyGen、MLDSA87Sign、MLDSA87Verifyは、2592バイトの公開鍵、4896バイトの秘密鍵、4627バイトの署名を持つFIPS 204 ML-DSA-87を実装します
Version 3.527.0
追加
PDFlibMLDSAは、決定論的シードによる鍵生成、ヘッジドまたは決定論的な署名、上限付き棄却サンプリング、署名検証を備えた、純粋PascalによるFIPS 204 ML-DSA-44実装を提供しますMLDSA44KeyGen、MLDSA44Sign、MLDSA44Verifyは、標準の1312バイト公開鍵、2560バイト秘密鍵、2420バイト署名のサイズを使用し、最大255バイトまでのコンテキストに対応し、公式の既知解ベクトルで検証されています
Version 3.526.0
追加
- ストリーミングSHAKE XOFコンテキスト(
PLShakeXOFInit/PLShakeXOFAbsorb/PLShakeXOFFinalize/PLShakeXOFSqueeze)は、SHAKE128(rate 168)とSHAKE256(rate 136)の両方で、Keccak順列にわたって任意のバイト数を出力でき、1回呼び出し用のPLShakeXOFラッパーを備えます。ブロックをまたぐ200バイト出力は、両バリアントの参照ダイジェストで検証されています
Version 3.525.0
変更
SHAKE256ByteArrayとSHAKE256StreamRangeが、スポンジレートの136バイトまで(従来は64バイト)の出力を受け付けるようになり、Ed448のハッシュ長である114バイトでの1回出力ダイジェストが可能になりました。空のメッセージとabcメッセージの114バイト出力をカバーする新しい既知解テストが追加されています
Version 3.524.0
追加
DownsampleImagesExは、宣言されたカラースペースとコンポーネントあたりのビット数から各画像を2値、グレースケール、カラーに分類し、クラスごとのDPI予算とJPEG品質を1パスで適用します。2値スキャンは可逆的に再エンコードされ、再エンコードが大きくなった場合に元のバイト列を保持する only-if-smaller フラグを備えます
Version 3.523.0
追加
CopyForeignObjectは、読み込んだ別のドキュメントから間接オブジェクト1つとその完全な参照クロージャを選択ドキュメントへディープコピーし、共有参照がコピー内でも共有のまま保たれるようオブジェクト番号を再マッピングします
Version 3.522.0
追加
SetPagePieceInfo、GetPagePieceInfo、ClearPagePieceInfoは、アプリケーション名をキーとするページレベルのプライベートデータ辞書(ISO 32000-2 14.5)を管理しますAddNamedPageとGetNamedPageは、カタログの /Names /Pages 名前ツリーを通じてページを名前で登録および解決します
Version 3.521.0
追加
GetImageListItemNativeDataToString、GetImageListItemNativeFormat、SaveImageListItemNativeDataToFileは、リスト内の任意の画像(JPEG、JPEG 2000、JBIG2、CCITT、Flate、raw)のエンコード済みコーデックストリームをデコードせずに取り出し、パススルーワークフロー向けに元のバイト列を保持します
Version 3.520.0
追加
AnalyzeModificationsは、保存済みリビジョン以降のすべての変更を、LTA更新、フォーム入力、注釈のホワイトリストに照らして分類し、全体の変更レベルを返しますGetModificationLevel、GetModificationFindingCount、GetModificationFindingLevel、GetModificationFindingObjNum、GetModificationFindingDetailは、直近の分析で分類された検出結果を公開します
Version 3.519.0
追加
CompareWithは、選択ドキュメントと保存済みリビジョンの間で構造比較を行い、オブジェクト番号のずれを無視するコンテンツフィンガープリントによって、すべての間接オブジェクトを追加、削除、変更に分類しますGetCompareFindingCount、GetCompareFindingKind、GetCompareFindingObjNum、GetCompareFindingDetailは、ページ数の差異を含め、直近の比較の検出結果を読み取ります
Version 3.518.0
追加
SHAKE256ByteArrayとSHAKE256StreamRangeは、バイト範囲の2セグメント読み取りと1..64バイトの出力に対応するSHAKE256拡張可能出力ダイジェスト(ISO/TS 32001、RFC 8702)を提供し、NIST FIPS 202 の既知解テストで検証されています
変更
- Keccakコアがドメインセパレータバイトを持つようになり、SHA-3とSHAKEが1つの順列実装を共有します。CMS署名プロファイルでは、SHAKE256はEd448の内部ダイジェストとして引き続き予約され、ダイジェストセレクターからは意図的に除外されています
Version 3.517.0
追加
AddPageAssociatedFileFromFileとAddPageAssociatedFileFromStringは、ドキュメントカタログの代わりに、単一ページの /AF 配列(ISO 32000-2 14.13)へ埋め込みファイル仕様を関連付けますGetPageAssociatedFileCount、GetPageAssociatedFileEmbeddedIndex、ClearPageAssociatedFilesは、保存と読み込みのラウンドトリップ後もページレベルの関連ファイルを列挙および削除しますSetOptionalContentConfigInfoは、構成名、作成者、レイヤーパネルのリストモードといった表示用メタデータを既定のオプショナルコンテンツ構成に書き込みます
Version 3.516.0
追加
ApplyContentFilterChainとTPDFContentFilterChainは、ページのすべてのコンテンツレイヤーに対して命令レベルのコンテンツフィルターを実行します。順序付きチェーン、早期終了の制御、ユーザーデータのパススルーに対応しますExportDocumentJSONとGetDocumentJSONは、base64ペイロードを持つストリーム辞書とトレーラーを含む完全なドキュメントオブジェクトグラフを、qPDF形式のJSON構造へシリアライズしますSetPDFDeclarations、GetPDFDeclarationsURI、GetPDFDeclarationsRole、GetPDFDeclarationsVersion、GetPDFDeclarationsCount、HasPDFDeclaration、ClearPDFDeclarationsは、機械可読なPDF Declarations適合宣言の書き込み、読み取り、削除を行いますAuditPageTree、AuditXRefStructure、AuditObjectReachability、AuditStreamLengths、AuditFontEmbedding、AuditColorSpacesは、重要度で等級付けした検出結果とともに、6つの独立した構造診断パスを実行しますGetAuditFindingCount、GetAuditFindingSeverity、GetAuditFindingItem、GetAuditFindingDetailは、直近の監査呼び出しの検出結果を読み取ります
Version 3.515.0
追加
ExecuteFormFieldScriptEventとTPDFlibFormScriptEventは、Event、Field、Document の各プロパティを制御しながら、上限付きのKeystroke、Format、Validate、Calculateフィールドイベントを実行しますSetFormScriptLimits、GetFormScriptLimitsJSON、GetFormScriptDiagnosticsは、ソース、操作、ネスト、文字列、プロパティアクセスの各予算を設定および報告します
変更
- 安全なフォームスクリプトランタイムが、読み取り専用のソースフィールドおよびターゲットフィールドのメタデータ、ドキュメントフィールドの検索、キーストローク選択状態を公開するようになりました。値のみに依存する互換性は維持されます
セキュリティ
- スクリプト実行は、ボタン値イベント、オブジェクトの変更、範囲外の選択を拒否するようになり、実行と依存関係分析に独立したリソース制限を適用し、上限付きのパーサー失敗位置を報告します
Version 3.514.0
追加
SetPDFEModeは、PDF 1.6構文、同期されたInfoとXMPの識別情報、ライフサイクルメタデータ、埋め込みのカラーマネージド出力インテントを備えたPDF/E-1エンジニアリングドキュメントを作成しますGetPDFEDiagnosticsと適合テスト7は、オブジェクト、コンテンツ、再帰の各予算を上限として、保存時、直接ファイル、共有パイプラインのPDF/E-1検証を提供します
変更
- PDF/E-1での保存では、識別情報、ライフサイクルメタデータ、許可された暗号化、出力インテントの一貫性、XFAの除外、安全でないアクションに対するゲートが強制されるようになりました。プリフライトはさらに、デバイスカラースペース、コンテンツ演算子、フォント、注釈、フォーム、オプショナルコンテンツ、外部ファイル参照、グラフィックス状態、3Dストリームの制限を監査します
Version 3.513.0
追加
SetPDFVCRModeとテンプレートおよびプレースホルダースコープのAPIは、PDF/X-4を基盤としてPDF/VCR-1のPassThrough置換テンプレートを作成しますGetPDFVCRDiagnostics、GetPDFVCRManifest、適合テスト6は、保存時、直接ファイル、共有パイプラインの検証に加えて、検証済みのJSONフィールドとプレースホルダーの抽出を提供します
変更
- PDF/VCRでの保存では、識別メタデータ、1つの直接テンプレートルート、一意に宣言されたフィールド、有効なページ選択、リーフ置換プレースホルダー、完全な構造ツリーにわたる正確なページとMCIDのバインディングが強制されるようになりました
Version 3.512.0
追加
SetPDFRModeとPDF/RラスターページAPIは、対応する圧縮入力をトランスコードせずに、raw、CCITT Group 4、JPEGの各データから制限付きラスター交換ドキュメントを作成しますGetPDFRDiagnosticsと適合テスト5は、メモリ内、直接ファイル、共有パイプラインのPDF/R検証を提供します
変更
- PDF/Rでの保存では、必須のマーカー、バージョン、暗号化プロファイル、世代0のオブジェクト、制限付き辞書とフィルター、単一コンテンツストリーム、ラスター専用の演算子、順序付きストリップリソース、色と解像度の一貫性、ページ全体のカバレッジが強制されるようになりました
Version 3.511.0
追加
TPDFlibFormTextDirection、SetTextDirection、GetVisualCaretOrder、MoveVisualCaretは、混在方向のフォーム編集向けに、自動または明示的な段落方向と、書記素単位で安全な物理キャレットナビゲーションを追加しますResolvedTextDirectionとVisualCaretPositionは、実効的な段落方向を公開し、双方向境界での分割キャレットスロットを区別します
変更
- 整形済みテキストのランは、混合した左から右と右から左のコンテンツに対して埋め込みレベルの視覚的並べ替えを適用するようになりました。フィールド値は論理的なUTF-16順序のまま維持されます
Version 3.510.0
追加
MinimumSlotHeightは、現在の領域が短すぎる場合、クローンやキャプチャの前に動的コンポーネントの構成を延期しますMinimumFollowingHeightは、後続コンポーネントのために呼び出し元定義の最初の領域を持つ最終フラグメントを保持し、中間フラグメントには制約を課しませんTPDFlibDynamicRetryReason、LastRetryReason、LastRequiredSlotHeightは、配置が延期された理由と判明している必要な高さを公開します
変更
- フロースペースの再試行では、確定済みフラグメント、コンポーネント状態、構成インデックス、ページコンテンツが保持され、分離された試行のみが破棄されるようになりました
Version 3.509.0
追加
TPDFlibDynamicPaginationPolicyは、分割、1回限りのkeep-together、厳密な完全配置の各モードを、固有の再試行結果と観測可能な保留状態とともに追加します
変更
- 延期された動的コンポーネントの試行は、キャプチャ済みコンテンツと可変状態をアトミックに破棄するようになりました。厳密な配置では比例縮小は受け入れますが、部分的またはクリップされた出力は決して生成しません
Version 3.508.0
追加
TPDFlibFormSession.DispatchInputEventは、型付きのプラットフォーム非依存ポインター、ホイール、名前付きキー、確定済みテキストの各イベントを受け付け、フォーカス、ホバー、押下、選択、値変更の状態を返します
変更
- フォーム入力のディスパッチでは、順序付きのWidget
/E、/X、/D、/Uポインター遷移、キャプチャの取り消し、書記素単位で安全な編集、行を考慮したキャレット移動、標準の選択と履歴ショートカット、ボタンの起動、選択ホイールのナビゲーションが強制されるようになりました
修正
- BackspaceとDeleteの履歴では、アトミックな置換のために内部で使用されていた一時的な書記素選択ではなく、キー押下前にユーザーに見えていたキャレットが復元されるようになりました
Version 3.507.0
追加
TPDFlibFormSessionが、可用性の照会、保持ステップ数、設定可能な容量、明示的な履歴クリアを備えた、上限付きのフィールドレベルの元に戻す/やり直しを提供するようになりました
変更
- フォーム編集履歴は、コンパクトなテキスト差分を保存し、アクションやコールバックを再ディスパッチせずに値と方向付き選択を復元し、新しい編集の後にはやり直しブランチを破棄し、編集ライフサイクルの境界でクリアします
Version 3.506.0
追加
TPDFlibFormSessionが、拒否可能な選択置換、切り取り、呼び出し元指定の貼り付け操作を、可変のホストテキスト編集コールバックと書記素単位で安全な/MaxLen強制とともに提供するようになりました
変更
- フォームセッションの確定では、フィールドを変更する前に利用可能な検証および整形アクションが実行され、拒否された編集はアトミックに保持され、検証済みの生の値は整形後のWidget外観と分けて管理されるようになりました
Version 3.505.0
追加
- UTF-16コード単位、Unicodeコードポイント、拡張書記素クラスタによる方向付きフォームフィールドテキスト選択範囲を追加しました。アンカーとキャレットの報告、キャッシュ済み境界変換を備えます
Version 3.504.0
追加
- オーバーフローを考慮した動的コンポーネント配置を追加しました。拒否、クリッピング、比例縮小の各ポリシー、独立した整列、最終ページとジオメトリ、変換の報告を備えます
Version 3.503.0
追加
TPDFlibDynamicComponentSessionは、ページコンテキスト、使用サイズの報告、完了状態、リセット、確定状態のスナップショットとともに、状態を持つページフラグメントを一度に1つ遅延構成しますReleaseCapturedPageは、最終配置後のForm XObjectキャプチャハンドルを無効化します。ページリソース参照と既存の呼び出しは保持されます
変更
- 動的コンポーネントの試行は、隔離されたForm XObject内のクローン状態に描画し、検証済みの配置後にのみ確定するようになりました。拒否されたコールバック、無効なジオメトリ、例外が発生した場合は選択ページが復元され、宛先コンテンツとコンポーネント状態は変更されません
Version 3.502.0
追加
TPDFlibFormSessionが、回転を考慮した視覚的CropBoxのWidget矩形、最前面のヒットテスト、点ベースのフォーカス、前方または後方のキーボードフォーカスナビゲーションを提供するようになりました
変更
- タブ順序は、ページ
/Tabsの行、列、構造、注釈配列、PDF 2.0 Widget順序にViewerPreferencesの方向を適用し、ページ間で安定した順序付けと上限付きの構造ツリー走査を実現します SetTabOrderModeは、5つの標準モードすべてを検証するようになり、AとWに対してはPDF 2.0を自動的に選択します
Version 3.501.0
追加
ApplyRepeatedPageFragmentは、キャプチャした1つのForm XObjectを、型付きのPagination、Layout、Page、PDF 2.0 Backgroundアーティファクトとしてページ範囲に配置します。コンテンツストリームとリソースはすべての配置間で共有されます
修正
- アーティファクトプロパティ辞書が、公開パスとテーブルレイアウトパスで必須の
BDCマークコンテンツ演算子を使用するようになりました。PDF 2.0のアーティファクトタイプとサブタイプは、必要な出力機能バージョンを選択します
Version 3.500.0
追加
SetTextFlowPaginationLinesは、テキストボックス末尾に残す孤立行(オーファン行)の最小数と、次のボックスまたは列のために維持されるウィドウ行の数を独立して制御します
変更
- テキストフローの改ページは、上限付きの先読みで必要な末尾行だけを先へ送るようになりました。分割が不可能な場合はフローを変更せず、より大きな領域での配置に備えます
Version 3.499.0
追加
TPDFlibFormSessionは、Widgetフォーカスとブラーアクション向けの型付きホストコールバックとともに、プラットフォーム非依存のAcroFormフォーカス、テキストと選択肢の編集、0始まりのUTF-16選択、確定とキャンセルの状態を提供します
変更
- 確定されたセッション値は、テキスト上限を強制し、値変更を報告する前に、影響を受けたダーティな外観と計算クロージャのみを再生成するようになりました
Version 3.498.0
追加
GetDirtyFormAppearanceCountとRegenerateDirtyFormAppearancesは、変更されたAcroForm Widgetオブジェクト参照を追跡し、重複除去した現在セッションの計算クロージャのみを再生成します
変更
RegenerateFormAppearancesは、階層フィールドをルートから一度だけ走査し、成功したWidget再生成の実際の数を報告し、失敗した外観を再試行のために保持するようになりましたUpdateAppearanceStreamは、生成の失敗を正確に報告し、失敗したWidgetをNeedAppearancesを有効にしたまま保留するようになりました
Version 3.497.0
追加
SetOutputIntentMixingHintsは、PDF 2.0のインキ濃度(solidity)と物理的な印刷順序を書き込み、無効な値、重複する名前、欠落した順序、分光データで既に表現されている色材を拒否しますSetOutputIntentSpectralDataは、上限付きのCxF/X-4スポットカラー特性化ストリームを埋め込み、反復および色材間の割り当てで同一データを再利用し、一致するSpotInkCharacterisationを厳密に1つ要求します。ClearOutputIntentColorantDataは、両方の色材メタデータ辞書を削除します
変更
GetEffectivePageOutputIntentJSONは、作成済みおよび再読み込み済みドキュメントについて、混合濃度、印刷順序、分光色材、デコード済み分光データの有効性を報告するようになりました- PDF/Xプリフライトは、OutputIntent
MixingHintsとSpectralDataを監査するようになりました。禁止されたDotGain、濃度範囲、印刷順序タイプ、色材の競合、ストリームデコード、一意のCxFスポットインキ一致を含みます
Version 3.496.0
追加
DAOpenFileWithEncryptionKeyとDAOpenFromStreamWithEncryptionKeyは、認可された16進数のファイル暗号化キーからパスワード導出なしで暗号化ドキュメントを開きます。対応するDLLファイルエクスポートと明示的な検証状態を備えます
セキュリティ
- 生キーによるファイル入力は常にソース読み取り専用で、リビジョン固有の正確なキー長と利用可能な
/Uまたは/Permsベリファイアを強制し、ベリファイア欠落時の復旧が有効でも不一致を拒否し、ハンドルが閉じられる際に保持されたキーマテリアルを消去します
Version 3.495.0
追加
SetXRefLoadPolicyとGetXRefLoadPolicyは、選択ドキュメントとDirect Access入力に対して、厳密、互換、復旧の各読み込みポリシーを選択および報告します
変更
- 厳密読み込みでは、正確なヘッダー、最終マーカー、宣言されたオフセット、固定幅のテーブルエントリ、クロスリファレンスストリームメタデータ、リンクされたすべての
/Prevまたは/XRefStmセクションが要求されるようになりました - 互換読み込みは、生データの再構築に入ることなく制御されたオフセットと構造の修復を維持します。復旧読み込みは、トップレベルオブジェクトと圧縮オブジェクトを再構築し、欠落したトレーラーを合成できます
- クロスリファレンス診断は、選択されたポリシー、順序付けられたパーサーの判断、セクションごとの互換性フラグを報告するようになりました。拒否されたハイブリッド側チェーンとDirect Access復旧のエビデンスを含みます
Version 3.494.0
変更
- 明示的なシードなしの完全な非暗号化決定論的保存では、初期トレーラーの両方の
/IDエントリが、直列化されたドキュメントヘッダーと本体にわたるストリーミングSHA-256ダイジェストの最初の16バイトから導出されるようになりました - コンテンツダイジェストは、以前のトレーラー識別子、クロスリファレンスデータ、オフセット依存のトレーラーを除外し、生成されたリソース識別子とXMPインスタンスUUIDを正規化することで、ページ、リソース、添付ファイル、メタデータの変更が結果を左右するようにします
- 決定論的モードが有効な間、内部リソース名と埋め込みフォントのサブセットタグは安定しています。辞書を圧縮オブジェクトストリームへ格納する出力も含まれます。既定の保存では引き続きランダム化された識別子が使われます
Version 3.493.0
追加
LoadFromMappedFileとDAOpenMappedFileは、上限付きの読み取り専用マップドビューを通じてローカルPDFを開きます。マッピングを必須にするか、移植可能なファイルストリームへのフォールバックを許可するオプションがありますGetMappedFileInfoとDAGetMappedFileInfoは、アクティブなマッピング状態、ファイルとウィンドウのサイズ、現在のビュー、読み取り量、再マッピングの活動を報告します
変更
- マップドソースは、アロケーション境界に整列した1つのウィンドウを保持し、大きな遅延オブジェクト読み取りやストリーム読み取りの間それを再マッピングして、アドレス空間の使用量をファイルサイズとは独立に制限します
- ローカルのマップドソースとコールバック対応ソースは、カーソル非依存の絶対オブジェクトスライス読み取りを共有するようになりました。既存のファイル読み込みAPIは従来の動作を維持します
Version 3.492.0
追加
GetPageThumbnailDataToStreamとGetPageThumbnailDataToStringは、エンコード済みまたはフィルターデコード済みのページサムネイルペイロードを公開し、DeletePageThumbnailは選択ページを変更せずにページメタデータを削除します
変更
- サムネイルの存在とメタデータの照会は、画像ストリームを要求するようになりました。不正な非ストリームエントリは、使用可能なサムネイルとして報告される代わりに、削除可能なまま維持されます
- raw出力は上限付きチャンクでコピーされ、デコード済み出力はストリーミングフィルターパイプラインを再利用します。ネイティブペイロードを必要とする呼び出し元のために、DCTやJPXといった最終的な画像エンコーディングは保持されます
Version 3.491.0
追加
InsertPageElementClipPath、ReplacePageElementClipPath、DeletePageElementClipPathは、正確なページ要素にローカルクリッピングを追加するか、キャプチャしたソースコンポーネントを非ゼロと偶奇の塗りつぶしルールで編集します
変更
- クリッピングコンポーネントは、ソースレイヤー、命令範囲、ネスト深度、正規化フィンガープリントを保持するようになりました。編集可能なソースが、初期境界、テキスト輪郭、ネストされたForm、不正なパス、レイヤー間のパスオブジェクトと区別されます
- ローカルクリッピングは、有効なテキストオブジェクト再構築を含むバランスの取れたグラフィックス状態スコープを使用します。描画も行うパスからクリップを削除しても、元のストロークまたは塗りつぶしは保持されます
Version 3.490.0
追加
SetPageElementMarkedContentTextProperty、SetPageElementMarkedContentPropertySource、DeletePageElementMarkedContentPropertyは、正確に列挙されたマークコンテンツフレーム上で、Unicodeテキスト、直列化されたPDFオブジェクト、既存のプロパティを編集します
変更
- 名前付きプロパティリソースはページローカルのコピーオンライトで編集され、インラインプロパティリストは間接値がリソースを必要とするときに自動的に昇格し、最後のプロパティを削除すると
BDCがBMCへ圧縮されます - マークコンテンツの編集は、書き込みの前にキャプチャしたソース命令と解決済みプロパティスナップショットを検証し、変更が成功した後にすべてのページ要素ハンドルを無効化します
Version 3.489.0
追加
GetTextBlockCharContentLocationとDAGetTextBlockCharContentLocationは、抽出された各UTF-16位置を、そのコンテンツレイヤー、ストリーム、命令、オペランド、TJ配列要素、エンコード済みソースバイト範囲へマッピングしますReplaceTextBlockCharSourceBytesは、フィンガープリントで保護されたローカル置換により、マッピングされたフォントエンコード済みバイトを置き換えます。隣接する文字列とカーニング値は保持されます
変更
- 生成された位置、
/ActualText、ネストされたForm、トランスコードされた位置、レイヤー間の位置は、読み取り専用として明示的に分類されます。合字の展開は共有ソースグリフ範囲を保持します - コンテンツスパンの検索はバイナリサーチを使用し、抽出リストは2つの独立したレイヤーフィンガープリントを保持して、ページコンテンツの解析や書き換えの前に古い編集を拒否します
Version 3.488.0
追加
ImportPageAsFormXObjectは、開いている任意のドキュメントからページを、再利用可能なキャプチャページハンドルとしてインポートします。どちらのページツリーも変更されません
変更
- ページからFormへのインポートは、デコード済みページコンテンツ、独立した継承リソースクロージャ、Form互換のグループ、メタデータ、ページ部分情報エントリのみをコピーし、注釈、サムネイル、ページのみの構造は除外します
- 選択されたページボックスは標準のフォールバックルールに従い、継承された象限回転はFormマトリクスへ正規化され、反復配置は1つの圧縮コンテンツストリームを共有します
Version 3.487.0
追加
- ページ要素ハンドルが、アクティブな外から内へのマークコンテンツスタック、タグ、検証済みの
/MCID値、元のプロパティオペランド、解決済みの直接またはリソース対応辞書からのすべてのエントリを公開するようになりました
変更
- コンテンツ状態のトレースは、名前付き
/Propertiesリソースをリソーススコープごとに1回解決し、不変のマークコンテンツフレームを保持します。繰り返しの照会でページコンテンツを再解析することはありません - マークコンテンツのネストは
q/Qとは独立に追跡され、各ページまたはFormコンテンツストリームごとに限定されます。不正な未クローズ系列が別のストリームへ漏れることはありません
Version 3.486.0
追加
- ページ要素ハンドルが、実効的なクリッピング交差のすべてのコンポーネントを公開するようになりました。変換された移動、直線、3次曲線、閉じるコマンド、非ゼロまたは偶奇の塗りつぶしルール、コンポーネント境界、結合領域の診断を含みます
変更
- コンテンツ状態のトレースは、ページ境界、
q/Q復元、Form境界をまたいでも不変のクリッピングチェーンを保持し、変更されていないコンポーネントはスナップショット間で共有します - ページ要素の列挙は、パス変更ターゲットとグラフィックス状態を同じコンテンツパスで収集し、以前の余分なパスレイヤー解析を回避します
Version 3.485.0
追加
GetTextBlockCharUnicodeFlagsとDAGetTextBlockCharUnicodeFlagsは、文字ごとのUnicodeマッピング、フォールバック、マップ欠落、未マップコード、無効マップ、置換の各診断を公開します
変更
- テキスト抽出は、すべてのUTF-16コード単位の横にUnicodeマッピングの由来を保持し、
ToUnicode出力を受け入れる前にサロゲートペアを検証します - 無効または部分的なマッピングは、独立したフォントエンコーディングフォールバックを使用し、意味のあるフォールバックが存在しない場合はU+FFFDを出力するようになりました
修正
- Identity Unicodeマップは、ソースコード値を出力数として扱う代わりに、1つのマップ済みコード単位を返すようになりました
Version 3.484.0
追加
- 選択ドキュメントとDirect Accessのテキストブロックが、文字ごとのベースライン角度、原点、セルマトリクス、ディセント調整済みクワッド、軸に平行なボックスを公開するようになりました
GetTextBlockCharBoxは、既存のDirect Accessボックス照会に対応する選択ドキュメント版を追加します
変更
- テキスト抽出は、文字ごとに1回、ベースライン、アドバンス、セル高さのベクトルを保持します。ジオメトリ照会は、回転、シアー、逆向きのベースラインを一定時間で保持します
DAGetTextBlockCharBoxは、先行するすべての幅をたどる代わりに、保持された文字ジオメトリから結果を直接導出するようになりました
修正
- 選択ドキュメントの文字幅とテキストブロックダンプは、設定された座標スケールを厳密に1回だけ適用するようになりました
Version 3.483.0
追加
GetTextBlockCharSourceFlagsとDAGetTextBlockCharSourceFlagsは、生成された文字、ハイフン、適用された/ActualText置換のビット単位の由来を公開します
変更
- テキストブロック抽出は、既存のテキスト配列とアドバンス配列の横に文字ソースフラグを保持するようになりました。大きな文字間隔から推論されるスペースを含み、繰り返しの照会でページコンテンツを再解析しません
Version 3.482.0
追加
GetXRefDiagnosticsとDAGetXRefDiagnosticsは、実効的なクロスリファレンスタイプ、バイト位置、トレーラー境界、エントリ数、リビジョンチェーン内のすべてのテーブルまたはストリームのJSONレポートを返します
変更
- ハイブリッドリファレンスリンク、ずれたヘッダーの再試行、編集可能ドキュメントの復旧判断が、生オブジェクトスキャン、圧縮オブジェクトの復旧、合成されたトレーラーを含む個別の診断エビデンスとして表示され続けます
Version 3.481.0
追加
- コールバック対応およびDirect Accessのバイト範囲ドキュメントは、4段階のスケジューリング優先度、キャンセル、待機、JSON進捗診断を備えた、バックグラウンドのページ、フォーム、オブジェクト依存プリフェッチジョブをキューに入れられます
- 依存プリフェッチは、ターゲットの準備が整うまで欠落範囲の検出を反復します。ソースバイト、先読み、計画パスの各上限は設定可能です
変更
- 各バイト範囲ストリームは、優先度順のFIFOワーカーを所有するようになりました。上限付き範囲キャッシュを共有しつつ独立したパーサー状態を使用するため、可変リーダーを共有せずにフォアグラウンドのドキュメント作業を続けられます
- キュー済みのキャンセルはソース読み取りを行わず、実行中のキャンセルはすべてのチャンクの前にチェックされ、ストリームの破棄は未完了の作業を排出してからソースを解放します
Version 3.480.0
追加
LoadFromRangeSourceは、プログレッシブストア向けに、取得を行わないオプションの可用性コールバックを受け付けます。ページ、フォーム、間接オブジェクトの準備状況に対する選択ドキュメントおよびDirect Access照会を備えます- 可用性レポートは、統合された必須バイト範囲と欠落バイト範囲、依存関係の完全性、オブジェクト走査カウンターをJSONとして返します
変更
- バイト範囲ストリームは、バイトを読み取らず、ストリームカーソルを動かさず、キャッシュ統計を変更せずに、キャッシュ済みおよびソース利用可能なカバレッジをテストできます
- ページの可用性は、ターゲットのページツリーパスと到達可能な処理依存関係のみに従います。利用不可の範囲は、読み取りコールバックを呼び出さずに報告されます
Version 3.479.0
追加
TByteRangeStream.ReadAtは、同一チャンクのsingle-flight共有、上限付きの隣接リクエスト統合、設定可能な収集ウィンドウを備えた、カーソル非依存の絶対読み取りを提供します- 範囲キャッシュ診断は、保留中のリクエスト、アクティブな収集ウィンドウ、統合によって処理されたリクエスト、複数チャンクをカバーした物理読み取りを報告するようになりました
変更
- コールバック対応およびURL対応ドキュメントからの遅延読み取りは、絶対オフセットを使用し、ソースコールバックを直列化し、同時の隣接チャンクを16 MiB上限のソース読み取りへ統合するようになりました
- 実行中のフェッチ中に範囲キャッシュをクリアすると、その古い完了結果がキャッシュやクリア後のカウンターを再び埋めないようになり、既存の待機者は引き続きバイトを受信します
Version 3.478.0
追加
- バイト範囲ストリームは、明示的なleast-recently-usedバイト予算の下で整列済みチャンクを保持し、ウィンドウ数、保持バイト数、ヒット、ミス、退避、ソース読み取り、ソースバイト、反復読み取りを報告するようになりました
LoadFromRangeSourceとDelphiのDAOpenFromURLは、初期キャッシュ予算を受け付けます。アクティブキャッシュを検査、サイズ変更、クリアする新しい選択ドキュメントAPIとDirect Access APIが追加されています
変更
- 線形化ファーストページのウォームアップは、設定された保持バイト予算内に収まるようになりました
Version 3.477.0
追加
LoadFromRangeSourceは、呼び出し元が指定するランダムバイト範囲コールバックを通じて完全な編集可能ドキュメントを読み込みます。HTTP、データベース、オブジェクトストア、カスタム入力をリモートのまま維持し、パーサーは読み込みと遅延操作に必要な範囲だけを取得します- 新しい
TPDFlibRangeReadEventコントラクトは、絶対オフセット、宛先バッファ、上限付きカウントを受け取ります。コールバックプロバイダーは、読み込まれたドキュメントの存続期間中、呼び出し元所有のままです
Version 3.476.0
追加
- PDF/X-6、PDF/X-6p、PDF/X-6n を基盤としたPDF/VT-3の作成を追加しました。同期された識別メタデータ、必須のドキュメントパートカバレッジ、専用プリフライトを備えます
変更
- ドキュメントパート階層は、標準の8192エントリの子ブロックを出力および検証するようになりました。より厳格なXML名と型の制約が同時に適用されます
Version 3.475.0
変更
TPDFlibContentGraphicsState.BlackPointCompensationは、ページコンテンツ、グラフィックス状態の復元、再帰的に列挙されたForm XObjectにわたって、実効的なDefault、ON、OFFの状態を報告するようになりました- PDF/X-6プリフライトは、タイプまたは値がPDF 2.0のブラックポイント補償モデルの範囲外にある
UseBlackPtCompエントリを拒否するようになりました
Version 3.474.0
変更
- PDF/X-6プリフライトは、印刷可能な注釈フラグ、決定論的な通常外観、ボタンの外観状態、AcroFormと署名フィールド、ビューアー生成外観の除外、安全なアクション配置とチェーンを検証するようになりました
- PDF/X-6の作成では、JavaScriptは直接起動されたLink注釈でのみ許可され、名前付きアクションはページナビゲーションに限定され、ドキュメントを変更する前に、安全でない、ドキュメントレベル、ページレベル、フォームフィールドの各アクションパスが拒否されます
Version 3.473.0
追加
SetPDFXModeは、PDF/X-6p のプロセスカラー交換用のモード5と、PDF/X-6n のn色材交換用のモード6を受け付けるようになりました。いずれもPDF 2.0と外部出力プロファイル参照を使用します- 新しい
SetOutputIntentProfileReferenceとAddOutputIntentProfileReferenceURLAPIは、ドキュメントレベルまたはページレベルの/DestOutputProfileRef辞書を作成し、ICCチェックサム、バージョン、カラースペースシグネチャを導出し、出力デバイスと色材のメタデータを検証し、プロファイルバイトを埋め込まずに1つ以上のRFC 3986取得場所を保持します
変更
- PDF/Xプリフライトは、PDF/X-6p と PDF/X-6n のXMP識別子を認識し、外部プロファイルタイプ、メタデータ長、プロセスカラーまたはn色材のシグネチャ、色材テーブル、URLファイル仕様を検証します
GetEffectivePageOutputIntentJSONは、作成後またはラウンドトリップ読み込み後に、profileCS、profileName、iccVersion、checkSum、profileURLs、colorantsを含む参照プロファイルメタデータを報告するようになりました
Version 3.472.0
追加
- 新しい
SetPageOutputIntent、ClearPageOutputIntents、GetEffectivePageOutputIntentJSONAPIは、実効的なドキュメントレベルフォールバックを含む、PDF 2.0ページレベル出力インテントの作成、削除、検査を行います
変更
- PDF/X-6プリフライトは、ページレベルの出力インテントを受け入れ、ドキュメントインテントより優先させ、すべてのページが埋め込みのGray、RGB、CMYKプロファイルへ解決されることを確認するようになりました
Version 3.471.0
追加
SetPDFXMode(4)は、PDF 2.0構文、PDF/X-6 のXMP識別情報、埋め込みのカラーマネージド出力インテントを備えたPDF/X-6完全交換ドキュメントを作成します
変更
- PDF/Xプリフライトは、PDF/X-6を認識し、PDF 2.0構文を要求し、出力インテントが埋め込みのGray、RGB、CMYK ICCプロファイル宣言を持つことを確認します
Version 3.470.0
追加
- HTMLレイアウトがFlexboxの方向、折り返し、grow、shrink、basis、ギャップ、両端揃え、交差軸の整列をサポートします
- HTMLレイアウトが明示的なCSS Gridトラック、分数サイズ指定、繰り返しトラック、スパン、行または列の自動配置、ギャップ、アイテムの整列をサポートします
- HTMLストーリーが番号付き脚注をサポートします。脚注はフレーム下部を予約し、本文を再組版し、ページをまたいでも番号を保持します
変更
- HTMLの計測とキャッシュ済みリプレイにFlexbox、Grid、脚注のジオメトリが含まれるようになり、コンテナーとトラックの上限は維持されます
修正
- PDF辞書の一括クリアとキー名変更がキャッシュ済みキーインデックスを無効化し、メモリ圧縮やドキュメントの反復処理中に古いインデックスが参照されるのを防ぎます
Version 3.469.1
修正
- EMFインポートとCanvas DC変換が、埋め込み済みおよび未埋め込みのTrueTypeフォントについてUnicodeテキストとグリフマッピングを保持するようになりました
NewPageFromCanvasDCは要求されたすべてのページを追加し、TPDFlibPrinterは各キャンバスを正確に1回だけコミットするため、ページが失われたり重複したりしません
Version 3.469.0
追加
SetImageSoftMaskExはグレースケール画像ソフトマスクを、オプションのマット色付きでアタッチしますNewSoftMaskGraphicsStateは、キャプチャしたForm XObjectから再利用可能なアルファ、輝度、転送関数、リセットの各グラフィックス状態を作成しますFlattenTransparencyは、選択したページを選択した解像度と背景色で不透明な静的コンテンツに置き換えます。古いPDFバージョンやアーカイブワークフロー向けです
変更
- 透過のフラット化は1度に1ページを処理し、見た目の回転を正規化し、対話型注釈をオプションで保持し、進捗とキャンセルをサポートし、既定では到達不能な透過リソースを削除します
Version 3.468.0
追加
- AVIF、HEIF、HEIC、JPEG XLの各画像入力を、既存の画像APIまたは専用の
AddModernImageFromFile、AddModernImageFromStream、AddModernImageFromStringメソッドでインポートできます SetModernImageCodecLibrary、ModernImageCodecAvailable、デコーダーコールバックにより、一時変換ファイルを使わない展開可能なインプロセスコーデック選択が提供されます
変更
- モダン画像のデコードは、ネイティブPNG画像パイプラインを再利用する前に、ソースの向き、アルファ、ICCプロファイル、最大16ビットのチャネル深度を保持します
修正
- 署名シードのキー使用法検証が、Win64で正しいポインターアライメントによりネイティブ証明書コンテキストを読み取るようになりました
Version 3.467.0
追加
DeduplicateSimilarImagesは、知覚的に類似した画像XObjectを統合します。差分ハッシュ、平均チャネル誤差、最大チャネル誤差の各しきい値、ドライラン対応、孤立オブジェクト収集のオプションを備えていますGetSimilarImageDeduplicationReportJSONとTPDFlibImageSimilarityDedupStatsは、デコード範囲、インデックス化された候補の処理、受理された誤差、リダイレクトされた参照、エンコード済みペイロードの推定削減量を報告します
変更
- 近似画像マッチングは同一の意味的画像辞書を要求し、デコードした64 × 64色サンプルを確認し、8バンドのハッシュインデックスで全ペア比較を回避します
Version 3.466.0
追加
EncodeImageToJPXStreamとEncodeImageToJPXFileは、ビットマップ入力を設定可能な非可逆または可逆のJPEG 2000として標準JP2コンテナーにエンコードしますAddImageJPXFromFile、AddImageJPXFromStream、AddImageJPXFromStringは、エンコード済みのビットマップ入力をJPXDecode画像XObjectとして直接追加します
変更
- JPEG 2000画像の作成は品質とロスレスのオプションを検証し、呼び出し元所有の入力ストリーム位置を復元し、失敗時に部分出力を削除し、PDF 1.5を自動的に要求し、既存のPDF/A-1互換ゲートを維持します
Version 3.465.0
追加
RenderPageTileToStreamとRenderPageTileToFileは、任意のデバイスピクセル領域を、クリップ付きオーバーラップおよび白、透過キー、カスタム背景でレンダリングしますRenderPageTilesToFiles、RenderPageTiledToStream、RenderPageTiledToFileは、並列タイルグリッドを生成するか、正確なコア境界を継ぎ目のないページ画像へ結合しますSetRenderSurfaceCacheLimit、GetRenderSurfaceCacheInfo、ClearRenderSurfaceCacheは、完全合成済みタイルサーフェス向けに、エントリ数とバイト数の独立した予算を持つオプトインのスレッドセーフなLRUキャッシュを提供します
変更
- 並列単一ページレンダリングは、ワーカーの分散前に共有ディスプレイリストを1つ事前準備するため、コンテンツストリームは1回だけ解析されます。未対応コンパイラでは決定論的な直列パスが維持されます
Version 3.464.0
追加
GetXFARenderedPageCountと、RenderXFAPageToStream、RenderXFAPageToString、RenderXFAPageToFileのファミリーは、XFAテンプレート、バインド済みデータセット、明示的な改ページから静的ラスターページを、ソースドキュメントを変更せずに生成しますConvertXFAToAcroFormは、サポートされるテキスト、パスワード、選択、チェックボックス、プッシュボタン、署名の各コントロールを編集可能なフィールドに変換します。名前、値、選択肢、フラグ、ページ、境界は保持されます
変更
- 大きなFlate圧縮の一括処理が、ネイティブバックエンドに保護された入力末尾を渡すようになり、高解像度PNG出力での不正なAdlerチェックサムを防ぎつつ圧縮出力を維持します
Version 3.463.0
追加
RenderPageLayerToStream、RenderPageLayerToString、RenderPageLayerToFileは、ベースページコンテンツ、注釈、フォームフィールド、またはすべての対話型オブジェクトを、独立して合成可能なPNGレイヤーとしてエクスポートしますFlattenFormFieldTaggedとFlattenFormFieldsTaggedOnPageRangeは、フィールドの外観を静的ページコンテンツに焼き込みつつ、アクセシブルなForm構造セマンティクスを保持または作成します
変更
- 対話型のみのレンダリングはベースコンテンツのインタープリターをスキップし、注釈外観を1パスで処理し、永続的なレンダラー設定を変更せずに透明背景を書き込みます
- タグ付きフラット化は、Widget固有のParentTree
OBJR関連付けをページのMCRマークコンテンツへ変換し、既存の代替テキストと実際のテキストを保持し、安全な関連付けを保証できない場合はフィールドをそのまま残します
Version 3.462.0
追加
HitTestAnnotationとGetAnnotationHitsJSONは、サブタイプを認識するジオメトリ、許容誤差、可視性、境界ボックスの各オプションを使って、ページ上の座標にある最前面またはすべての注釈を見つけますMoveAnnotationZOrderは既存の注釈参照をその場で並べ替え、SimplifyInkAnnotationsは幾何学的偏差を抑えた上でInkストロークの点数を削減し、詳細な統計を返します
変更
- 注釈のヒット判定は、高速な矩形除外判定の後に、マークアップ四角形、ベクトルパス、楕円ジオメトリ、塗りつぶし領域をテストします。また、明示的に遅延しない限り、変更されたInk外観は自動的に再構築されます
Version 3.461.0
追加
RepairAnnotationAppearancesは、欠落、古い、無効、状態不一致、不可視の通常外観を全ページで再構築し、問題点と注釈カテゴリ別の統計を返しますGetAnnotationAppearanceAuditJSONは、ドキュメントを変更せずに注釈ごとの外観問題と集計件数を報告します
変更
- マークアップ、図形、パス、フリーテキスト、アイコンの各外観生成は、1パスのドキュメントスキャナー、インクリメンタル出力ビルダー、決定論的な古さ検出用のコンパクトなソースフィンガープリントを共有するようになりました
Version 3.460.0
追加
ExecuteFormFieldScriptは、フォームの検証、計算、書式設定アクションの制限付きローカルサブセットを実行し、ファイル、ネットワーク、プロセス、UI、動的コードの機能は公開しませんRecalculateFormFieldsは全体または依存範囲に絞ったインクリメンタル計算を実行し、GetFormCalculationGraphJSONはフィールドの依存関係、計算順序での位置、サイクルを報告します
変更
- フォーム再計算はプライベートな値スナップショットへ評価し、準備完了フィールドをAcroForm計算順序で並べ、変更前に依存サイクルを拒否し、選択したグラフが完了してからのみ値をコミットします
Version 3.459.0
追加
MergeDocumentExは、重複フォームフィールドに対する明示的なポリシーとして、マージの拒否、値を同期した共有名の保持、決定論的な数値サフィックスの割り当てを追加します
変更
- 重複フィールドの拒否判定は、オブジェクト番号、ページツリー、フォーム配列が変更される前にチェックされるため、マージが拒否された後も対象ドキュメントとソースドキュメントは再利用可能です
Version 3.458.0
追加
DrawOpenTypeText、GetOpenTypeTextWidth、GetOpenTypeGlyphRunは、インストール済みフェイス名を必要とせず、既存のTrueTypeまたはOpenTypeフォントハンドルから直接テキストのシェイピング、計測、描画、検査を行います- 32ビットおよび64ビットWindows向けの移植可能なネイティブOpenTypeシェイピング/サブセットモジュールを同梱し、ビルド可能なLinuxおよびmacOSソースと、カスタム配置パス用の環境変数オーバーライドを提供します
変更
- 複雑スクリプトの描画は、置換、カーニング、筆記体接続、マークアタッチメントを含むフォントバイトのGSUBおよびGPOSシェイピングを優先して使用します。ネイティブモジュールが利用できない場合は、制限付きのPascalフォールバックがアラビア文字の結合と一般的なOpenTypeレイアウトルックアップ形式をカバーします
- シェイプ済みフォントのサブセット化はグリフIDを保持し、レイアウト、可変フォント、カラーフォントの依存データ(COLR/CPALおよびfvar/gvar/HVARを含む)を閉包に含めるようになりました
Version 3.457.0
追加
CreateOpenTypeFontVariationは、要求されたCFF2可変フォント軸座標から再利用可能な静的CFFフォントを作成します
変更
- OpenType CFF2インポートは、即時描画と埋め込み用の静的デフォルトインスタンスを選択しつつ、後のインスタンス化に備えて可変プログラムを保持するようになりました
- CFF2インスタンス化は、展開済みローカル/グローバルサブルーチンにわたってバリエーションストア、
vsindex、blendを評価し、水平およびグローバルメトリックのバリエーションを適用し、既存のCFF埋め込み/サブセットパス向けにサイズ制限付きでチェックサムが正しいCFF1 OpenTypeフォントを出力します
Version 3.456.0
追加
- Windows 10 バージョン1703以降で、TrueType、OpenType、コレクションの各ファイルエントリポイントにWOFF2入力を追加しました。変換済みTrueTypeアウトラインとメトリック、CFFフォント、コレクションフェイスに対応します
変更
- Webフォントコンテナーはメモリ上で1回だけ展開され、文字マッピングには利用可能な最良のUnicode cmapを使用し、圧縮コンテナーではなく結果のsfntを埋め込みまたはエクスポートします
Version 3.455.0
追加
GetFontVariationAxesは、TrueType可変フォントの各軸をローカライズ名、設計範囲、既定値、非表示状態とともに公開し、CreateTrueTypeFontVariationは要求された軸座標から再利用可能な静的フォントを作成します
変更
- TrueType可変フォントのインスタンス化は
avar、gvar、HVAR、MVARデータを適用し、合成アウトラインを平坦化し、水平/グローバルメトリックを再構築し、古いバリエーションおよびヒンティングテーブルを削除し、描画、埋め込み、サブセット化、グリフ検査用にチェックサムが正しいsfntを出力します SaveFontToFileは、保持しているメモリ内TrueTypeプログラムを直接エクスポートできます。PDF保存前の新規作成済み可変フォントインスタンスも含まれます
Version 3.454.0
追加
GetFontColorGlyphとGetFontColorGlyphByIndexは、COLR v0/v1ペイントグラフ、CPALパレット、SVG-in-OTドキュメント、埋め込みビットマップストライクを公開し、アプリケーションからの直接検査とレンダリングを可能にします
変更
- カラーフォントテーブルの検査は遅延かつサイズ制限付きのsfntアクセスを使用し、共有フォントキャッシュのバイト予算に参加するため、大きなカラーフォントに対する先行アウトライン解析を回避します
Version 3.453.0
追加
SetFontCacheLimit、GetFontCacheInfo、ClearFontCacheは、保持しているフォントフェイスリソース、シェイプ済みテキストラン、解析済みアウトラインプログラムに対して、共有バイト予算、最小最近使用の追い出し、ヒット/ミス/占有率の統計を提供しますGetFontGlyphIndexは、TrueType cmapの形式4および形式12テーブルを通じて完全なUnicodeコードポイントをマッピングし、GetFontGlyphOutlineは単純および変換済み合成パスを生の送り幅、左サイドベアリング、境界ボックス、ユニット毎emの各メトリックとともに返します
変更
- シェイプ済みテキストの反復計測・描画呼び出しは共有キャッシュ予算の下でディープコピーされたシェイプ済みランを再利用し、グリフの反復検査はグリフごとに再解析する代わりに解析済みフォントプログラムを再利用します
- 文字列およびWOFFコンテナーから読み込まれたバイナリフォントプログラムは独自の生バイトストリームを保持するため、遅延テーブルアクセス中のテキスト再コーディングや無効なストリーム参照を防ぎます
Version 3.452.0
追加
soCanonicalEquivalentにより、テキスト検索、一括検索、置換ワークフローは正規等価なNFC/NFDテキストにマッチしつつ、オフセットと長さは元の抽出テキスト基準で報告しますsoGraphemeClustersはマッチを拡張書記クラスタ境界に制限し、?ワイルドカードが1つの完全なクラスタを消費するようにします。これによりサロゲートペア、結合列、絵文字ZWJシーケンス、旗、インド系結合文字が保護されます
変更
- Unicode正規化と書記クラスタ分割は、オペレーティングシステムのテキストサービスに依存せず、サポートされるすべてのプラットフォームでコンパクトな生成済みUnicode 15.1テーブルを使用します
Version 3.451.0
追加
ExternalizeInlineImagesは、推定シリアライズサイズが減少する場合に、選択したページ範囲で繰り返される対応インライン画像を1つの共有Image XObjectで置き換えます
変更
- インライン画像の外部化はイメージマスク、補間、デコード配列、フィルター、デコードパラメータを保持し、フィルターなしペイロードは小さくなる場合に任意でFlate圧縮します
- 厳密なSHA-256グループ化、決定論的なリソース名、重複ページ除去、進捗報告、協調的キャンセルにより、最適化結果は境界付きで再現可能に保たれます
- 不明なインライン辞書エントリと非デバイス色空間は、完全なセマンティクスなしに昇格させられることなく、バイト同一のまま保持されます
Version 3.450.0
追加
NormalizeContentStreamsは、選択したページ範囲で空白トークンと数値トークンを正規化しつつ、演算子、文字列値、インライン画像ペイロードを保持します
変更
- コンテンツ圧縮は、覗き穴最適化で冗長な命令が見つからない場合でも正規トークンを出力するようになりました
修正
- 明示的な先頭プラス記号付きのPDF実数は、解析と正規化の間に値を保持するようになりました
- 置換後のストリームデータが、以前のフィルターパイプラインからの無効なデコードパラメータを保持しなくなりました
Version 3.449.0
追加
SetTempFileQuota、GetTempFileQuota、CompactDocumentMemoryは、自動的なメモリ内フォールバック付きの、境界付きディスクベースオブジェクトスプーリングを提供します
変更
- 一時オブジェクトデータは世代を考慮したインデックス付き検索を使用するようになり、スプール書き込みハンドルが閉じられた後も利用可能です
Version 3.448.0
追加
SetRecoveryModeとGetRecoveryModeは、破損したPDF入力の読み込み前に、厳格モード、トレーラーベース修復、またはベストエフォート復旧を選択します
変更
SaveToStreamは、既存のチャンク分割シリアライズパスを維持しつつ、書き込み専用でシーク不能なターゲットへ直接書き込むようになりました- ベストエフォート復旧が既定のまま、厳格モードは生データの再構築を無効化し、修復モードはトレーラーを合成する代わりに生存しているトレーラーを要求します
Version 3.447.0
追加
SetOptimizationWorkersとGetOptimizationWorkersは、画像最適化とFlateストリーム再圧縮のための境界付きワーカーバッチを構成します。既定ではプロセッサ選択が自動化され、直列互換モードも用意されますOptimizeImages、RecompressStreams、MergeFileList、MergeFileListFast、MergeFileListStrictは、追跡付きの進捗を報告し、Abortによる協調的キャンセルを尊重するようになりました
変更
- Flate再圧縮と自己完結型の画像トランスコードは境界付きの並列バッチで実行され、ドキュメント変更は決定論的かつシングルスレッドのまま保たれます
- 画像最適化は再エンコード用のデコード済みビットマップデータを保持し、ステンシルおよびカラーキーマスク画像をスキップし、JPEG置換の適用時に古いデコードパラメータを削除するようになりました
- 大きなファイルリストのマージはアクティブなソースリーダーのみを開いたままにし、入力数とオブジェクト数で進捗を報告し、キャンセルや失敗時に不完全な出力を削除します
修正
- 複数ファイルのマージ操作は、2つ以上のソースがマージされた場合に成功完了を報告するようになりました
- 画像のダウンサンプリングと最適化は、再エンコードパスが必要とするデコード済みビットマップを保持するようになりました
Version 3.446.0
変更
- 2パラメータの
SetDisplayListCacheLimitオーバーロードは、保持するディスプレイリストのメモリをエントリ数とともに制限します。既存のオーバーロードは構成済みバイト予算を維持します - ディスプレイリストの追い出しは、保持バイトあたりの再構築価値が大きく頻繁に再利用されるコンテンツを優先し、個別にサイズ超過のリストはレンダリングを妨げずに保持をバイパスします
- アクティブなキャプチャとリプレイ操作は自身のリストをピン留めし、並行ルックアップが部分的に構築された録画を観測することはなく、キャンセルまたは失敗したキャプチャは破棄されます
GetDisplayListCacheInfoとGetResourceUsageStatisticsJSONは、保持バイト数、上限、推定リプレイコスト、追い出し、バイパス、拒否されたキャプチャ、構築競合を報告します
修正
- ディスプレイリストのリプレイが、置き換えられたオペランド文字列を、以前の各演算子ごとの割り当てを保持するのではなく解放するようになりました
Version 3.445.0
変更
- 3パラメータの
SetMemoryBudgetオーバーロードは、各ドキュメントの圧縮オブジェクトストリームキャッシュにデコード済みバイト予算を追加します - オブジェクトストリームキャッシュのエントリは、エントリ数とデコード済みペイロードサイズの両方で最小最近使用の追い出しを使用するようになりました。サイズ超過のエントリはオブジェクトアクセスを妨げずにキャッシュをバイパスします
- 読み込み前に構成されたメモリ予算は既存および将来のドキュメントに適用され、
GetMemoryBudgetで照会できます GetResourceUsageStatisticsJSONは、現在のオブジェクトストリームキャッシュバイト数、バイト上限、追い出し回数を報告するようになりました
Version 3.444.0
追加
- 3パラメータの
SetParserLimitsオーバーロードは、許容するパーサーエラー数を制限し、予算を使い切るとpdsErrorLimitで決定論的なリカバリーを停止します SetStreamDecodeLimitsは、デコーダー割り当て前に過長なフィルターチェーンを拒否し、1つの追跡対象操作内のストリーム全体に累積デコード済みバイト予算を適用します- ストリーミングおよびメモリ内のデコードパスは、ドキュメント読み込み中のオブジェクトストリームデコードを含め、同じフィルターおよびバイト会計を共有します
GetResourceUsageStatisticsJSONは、構造およびストリームのメモリ推定値、画像数とフォント数、デコード済みバイトのピーク、失敗数、オブジェクト/オブジェクトストリーム/ディスプレイリストの各キャッシュのヒットとミスを報告しますResetResourceUsageStatisticsは、読み込み済みドキュメントや再利用可能なキャッシュを破棄せずに診断カウンターをリセットします
Version 3.443.0
追加
SetParserLimitsとGetParserLimitsは、ネストされたPDFオブジェクト数と、直接解析される配列または辞書のエントリ数に対するハードリミットを構成・検査します- パーサーリミットは、ファイル、ストリーム、文字列、編集ジャーナル、QDF、整合性チェックの各読み込みパスがオブジェクトを消費する前に適用されます。既定では既存のネスト制限と無制限のコンテナーサイズが維持されます
TPDFStructure.DecodeMaxContainerItemsは、サイズ超過の配列と辞書を専用のpdsContainerLimitステータスで拒否し、失敗位置を保持しますRegenerateFormAppearancesは、1回の走査でトップレベルおよび子のすべてのAcroFormフィールドを更新し、オプションで利用可能な外観を保持し、NeedAppearancesをクリアします
Version 3.442.0
追加
CheckFileComplianceがPDF/Xのコンプライアンステスト3を受け付け、完成ドキュメントをISO 15930の印刷交換ルールで監査します:pdfxidエディション識別、パートベースの構文レベル、埋め込みプロファイルと条件識別子を持つGTS_PDFX出力インテントが正確に1つ存在すること、宣言済みのトラッピング状態、ページごとのTrimBoxおよびBleedBoxジオメトリ、埋め込みフォントプログラム、禁止注釈タイプ、ドキュメントレベルのJavaScript、埋め込みファイル、暗号化、LZWDecodeフィルター- 問題は、PDF/AおよびPDF/UAチェッカーが使用するのと同じ文字列リストハンドルを通じてPDFX接頭辞付きの行として報告されます
Version 3.441.0
追加
SetPDFXModeはPDF/X適合モード(1 = PDF/X-1a:2003、2 = PDF/X-3:2003、3 = PDF/X-4)を選択します。作成時にISO 15930の印刷交換ルールを強制し、pdfxid XMPエディション識別を書き込みます- このモードはGTS_PDFX OutputIntent(CMYK印刷の既定値)をインストールし、/Trapped状態を宣言し、保存バージョンをパートに基づいて決定します(X-1a / X-3はPDF 1.4、X-4はPDF 1.6)
- 作成時ゲート:X-1aではDeviceRGBおよびICCBased色空間を拒否し(X-3 / X-4ではDeviceRGBにRGB OutputIntentが必要)、X-4以外では透過とオプショナルコンテンツを拒否し、すべてのモードでJavaScript、ファイル添付、暗号化、LZWDecode画像、非埋め込みフォントを拒否します
- 保存時の修正:すべてのページにTrimBoxを受け付け(既定はMediaBox)、注釈のPrintフラグとAcroForm NeedAppearancesを正規化し、/Trappedを宣言します
GetInformation(203)はアクティブなPDF/Xモードを報告します
Version 3.440.0
追加
AddWatermarkAnnotationFromImageIDは、/FixedPrint /Matrix格納マトリックス付きの /Subtype /Watermark 注釈を書き込み、印刷時に外観がページとともに拡大縮小されるようにします(ISO 32000-1 12.5.6.17)AddPrinterMarkAnnotationFromImageIDは、/PNプリンターズマーク名を持つ /Subtype /PrinterMark 注釈を書き込みます(ISO 32000-1 12.5.6.18)SetFillColorICCBasedとSetLineColorICCBasedは、埋め込みICCプロファイルファイルに基づくコンテンツレベルの /ICCBased 色空間で描画します。コンポーネント数はプロファイルヘッダーから読み取られ、同一プロファイルは1つのリソースを共有します
Version 3.439.0
追加
- WOFF 1.0 Webフォントコンテナーは、すべてのTrueTypeエントリポイント(
AddTrueTypeFontFromFile、ストリームAPI)を通じて透過的にインポートされます。テーブルはzlibストリームから展開され、平坦化されたsfntディレクトリが解析前に再構築されます - ドキュメントは、展開されたsfntプログラムをFontFile2に埋め込みます。WOFFコンテナーは埋め込まないため、埋め込みフォントはすべてのビューアーで有効なままです
Version 3.438.0
追加
- シード値の強制が
LegalAttestation、受理可能な証明書Issuerエントリ、位置ベースのKeyUsageパターン(ISO 32000-2 Tables 237 and 238)に拡張されました。対応する作成用APIとして、SetSignatureFieldSeedValueの法的認証値、AddSignatureFieldSeedIssuer、SetSignatureFieldSeedKeyUsageが追加されました SetSignProcessLegalAttestationは、署名時に必須のLegalAttestation制約に対して検証される署名者の認証を宣言しますTPDFlibPKCS11Client.InitializeUserPINとChangeUserPINは、C_InitPIN用のセキュリティオフィサーログイン付きの専用読み書きセッションでトークンPINを管理します
Version 3.437.0
追加
SetSignProcessRSAPSSPaddingは、RSA分離署名をRSASSA-PSSパディングで署名し、CMS署名アルゴリズム識別子の中に完全なRFC 4055パラメータセット(署名ダイジェスト付きのMGF1、ダイジェストと等しいソルト長)を出力します- PSSパディングされた署名はライブラリ検証器を往復します。検証器はRFC 4055パラメータ(明示的および暗黙的エンコーディング)を解析し、宣言されたソルト長でCNGを通じて検証するようになりました
Version 3.436.0
修正
- テキスト抽出が、ToUnicodeマップを持たないフォントの /Differences 配列に含まれるAGL補助グリフ名(
uniXXXXおよびuXXXXXX形式)をデコードするようになりました - グリフ名が何にも解決されないエンコーディングスロットは、抽出中に生のコードポイントや置換文字を表に出す代わりに、フォントの基本エンコーディングへフォールバックするようになりました
- ToUnicodeマップを持たないシンボリック埋め込みTrueTypeフォントは、埋め込みフォントプログラムのcmapテーブルを通じてデコードされ、各文字コードの背後にある実際のUnicodeを復元します
Version 3.435.0
追加
AddTrueTypeCollectionFontFromFileは、TrueTypeコレクション(.ttc)の任意のフェイスを0ベースのインデックスで埋め込みます。以前の動作では常に先頭フェイスが使用されていましたGetJPEGFileOrientationはJPEGファイルのEXIF方向タグ(1..8、不存在時は0)を読み取り、GetJPEGFileICCProfileToFileは画像をインポートせずにAPP2 ICCプロファイルを抽出します
Version 3.434.0
追加
- レンダーオプション11..15はPDFium品質フラグにマッピングされます:LCDテキストレンダリングのオン/オフ、テキスト非スムージング、画像非スムージング、パス非スムージング、強制ハーフトーン。既定では従来の出力が維持され、GDI+/Cairoバックエンドはこれらのフラグを無視します
SetDisplayListCacheLimitは、1回解析したコンテンツストリームのディスプレイリストキャッシュに上限を設定します。正の上限は挿入前に最小最近作成のエントリを追い出し、ゼロで無制限の動作に戻ります
Version 3.433.0
追加
- 署名タイムスタンプのダイジェスト選択がSHA-3ファミリーを受け付けるようになりました(
SetPAdESSignatureTimeStampDigestAlgorithmのコード5..7)。署名者ダイジェストの選択肢と一致します SetTimeStampRetryCountは、トランスポート失敗または5xx応答の後に0..10回の追加TSA試行を構成し、試行間には線形バックオフが入りますTPDFlibCertificateInfoにFriendlyName、ThumbprintSHA1、ThumbprintSHA256が追加され、EnumCertificatesの実行中に証明書コンテキストプロパティから読み取られます- AdES履歴検証レポートに
BaselineProfileが追加されました:非PAdESサブフィルターは0、以降はタイムスタンプとDSSエビデンスから導出される1=B-B、2=B-T、3=B-LT、4=B-LTAです
Version 3.432.0
追加
- ページ範囲文字列がキーワード
odd、also even、first、lastを受け付けます。範囲境界として(3-lastのように)使えるほか、範囲を取るすべてのAPIで利用できます ReversePagesは、読み込み済みドキュメントのページ順序を反転しますFlattenAnnotsOnPageRangeは、範囲内のすべての注釈を1回の呼び出しでページコンテンツに焼き込みますGetPageContentBoxはすべてのテキスト、画像、パス要素の結合境界を報告し、AutoCropPagesは各ページのCropBoxをその境界にマージンを加えたものに設定しますAddBatesNumberingは、接頭辞と接尾辞付きのゼロ埋め連番を9つのキーパッド風位置に刻印しますExtractDocumentRevisionは、リビジョンチェーンを切り詰めて、以前のインクリメンタルリビジョン時点のドキュメント状態を新しいファイルに書き込みますSplitDocumentByOutlineは、指定レベルまでのアウトラインエントリでドキュメントを切り分け、セクションごとに1ファイルを出力しますComparePageTextsWithは、2つのドキュメントを抽出テキストでページ単位に比較し、差異ページ数と最初の不一致を報告しますSanitizeDocumentにSANITIZE_XMP_PACKET(値32)が追加され、XMPメタデータストリーム全体とすべての/PieceInfo辞書を削除します
Version 3.431.0
追加
- 抽出オプション19(
SetTextExtractionOptionsおよび直接アクセス版)は、OCRレイヤーなどのレンダリングモード3のテキストを見えるコンテンツに触れずに抽出結果から除外します - 抽出オプション20は、抽出中に
/Spanマークコンテンツシーケンスのグリフをその/ActualText値で置き換えます(ISO 32000-1 §14.9.4)。インラインプロパティ辞書と名前付きプロパティリソースの両方に対応します DAGetTextBlockCharBoxは、ブロック四角形と送り幅から文字ごとの軸整列ボックスを導出します。ハイライト矩形や個々の文字のヒット領域計算に利用できますExportFormValuesToJSONは、AcroFormフィールド値を適切にエスケープされたJSON配列へシリアライズします。空フィールドのスキップも選択できますGetPageTextStatisticsは、任意のページの文字数、空白区切りの単語数、ブロック数をカウントしますGetXMPPropertyはドキュメントXMPパケットから単純値を読み取ります(rdf:Alt/rdf:Bag/rdf:Seqラッパーを降下しXMLエンティティを解決)。SynchronizeXMPToInfoはXMPメタデータをInfo辞書へ書き戻します- フォント一覧は埋め込みプログラムサイズを報告します:
TPDFlibDocumentFontにFontFileBytesが追加され、診断レコードには合計のEmbeddedBytesが追加されました
Version 3.430.0
追加
- テキスト検索に4つの新しいオプションが追加されました:
soDiacriticInsensitiveは1:1のUnicode畳み込みで照会をマッチさせ、平仮字母がアクセント付き対応文字を見つけられるようにします(Latin-1、Latin Extended-A、ギリシャ、キリル対応。soCaseSensitiveとの組み合わせでは大文字小文字の区別が維持されます)。soWildcardsは照会内の*と?をsoWholeWord互換の最左最長セマンティクスで解釈します。soAcrossLinesは各ページの抽出ブロックを結合して、行およびブロック区切りをまたぐフレーズにマッチします。soPreserveStyleはSearchAndReplaceTextが置換テキストを呼び出し元の現在設定ではなく置換対象ブロックのテキストサイズと色で再描画するようにします - 検索ヒットはブロックテキスト内の一致位置と長さ(
MatchStart、MatchLength)に加え、新しいSearchContextCharsプロパティで制御されるオプションのコンテキストウィンドウ(ContextBefore、ContextAfter)を報告するようになりました AddTextMarkupFromSearchHitsとHighlightTextSearchHitsは、検索ヒットまたは実行中のBeginTextSearchセッションが保持するヒットを、該当ページのHighlight / Underline / Squiggly / StrikeOutマークアップ注釈へ変換します- 4文字以上のリテラル検索語は、保守的なワイド文字照合付きのBoyer-Moore-Horspoolスキップテーブルを使用するようになり、長いページに対する一括検索が高速化されました
修正
- WinAnsi基本エンコーディングとDifferences配列付きで書き出された埋め込みTrueTypeフォントが、Differencesエントリのみを列挙する
/ToUnicodeCMapを生成していたため、これに依存するリーダーは他のアクセント付きWinAnsiコードをすべて文字化けとしてデコードしていました:抽出では?の置換文字が返り、ブロック収集が該当行で停止する可能性があり、発音区別符号区別検索はこれらのドキュメントを見逃していました。CMapジェネレーターは現在、Differencesによる上書き付きで基本エンコーディング全体をカバーし、仕様準拠の100エントリずつのセクションにまとめます - テキストファネルの単語結合記録が、区切りなしでランを追加する際に幻の送り幅エントリを挿入し、以降の文字ごとのオフセットをすべて1つずらして、検索ヒットの部分矩形やギャップ推定スペースなどの派生データを破壊していました
Version 3.429.0
修正
AddTrueTypeSubsettedFont経由のサブセット化が、すべてのビューアーでテキストが空白表示されるドキュメントを生成していました:CID-to-GIDマッピングストリームがハードコードされた/Identityエントリで黙って上書きされるため、Unicode由来のCIDが間違ったグリフアウトラインを指していました。現在はストリームが権威であり、/Identityはマッピングを導出できない場合のフォールバックとしてのみ残ります。CJKおよび自動更新グリフセットを持つサブセットドキュメントが再び正しくレンダリングされます- 内部GDI+レンダラーで軸方向および放射状シェーダー塗りが真っ黒にレンダリングされていました:
GdipCreateLineBrushはWrapModeClamp(テクスチャブラシ専用モード)を拒否し、失敗したブラシ生成が黒の単色フォールバックへ落ちていました。グラデーションブラシは現在WrapModeTileで作成され、シェーダー塗りはCairoバックエンドおよび外部ビューアーと同じようにレンダリングされます TPDFlibインスタンスの作成時に、オーバーフローチェックを有効にしてライブラリをコンパイルした場合(コマンドラインデモビルドスクリプトのリリースフラグ)にEIntOverflowが発生していました:FNV-1a名前ハッシュ、MD5状態累算、MD5ビットカウンターは設計上モジュラー演算であり、現在は局所的にオーバーフローチェックを無効化して実行されます。同梱のbuild-Win32-Demo/build-Win64-Demoリリース出力は起動時にもはやクラッシュしません
Version 3.428.1
追加
- 新しい
Showcaseフラッグシップデモ(Demo\Delphi\Showcase):起動時に7ページのドキュメントを構築します — グラデーション表紙、シェーダーとパターンを使ったベクターグラフィックス、埋め込みTrueTypeタイポグラフィ、装飾付きテーブル、バーコードギャラリー、レビュー注釈とブックマーク付きのインタラクティブリンク、サマリーページ — そして埋め込みTPDFlibViewerコントロール内でライブプレビューします - Showcaseデモはヘッドレス実行(
Showcase.exe <output.pdf>)も可能で、オプションのrender引数で全ページをPNGとしてエクスポートできます。ビルドスクリプトからドキュメントパイプライン全体を実行できます
修正
- コンテンツストリーム解析がストロークカラー演算子
RGを誤読しなくなりました:オブジェクトデコーダーの間接参照先読みが0 0 0 RGを数値と幻の参照0 0 Rとして消費し、コンテンツ最適化後にストロークカラーを破壊して厳格ビューアーで演算子構文エラーを起こしていました - コンテンツ覗き穴オプティマイザーが、色演算子の後続に繰り返される
cs(色空間)セッターを落とさなくなりました:rg/g/kは暗黙に色空間をリセットするため、テキスト色変更後のパターン塗り(scn)は/Pattern csを保持し、再び正しくレンダリングされます
Version 3.428.0
追加
Demo\Lazarus配下に19個の新しいFree Pascal / Lazarusコンソールデモを追加:OutlineBuilder、WatermarkDemo、NamedDestinations、EmbeddedFiles、XmpMetadata、TextBlockExtraction、AnnotationInspector、BarcodeGallery、TaggedPDF、SearchReplace、Redaction、LinearizeDemo、PatternShowcase、DocumentProperties、SecurityPermissionMatrix、PageStitch、OutputStream、MergePDF、PdfToImage- FPCビルド向けの
IOUtils互換シム(TPath / TDirectory / TFile)により、移植デモはDelphi版とソース同一に保たれます
変更
- Windows下のNOVCLグラフィック代替層が実際のGDIオブジェクトを実体化するようになりました:TBitmapはトップダウンDIBセクションを割り当て、TCanvasはメモリDCを所有しプロパティ変更時にブラシ、ペン、フォントのGDIオブジェクトを選択し直し、TBrush / TPen / TFontは色、スタイル、フォント属性の変更時にハンドルを再構築します
- FPC下のページレンダリングはDelphiビルドと一致するピクセル出力を生成するようになり(代替DCを通じたGDI+ラスタライズ)、
PdfToImageのJPEGおよびBMPエクスポートも復元されました
修正
- FPC下での暗号化PDF作成がバイナリ文字列値(トレーラー
/IDの読み戻し、暗号化/U)を破壊し、出力が再読み込み検証に失敗していました。FPCビルドは-FcUTF8を渡さなくなりました。このスイッチのansistringコードページタグ付けにより、AnsiString + AnsiCharの連結が$7F超のすべてのバイトを疑問符に置き換えていたのです
Version 3.427.0
追加
- Free Pascal / Lazarusサポート:ライブラリはDelphiビルドと同じソースからFPC 3.2(Win64)でコンパイルできるようになりました。新しい
build-Lazarus-Lib、build-Lazarus-Lib-TRIAL、build-Lazarus-Tests、build-Win64-Demo-LazビルドスクリプトとPDFlibPasLazパッケージが同梱されます - FPC下のFlate圧縮・展開はFPC同梱の静的zlibを通じて実行されます。AES暗号化はDelphiビルドと同じユニティオブジェクトをリンクします。JPEG画像はGDI+バックエンドでデコードされます
- FPCUnitコンソールテストスイート(
Tests\Lazarus)はドキュメントの作成/保存/読み込み往復、deflate/inflate、AES、テキスト抽出をカバーし、2つのLazarusコンソールデモ(HelloWorld、TextExtract)がDemo\Lazarus配下に含まれます
変更
- ライブラリソース全体でユニットスコープ接頭辞(
System.SysUtils、Winapi.Windowsなど)を削除し、同じユニットが両コンパイラで解決されるようにしました。Delphiのコマンドラインライブラリビルドはユニットスコープリストを明示的に渡すようになりました - レンダラーとCairoビットマップエクスポートの2つの
NO_VCL/NOVCLディレクティブの誤字を修正しました。これはNOVCL Windows構成が実際にコンパイルされたときに初めて顕在化したものです
Version 3.426.0
追加
- ページレンダリングが、構成可能なDelphi、DLL、ActiveX APIを通じてプロセスインキおよび名前付きインキのオーバープリントをシミュレートできるようになりました
変更
- 拡張グラフィックス状態が累積的な
/OP、/op、/OPMセマンティクスを保持するようになり、境界付きピクセル合成はGDI+およびCairoレンダラーで重なり合うインクチャネルを保持します
Version 3.425.0
追加
- 画像抽出が、スタンドアロンファイルでJBIG2ページセグメントとグローバルセグメントを保持し、CCITTファックスペイロードをスタンドアロンTIFFラッパー内に保持するようになりました
- 読み取り専用の画像重複排除マニフェストが、完全一致するエンコード済み重複をダイジェスト、オブジェクト識別、ページ使用状況、回収可能ペイロードバイト数でグループ化し、Delphi、DLL、ActiveXクライアント間で利用できます
変更
- ページ画像リストが、ビットマップ展開を強制せずにネイティブのJPXおよびJBIG2ペイロードを識別するようになりました。ネストされたForm XObject経由で到達できる画像ストリームも含まれます
Version 3.424.0
追加
- ドキュメントレベルの関連ファイルAPIが、Delphi、DLL、ActiveXクライアント間でカタログ
/AFメンバーシップの作成、列挙、マッピング、追加、削除を行えるようになりました - RichMedia注釈が既存の埋め込みファイルまたは関連ファイルを再利用できるようになり、1つのメディアペイロードを添付パネルと注釈アセットグラフで共有します
変更
- 関連ファイルの作成は、ファイル、Delphiストリーム、バイナリ文字列、DLLバッファー、ActiveXバイト配列を受け付け、チェックサム、説明、リレーションシップメタデータ、バイナリゼロバイトを保持します
- 埋め込みファイルの削除時に一致するカタログ関連ファイル参照も削除されるため、読み込み済みドキュメントが宙に浮いた
/AFエントリを保持することがなくなりました
Version 3.423.0
追加
- オプショナルコンテンツAPIが、Delphi、DLL、ActiveXクライアント間でネストされたレイヤーパネルラベルとグループ分岐を構築できるようになりました
- ラジオグループの作成、メンバーシップ、削除、検査の各APIが、CADや地図ワークフロー向けの相互排他的レイヤー制御を追加します
変更
- ロック済みレイヤーの更新が成功を報告するようになり、代替構成は正しい1ベースの識別子を使用し、不正なレイヤー階層は境界付きサイクル保護付きで走査されます
- オプショナルコンテンツグループの削除時に、すべての構成のレイヤー順序、状態、ロック、ラジオ、自動状態の各構造から参照が取り除かれます
Version 3.422.0
追加
- PRC 3D注釈APIが、ファイル、ストリーム、メモリ文字列、DLLバッファー、ActiveXバイト配列からモデルを、名前付きデフォルトビューと明示的なアクティベーションポリシー付きで埋め込めるようになりました
- PRC注釈はPDF/A-4eエンジニアリングドキュメントをサポートし、通常の出力は自動的にPDF 2.0へ昇格されます
変更
- PRCおよびU3D注釈に、完全な3Dビュー、アクティベーション/デアクティベーション辞書、印刷可能注釈フラグ、代替名、通常外観が含まれるようになりました
- 従来のU3D埋め込みは、3D注釈を許可しないPDF/Aプロファイルを拒否し、PDF/A-4eを受け付けるようになりました
Version 3.421.0
追加
- ドキュメントパートAPIが、PDF 2.0の
/DPartRoot、階層的な/DParts、ページ範囲の葉、レコードレベル、レベル名、検証済み/DPMメタデータをDelphi、DLL、ActiveXクライアント間で追加します - 検査およびライフサイクルAPIが、階層検証、到達可能パート数、ページからパートへのルックアップ、メタデータ往復、完全な階層削除を公開します
変更
- 大きな子セットは境界付き配列ブロックを使用し、検証は親リンク、サイクル、均一な葉の深さ、順序付けられた完全なページカバレッジ、逆ページリンク、XML名トークン、境界付きメタデータグラフをチェックします
- ドキュメントパート階層の作成は出力をPDF 2.0へ昇格させ、読み込み済みドキュメントの機能検出と保存バージョンロックに参加します
Version 3.420.0
追加
DrawHTMLStoryが、等幅複数カラムと自動生成ページによる高レベルな装飾付きHTMLフローをDelphi、DLL、ActiveXクライアント間で追加します- 有限のページ上限に達すると、再利用可能な継続文字列を返します。アクティブなスタイルシートカスケード、ネストされたスタイル状態、構造化ブロック、テーブル、リンク、フォントマッピング、画像バインディングが保持されます
変更
- 生成されたストーリーページは選択された開始ページの実効寸法を継承し、各カラムはキャッシュされた計測・リプレイレイアウト計画を再利用します
- ストーリーレイアウトは不正なジオメトリを拒否し、カラムと生成ページを制限し、連続するフレームで進行できない場合に終了します
Version 3.419.0
追加
TPDFlibPrinterに、BeginDoc、Canvas、NewPage、EndDoc、Abortのライフサイクルメソッドを持つVCLコンポーネントファサードが追加され、PDFを直接作成できます- PDFプリンタージョブは、用紙寸法、縦向き/横向き、キャンバスDPI、ベクトルインポートオプション、ドキュメントタイトル、オプションのファイル直接出力を構成できます
変更
- 各コンポーネントジョブは独立したPDFドキュメントを所有し、最初以降のキャンバスを一貫したページセマンティクスでコミットし、完了した出力を後続のライブラリ処理のために保持します
- このコンポーネントは印刷ダイアログを開いたりOSスプーラーにアクセスしたりしないため、既存のVCLキャンバス描画コードを物理プリンター依存なしで移行できます
Version 3.418.0
追加
RenderPagesToPrintStream、RenderPagesToPrintString、RenderPagesToPrintFile、RenderPagesToPrintData、RenderPagesToPrintBufferが、ドライバー非依存の印刷出力をDelphi、DLL、ActiveXクライアント間で追加します- 選択したページ範囲をPostScript Level 3、単一ページEPS、PCL 5c、またはPWG Rasterとして出力でき、モノクロ、両面、タンブル、PCLジョブフレーミングの制御も選択できます
変更
- PostScriptおよびEPSはページのベクターコンテンツを保持し、PCLおよびPWG Rasterは境界付き行エンコーダーを使用して、サーバーおよび組み込みデバイスへの直接配信に対応します
- 印刷ストリームは、プリンターを開いたり印刷ダイアログを表示したりOSスプーラーへジョブを送信したりせずに生成されます
Version 3.417.0
追加
ExportPageSVGとExportPageSVGToFileが、スケーラブルなページエクスポートをDelphi、DLL、ActiveXクライアント間で追加します- SVG出力には、ネイティブ描画パス、検索可能テキスト、埋め込みPNG画像、クリック可能な注釈リンク、透明ページ背景を個別に含められます
変更
- ページパスは、ページ全体をラスタライズせずに、変換、塗りおよびストロークの外観、不透明度、線種、偶奇規則、実効クリップ境界を保持します
- 各ページは境界付きパスで処理され、外部画像依存のない自己完結型のSVGドキュメントを生成します
Version 3.416.0
追加
DrawSVG、DrawSVGFromFile、GetSVGWidth、GetSVGHeightが、ネイティブSVGのベクター配置と計測をDelphi、DLL、ActiveXクライアント間で追加します- SVG描画は、ビューボックス、縦横比の整列、グループ、定義と再利用、変換、クリッピング、単純なCSSおよびインラインスタイル、不透明度、楕円弧を含むパス、標準の矩形、円、楕円、線、ポリライン、ポリゴン形状をサポートします
変更
- SVGジオメトリはラスタ画像XObjectを使わずスケーラブルなPDFパスとして書き込まれ、繰り返しの計測と描画は最後に解析された境界付きSVGツリーを再利用します
- 信頼できないSVG入力は、ソースサイズ、要素数、ネスト深度で制限され、外部リソースアクセスを行わず、グラデーションペイントサーバーには最初のカラーストップを決定論的な単色フォールバックとして使用します
Version 3.415.0
追加
DrawFormula、GetFormulaWidth、GetFormulaHeightが、ネストされた数式レイアウトをDelphi、DLL、ActiveXクライアント間で追加します- 数式マークアップは、積み上げ分数、上付き・下付きの同時指定、指数付きの平方根、ギリシャ文字、一般的な数学記号、エスケープ文字、テキストグループ、境界付きネストをサポートします
変更
- 数式テキストは選択されたフォント、テキストサイズ、色、シェイピング、フォールバックチェーンを使用し、分数および根号の罫線はベクターコンテンツのままです
- 繰り返しの計測と描画は解析・計測済みのボックストリーを再利用します。ただしドキュメント、計測スケール、ペインター状態全体が変更されていない場合に限ります
Version 3.414.0
追加
MarkdownToHTML、DrawMarkdownText、DrawMarkdownTextBox、GetMarkdownTextHeight、GetMarkdownTextWidth、GetMarkdownTextLineCountが、Markdownの直接変換、計測、描画、高さ制限付き継続をDelphi、DLL、ActiveXクライアント間で追加します- Markdown入力は、ATXおよびsetext見出し、段落、引用ブロック、番号付き・番号なしリスト、配置付きパイプテーブル、フェンスおよびインデントコード、強調、太字、取り消し線、リンク、画像、自動Webリンク、エスケープ、強制改行をサポートします
変更
- 繰り返しのMarkdown計測と描画は、変換済みHTMLと境界付きHTMLレイアウトキャッシュを再利用します。生の角括弧はエスケープされたテキストのままです
DrawMarkdownTextBoxは不透明な継続トークンを返し、同じメソッドが受け付けるため、部分的にレンダリングされたインライン状態を別ページで継続できます
Version 3.413.0
変更
- HTMLの計測と描画が、解析、CSS解決、行およびテーブルジオメトリ、画像、装飾付き背景、リンクをキャッシュする境界付きレイアウト計画を共有するようになりました
- 一致する
GetHTMLTextHeight、GetHTMLTextWidth、GetHTMLTextLineCountの呼び出しは、HTML解析やレイアウト作業を繰り返さずにDrawHTMLTextに渡せます
修正
- 装飾付きテキスト背景を持つHTMLの計測が、選択されたページのコンテンツストリームへ矩形演算子を書き込まなくなりました
Version 3.412.0
追加
BeginDeferredPageLayer、EndDeferredPageLayer、ComposeDeferredPageLayers、CancelDeferredPageLayers、GetDeferredPageLayerCountが、遅延z-index合成をDelphi、DLL、ActiveXクライアント間で提供します- 負のレイヤーは既存のページコンテンツの下に、ゼロおよび正のレイヤーは上にレンダリングされ、同じz-index値に対する録画順序は安定します
変更
- 遅延レイヤーはページサイズのForm XObjectとして保持され、描画コマンドの解析やリプレイなしに、レイヤーごとに1回の配置操作で合成されます
Version 3.411.0
追加
SetPageHeaderFooterVariant、ApplyPageHeaderFooterSet、ClearPageHeaderFooterSetが、先頭ページ、奇数ページ、偶数ページ、デフォルトの各バリアントを持つ再利用可能な名前付きランニングヘッダー/フッターテンプレートを提供します- ヘッダーおよびフッターのバリアントは、現在のフォントによるプレーンテキスト、または自動高さ計測、ページごとの変数展開、整列、マージン、不透明度を備えたリッチHTMLを、Delphi、DLL、ActiveXクライアント間でレンダリングできます
変更
- 生成されるランニングヘッダーとフッターはページネーションアーティファクトであり、呼び出し元のページおよびペインター状態を保持し、タイトルや章扉ページでフォールバックを抑制する明示的な空バリアントをサポートします
Version 3.410.0
追加
StartPageNumberChapter、AddPageNumberPlaceholder、ResolvePageNumberPlaceholdersが、通常の本文テキスト内に最終ドキュメントおよび章のページ番号を埋め込む2パスワークフローを提供します- ページネーションテンプレートは、物理ページ番号、最終ドキュメント総ページ数、章名、章相対ページ番号、章の最終総数をDelphi、DLL、ActiveXクライアント間でサポートします
修正
- ワイド文字列のテキストボックスが、空のボックスを生成する代わりに、指定されたテキストを折り返しエンジンへ渡すようになりました
Version 3.409.0
追加
AutoFitTableColumnsは、装飾付きセル内容からテーブル列幅を割り当てます。テーブルの正確な幅と呼び出し元定義の列ごとの制限を考慮します- Delphi、DLL、ActiveXクライアントが、結合セル制約を含め、同じ自動テーブルサイズ調整動作を共有します
変更
- 自動サイズ調整の成功時にはキャッシュ済み行計測が無効化され、実行不可能な幅制約の場合は既存のすべての列が変更されずに残ります
Version 3.408.0
追加
DrawTextFlowColumnsは、保持された一節を1~64本の等幅カラムへ流し込みます。ガターは構成可能で、最終領域のバランス調整も選択できます- DLLおよびActiveXクライアントが、完全な公開ライフサイクルを通じてTextFlowハンドルの作成、描画、計測、検査、巻き戻し、解放を行えるようになりました
変更
- バランス調整されたカラムは、残りの一節が収まる場合に正確な行数を使用し、はみ出す領域は最大ページ容量のために完全なカラム高さを保持します
Version 3.407.0
追加
- HTMLテキストレンダリングが、埋め込みスタイルシート、インラインCSS、見出し、構造ブロック、列結合付きテーブル、ドキュメントバインド画像をサポートするようになりました
SetHTMLImageとClearHTMLImagesが、再利用可能なHTML画像ソース向けの一致するDelphi、DLL、ActiveX制御を公開します
変更
- HTMLの計測と描画が解決済みカスケードとレイアウト決定を共有するようになり、テーブル行はテキストボックスをまたいで原子的に継続し、継続状態はネストされたCSS書式を保持します
Version 3.406.0
追加
- TextFlowが、英語、ドイツ語、オランダ語、フランス語、スペイン語、イタリア語、ポルトガル語、ロシア語、トルコ語の言語認識自動ハイフネーション(境界付き)をサポートするようになりました。ドキュメントCatalogの
/Lang値からの言語継承も含まれます SetTextFlowLanguageとSetTextFlowHyphenationが、言語および最小接頭辞・接尾辞長向けの一致するDelphi、DLL、ActiveX制御を公開します
変更
- TextFlowの行分割は、完全な単語を計測し、サイズ超過トークンに対してのみ境界付き検索を使用し、任意のソフトハイフンまたは自動ハイフンは選択された分割箇所にのみ描画されるようになりました
Version 3.405.0
追加
- 自動フォントフォールバックが、欠落したCJK、記号、数学、複雑スクリプト、絵文字クラスターを、キャッシュされたインストール済みフェイスを通じて解決するようになりました。シェイピングと双方向ラン順序は保持されます
SetAutomaticFontFallback、AddFontFallback、およびフォールバックチェーン検査APIが、一致するDelphi、DLL、ActiveX制御を公開します
変更
- テキスト描画と幅計測が同じクラスター認識フォールバック決定を共有し、出力に選択されたフォールバックフォントのみを遅延埋め込みするようになりました
Version 3.404.0
追加
- 欠落グリフが、プレーンテキストおよびシェイプ済みテキスト内のUnicodeスカラーとして検出され、境界付きJSONレポートに保持され、Delphi、DLL、ActiveXコールバックを通じて公開されるようになりました
SetMissingGlyphPolicyにより、互換性のあるドロップおよび報告動作を維持するか、コンテンツ書き込み前にテキスト操作をLastErrorCode 521で拒否できます
Version 3.403.0
追加
GetAPIScopeReportJSONとClearAPIScopeReportが、決定論的なランタイムおよびコンテンツストリーム診断をDelphi、DLL、ActiveX APIで公開します- 不正なパス、グラフィックス状態、ページ更新、マークコンテンツ、フォーム、パターン、ページ、ドキュメント、出力ファイナライズの各遷移が、
LastErrorCode 117で即座に失敗するようになりました
Version 3.402.0
追加
AnalyzePageSkewJSON、DeskewPage、DeskewPageRangeが、スキャンページの回転をDelphi、DLL、ActiveX APIで検出・修正します- 傾き解析は境界付き適応解像度ラスタと粗から細へのラインプロファイルスコアリングを使用し、修正は元のPDFコンテンツを保持し、オプションのページ埋めモードも提供します
Version 3.401.0
追加
DetectPageBarcodesJSONは、PDFページ全体または境界付きページ領域から1次元および2次元バーコードを認識し、テキスト、シンボル体系、向き、妥当性、コーナーポイント、境界を決定論的なJSONとして返します- 領域スキャンは要求されたピクセルのみをレンダリングし、選択されたページを保持し、形式およびデコーダーオプションマスクをサポートし、一致するDelphi、DLL、ActiveX APIを公開します
Version 3.400.0
追加
SaveDOCXToStreamとSaveDOCXToFileは、PDFページ範囲を編集可能なWordprocessingML段落、推定見出し、ネイティブの箇条書き・番号付きリスト、検出テーブル、フォント装飾、改ページ、配置付きPNG画像へ変換します- 決定論的なDOCXパッケージライターは、OfficeオートメーションなしでCRCチェック付きの生Deflateエントリを使用し、各ページの処理中に画像データを書き込み、明示的なページ順序を保持し、選択されたPDFページを復元します
Version 3.399.0
追加
ExportPageMarkdownとExportDocumentMarkdownは、セマンティックなページコンテンツをエスケープ済みMarkdown段落、推定見出し、番号付き・番号なしリスト、パイプテーブルへ変換します。ページマーカーとフォント装飾はオプションですSaveMarkdownToStreamとSaveMarkdownToFileは、ドキュメント全体の出力をバッファリングせず、UTF-8で1ページずつ書き込みます。一致するDLLおよびActiveXエントリポイントが文字列およびファイルエクスポートワークフローを公開します
Version 3.398.0
追加
ExportPageHTMLとExportDocumentHTMLは、配置付きテキスト、埋め込みPNG画像、URIリンク、内部ページアンカーを持つ自己完結型HTML5を作成します- ドキュメントエクスポートは明示的なページ範囲順序を保持し、選択されたページを復元し、一度に1つのページ抽出モデルのみを保持し、一致するDelphi、DLL、ActiveX APIを公開します
Version 3.397.0
追加
ExtractStructuredPageとExtractStructuredDocumentは、ページテキストを段落、行、スパン、テーブル、行、セルの階層へ変換し、同じモデルをJSON、セマンティックXHTML、検出テーブルCSVとしてエクスポートします- ドキュメント抽出は一度に1つのページ階層のみを保持し、選択されたページを復元し、一致するDelphi、DLL、ActiveXエントリポイントを公開します
Version 3.396.0
追加
ApplyOCRTextLayerは、プロバイダー中立なOCR JSONを受け付け、信頼度フィルター付き・境界ボックス適合の不可視テキストを追加し、レンダリングピクセルを変更せずにスキャンページを検索可能にしますOCRPage、OCRDocument、OnOCRPageが、境界付きラスタメモリを持つプラグイン可能な1ページずつのOCRパイプラインを提供します。DLLおよびActiveX呼び出し元は既存のページレンダリングとApplyOCRTextLayerを組み合わせられます
Version 3.395.0
追加
AddImageFromFileとAddImageFromStreamがWebP画像を受け付けるようになりました。ライブラリはRIFF/WEBPコンテナーを検出し、GDI+を通じてデコードします。Windows 10 1809以降ではWebPコーデックが内蔵されています
Version 3.394.0
追加
SetRenderTargetICCにより、呼び出し元がターゲットICCプロファイルを提供でき、レンダラーのICC変換がソース色をデフォルトのsRGBではなくCMYKプルーフプロファイルを通じてマッピングします。CMYKソフトプルーフと色域プレビューが可能になります
Version 3.393.0
追加
OptimizeImagesは埋め込み画像をすべてスキャンしてデコードし、呼び出し元指定の品質でJPEGへ再エンコードし、JPEGが厳密に小さい場合にのみ元のストリームをその場で置き換えます — スキャンドキュメントや非圧縮画像を自動的に縮小しつつ、サイズが増える画像を保護します
Version 3.392.0
追加
GetImageInfoJSONはドキュメント内のすべての画像XObjectをスキャンし、画像ごとのメタデータ(オブジェクト番号、ピクセル寸法、色空間、コンポーネントあたりビット数、フィルター)をピクセルデータをデコードせずにJSONで返します。これにより画像一覧の監査はメモリ消費が総画像バイト数ではなく画像数に比例します
Version 3.391.0
追加
- JPEG2000(JPXDecode)画像が、抽出モードが対応する場合にネイティブバイトパススルーで抽出されるようになりました。デコードと再エンコードを行わず元の圧縮ストリームを保持し、既存のJPEGパススルー動作と一致します
Version 3.390.0
追加
NewMultiStopAxialShaderとNewMultiStopRadialShaderは、任意のPDF色空間(DeviceRGB、DeviceCMYK、DeviceGray、ICCBased)で任意個数の中間カラーストップを持つグラデーションを作成します。Type 3ステッチ関数でセグメントごとに1つのType 2指数補間を連結します- 新しい
TPDFGradientStopレコードが、[0,1]の位置と各ストップのコンポーネントごとの色値を運びます
Version 3.389.2
変更
- 複雑テキストシェイピングが、ドキュメントのライフタイム中にフォントごとのUniscribe SCRIPT_CACHE、HFONT、DCをキャッシュするようになりました。フォントの解析済みcmap/GSUB/GPOSテーブルは
DrawShapedText呼び出しをまたいで存続し、毎回作成・解放されなくなります
Version 3.389.1
変更
- コンテンツストリーム書き込み時の浮動小数点から文字列への変換が、汎用の
Power+IntToStr+Insertパスの代わりに、事前計算された10の累乗テーブル付きインライン桁ループを使用するようになりました。高密度グラフィックス生成のCPUオーバーヘッドを大幅に削減しつつ、バイト同一の出力を生成します
Version 3.389.0
追加
SetMemoryBudgetは、デコード済みストリームサイズのしきい値と圧縮オブジェクトストリームキャッシュに上限を設けることで大型ドキュメントのメモリ消費を制限し、ピークメモリを呼び出し元が設定した予算内に保ちます
変更
- ランダムアクセスリーダーの圧縮オブジェクトストリームキャッシュの既定が、無制限に成長する代わりに50エントリになりました。多数のObjStmストリームに触れてもデコード済みコンテンツが無限に蓄積されなくなります
Version 3.388.1
変更
- ドキュメント読み込み中に解析されたPDF名トークンが、構造ごとのハッシュプールにインターンされるようになりました。大型ドキュメント内の何百万もの重複名が、それぞれ新しい文字列を割り当てる代わりに1つの参照カウント付きバッファーを共有します。辞書キーのルックアップはポインター比較に短絡します
Version 3.388.0
追加
- CFF、OpenType-CFF、CIDキーフォントが、保存時にTrueTypeサブセット化と同じ
CreateFontPackageサービスを通じてサブセット化されるようになりました。コンテンツストリームが実際に描画したグリフのみを埋め込み、CJKおよびOTFドキュメントを大幅に縮小します - サブセット化されたCIDFontType0出力に、埋め込み済みCIDを宣言する
/CIDSetストリームが付くようになりました。PDF/A規則00032と準拠リーダーの期待を満たします
Version 3.387.0
追加
SetRenderBandingは、ページを横帯ごとに短いビットマップへレンダリングし、帯をフルサイズ出力へ合成します。高DPIおよび大判ページは、巨大なビットマップを1枚割り当てる代わりに、境界付きのピークメモリを保ちますGetRenderBandHeightはアクティブな帯の高さを、バンディング無効時は0を報告します- 新しいDelphi、DLL、ActiveXのバンドレンダリングAPIが、すべての公開サーフェスでワークフローを公開します
Version 3.386.0
追加
SetDisplayListCachingは、ページのコンテンツストリームを再生可能なディスプレイリストとして1回だけ録画します。以降の任意のズームやDPIでのレンダリングは再トークン化をスキップします。Form XObjectとType 3グリフプロシージャはそれぞれ1つのリストをキャッシュしますGetDisplayListCacheInfoはキャッシュの有効状態に加え、エントリ数とヒット/ミスカウンターをJSONで報告し、ClearDisplayListCacheは録画を破棄してメモリを解放します- 新しいDelphi、DLL、ActiveXのディスプレイリストAPIが、すべての公開サーフェスでワークフローを公開します
Version 3.385.0
追加
StartRenderPageJobは、分離されたインスタンスを通じてバックグラウンドタスクでページをレンダリングします。大きなページがレンダリング中にホストスレッドをブロックすることがなくなりますPauseRenderJob、ResumeRenderJob、CancelRenderJobは、レンダラーに組み込まれた協調キャンセルフラグと一時停止ゲートにより、処理中の単一ページをコンテンツストリーム演算子境界で中断しますWaitForRenderJob、GetRenderJobState、GetRenderJobResultは、RENDER_JOB_STATE_*コードを通じてジョブの進捗と結果を報告します- 新しいDelphi、DLL、ActiveXのレンダージョブAPIが、すべての公開サーフェスでワークフローを公開します
Version 3.384.0
追加
DAOpenFromURLは、HTTP経由でバイト範囲リクエストを使ってリモートPDFを開きます。リーダーが実際に触れるオブジェクトのみを取得し、線形化ドキュメントの先頭ページセクションを先読みして1ページ目が最初にレンダリングされますGetLinearizedURLAccessPlanは、単一の小さな範囲リクエストでリモートURLをプローブし、総長、バイト範囲対応、線形化、ページ数、先頭ページオブジェクトとセクション終端、ヒントストリーム範囲、1ページ目が必要とするバイト範囲の統合リストをJSONレポートとして返します- 新しい
PDF_NET_OPT_NO_WARMINGオプションとPDFLIB_ERROR_NET_OPEN、PDFLIB_ERROR_NET_RANGE_UNSUPPORTED、PDFLIB_ERROR_NET_HTTPの各エラーコードが、ネットワーク読み取りをDelphi、DLL、ActiveX間で公開します
Version 3.383.0
追加
SaveQDFToFileとConvertFileToQDFは、読みやすいオブジェクト書式、元のオブジェクト識別コメント、展開された主要コンテンツストリーム、間接参照可能な修復用ストリーム長を持つ、人間が編集可能な診断PDFを作成しますRepairQDFFileは、編集されたストリーム長を再計算し、相互参照データ、トレーラー、startxrefを再構築します。その場での修復も含まれます- 新しいDelphi、DLL、ActiveXのQDF APIと
PDF_QDF_OMIT_ORIGINAL_OBJECT_IDSオプションが、すべての公開サーフェスでワークフローを公開します
Version 3.382.0
追加
PDF_LINEARIZE_OBJECT_STREAMSは、先頭ページの相互参照データを直接読み取り可能なまま、境界付きオブジェクトストリームパッキングと圧縮メインxrefストリームを有効にします
変更
SaveToFileOptionsは、LinearizeとPackObjectStreamsが同時に有効な場合、オブジェクトストリームパッキングを保持するようになりました
修正
LinearizeFileが、線形化パスがソースバイトを読み取る前に切り詰めてしまうことなく、同一の入力パスと出力パスをサポートするようになりました
Version 3.381.0
追加
ValidateLinearizationFileとGetLinearizationValidationReportは、Fast Web View辞書、ヒント範囲とビットテーブル、先頭ページ依存関係とバイト境界、ページ数、メイン相互参照エントリを独立して監査します
修正
- 線形化出力が、バイト整列ベクトル、正確なページ長、ヒント相対オフセット付きの決定論的なMSBファーストのページオフセットおよび共有オブジェクトヒントテーブルを書き込むようになりました
- 生成されるヒントテーブルに、ランダムなビット幅、リトルエンディアンフィールド、不完全な共有グループ行、準拠リーダーがFast Web Viewデータを拒否する原因となるプレースホルダーのコンテンツオフセットが含まれなくなりました
Version 3.380.0
追加
- 大きなFlateストリームを、境界付きチャンクを通じて圧縮・展開できるようになりました。
GetEmbeddedFileContentToStreamとGetEmbeddedFileContentToFileによる直接ストリーミング抽出も含まれます
変更
- 大きなRC4、AES-CBC、AES-GCM暗号化ストリームの保存が、完全な一時コピーを実体化してから復号する代わりに、正確に事前計算された長さで暗号文を宛先へ直接書き込むようになりました
- 大きな埋め込みファイルのインポートは格納ストリームへインクリメンタルに圧縮され、暗号化保存の繰り返しはメモリ内ソースバイトとストリームメタデータを保持します
Version 3.379.0
追加
StartEditJournal、明示的なトランザクション境界、ロールバック、元に戻す、やり直し、履歴リセット、状態照会、クラッシュリカバリーがDelphi、DLL、ActiveX呼び出し元で利用可能になりました- 永続ジャーナルは、独立にチェックサムされたPDF状態レコードとカーソルレコードを追記し、完全なレコードをストレージへフラッシュし、末尾の書き込みが不完全または破損している場合に最後の完全なコミットを復元します
変更
- 元に戻す、やり直し、ロールバック、リカバリーは選択されたドキュメントハンドルを保持しつつ、基礎となるドキュメントオブジェクトが置き換えられた一時ハンドルを無効化します
- 元に戻すメモリは構成済みステップ数で制限され、スナップショットはトランザクション境界でのみシリアライズされ、ドキュメントのパスワードがリカバリージャーナルに書き込まれることはありません
Version 3.378.0
追加
ConvertTextToPathsは、アウトラインフォントのテキストとType 3グリフプログラムを、選択ページおよびネストされたFormにわたって再利用可能なベクターForm XObjectへ変換します- Delphi、DLL、ActiveX呼び出し元は、再帰的Form変換とソースフォントリソースの自動クリーンアップを選択できます
変更
- 変換されたコンテンツは、テキスト配置、間隔、書字方向、変換、色、ストローク設定を保持しつつ、元のテキスト表示演算子を削除します
- テキストクリッピングレンダリングモードと曖昧な共有リソーススコープは、ドキュメントオブジェクトが変更される前に拒否されます
Version 3.377.0
追加
CopyPageRangesExがPDF_COPY_PAGE_SMART_RESOURCESを受け付け、対象ドキュメントに既に存在する等価なフォント、画像、色空間、パターン、シェーディング、グラフィックス状態を再利用しますPDF_COPY_PAGE_KEEP_ORDERは既存の順序保持重複ページオプションに名前を与え、スマートリソースコピーと組み合わせられます
変更
- スマートページコピーは、ハッシュ化の前にオブジェクト番号、辞書キー順序、数値表記、ストリーム長を正規化し、一致をすべて構造的に確認し、循環または同一性センシティブなグラフをスキップします
CollateDocumentsExは、重複リソースグラフを先に割り当てることなく、ソースドキュメント間でセマンティックなリソース再利用を適用するようになりました
Version 3.376.0
追加
TrimPageContentToCropBoxは、ページCropBoxの外側に完全に存在するトップレベルの完全なテキストラン、描画パス、画像配置、Form XObject呼び出しを削除しますTPDFContentProgram.TraceGraphicsStatePairsは、1回のリプレイで命令前後の状態を取得しつつ、呼び出し元所有のトラッカーをコンテンツレイヤー間で継続します- Delphi、DLL、ActiveX呼び出し元は、ページの断裁をトリミングしつつ保持コンテンツを削減する際に、符号付きマージンを適用できます
変更
- CropBoxトリミングは、交差または未解決のオブジェクト、クリッピングパス、テキストクリッピングモード、共有Form内部を保持し、削除された文字列の後も相対的なテキスト送りを維持します
Version 3.375.0
追加
TPDFStructureが、境界付きの低レベルオブジェクト解析と正確なリミット診断のためにDecodeMaxDepth、LastDecodeStatus、LastDecodePositionを公開します
変更
- PDF配列と辞書が、ページコンテンツストリーム内のネストされたオペランドを含め、明示的な境界付き状態スタックを通じて解析されるようになりました
セキュリティ
- 既定の256コンテナ制限より深い信頼できない直接オブジェクトは、スレッドスタックを使い果たす前に拒否されます
Version 3.374.0
追加
AddType3Fontは、呼び出し元定義の行列とフォント境界を持つプログラム可能なType 3フォントを作成しますAddType3Glyphは、自動メトリック、エンコーディング、幅、Unicode抽出マップ付きのバイトコードグリフグラフィックスプログラムを書き込みますAddType3FontResourceは、フォント、画像、グラフィックス状態、シェーディング、その他の間接リソースをグリフプログラムに公開します- Delphi、DLL、ActiveX呼び出し元は、外部フォントプログラムをインストールまたは埋め込むことなく、Type 3の記号、スタンプ、特殊目的フォントを作成できます
変更
- Type 3グリフの更新は、既存のページリソースが使用するフォントハンドルを保持しつつ、派生フォントテーブルをその場でコンパクトに再構築します
Version 3.373.0
追加
- 構造ツリーカーソルは、親、子、兄弟間を移動しつつ、修復や並べ替えをまたいで要素識別を保持します
ReparentStructTreeCursorは構造要素を移動または並べ替え、自己親子設定や子孫サイクルを拒否しますNormalizeStructTreeは子コレクションを正規化し、親リンクを修復し、直接要素を昇格させ、無効、重複、循環のエッジを削除します
変更
- 構造ツリー修復は、マークコンテンツの所有権と親ツリーマッピングを保持しつつ、階層編集を後続の保存に対して安全にします
Version 3.372.0
追加
EnumeratePageElementsは、編集可能なテキスト、画像、パスコンテンツに対する安定した短命のハンドルを返しますDeletePageElementは、列挙されたオブジェクトを、後続の相対テキスト配置を保持しながら削除しますTransformPageElementは、選択されたオブジェクトの周囲にアフィン行列を書き込み、無関係なコンテンツは変更しません
変更
- 編集可能要素ハンドルは元のコンテンツフィンガープリントを検証し、古いまたは曖昧な変更を拒否します
Version 3.371.0
追加
ExportObjectJSONは、完全なトレーラーと間接オブジェクトグラフを決定論的で可逆な型付きJSONへストリーミングしますImportObjectJSONはオブジェクトグラフを検証してマージするか、間接オブジェクトセット全体を置き換えますGetObjectJSONとSetObjectJSONは、Delphi、DLL、ActiveXを通じてオブジェクト単位の原子的な検査と更新を公開します
変更
- オブジェクトグラフJSONは、バイナリ名、辞書キー、文字列、ストリーム、参照世代、スカラー型、オブジェクト番号順序を、曖昧なJSON強制変換なしに保持します
Version 3.370.0
追加
- コンパイル済みArlington TSVモデルローダーが、安定した再利用可能ハンドルと定義数・ルール数を提供します
- モデル駆動の構文検証は、オブジェクトキー、必須エントリ、型、PDFバージョンでの利用可否、直接・間接参照、許容値、リンクされたオブジェクトグラフをチェックします
- Delphi、DLL、ActiveX APIはファイルまたは既存の共有検証パイプラインを検証し、構造化された診断リストを返します
変更
- 構文検証は共有の解析およびオブジェクトキャッシュを再利用し、曖昧なリンクをオブジェクト識別子で選択し、オブジェクト定義の重複訪問を抑制します
Version 3.369.0
追加
- 再利用可能な検証パイプラインは、PDFを1回だけ開いて解析し、その後PDF/AおよびPDF/UAタスクを実行するか、共有リーダーとオブジェクトキャッシュに対して結合レポートを構築します
- Delphi、DLL、ActiveX APIが、パイプラインの作成、タスク実行、レポート生成、解析回数の検査、明示的解放を公開します
変更
CreatePreflightReportとCreateValidationReportは、複数のコンプライアンスチェックが選択された場合に1回の解析と遅延オブジェクトキャッシュを共有します
Version 3.368.0
追加
AddStructureNamespaceはPDF 2.0構造名前空間を登録し、StructTreeRoot/Namespacesを通じて共有/Namespace辞書を書き込みますAddRoleMapNSは、1つの名前空間内または登録済み名前空間間でカスタム構造タイプをマッピングします- デフォルトおよび要素ごとの名前空間セレクター、名前空間照会、DLLエクスポート、ActiveXメソッドが完全なワークフローを公開します
変更
- PDF/UA-2およびWTPDFアクセシビリティモードは、未割り当ての既存および将来の構造要素にPDF 2.0標準構造名前空間を自動的に割り当てます
GetStructTreeItemTextは/RoleMapNSチェーンを解決し、InfoID 9を通じて要素の名前空間URIを返します
Version 3.367.0
追加
SetPDFUA2Modeは、PDF/UA-2メタデータ、PDF 2.0バージョン設定、ドキュメント言語、マークコンテンツ保護、タイトル表示設定を有効にしますSetWTPDFModeは、WTPDF 1.0のアクセシビリティレベル、再利用レベル、またはその両方を宣言し、無関係なPDF Declarationsを保持します- Delphi、DLL、ActiveXのゲッターが、アクティブなPDF/UAパートとWTPDF宣言マスクを公開します
変更
- PDF/UA診断がパート2を認識し、
pdfuaid:rev=2024を要求し、PDF 2.0の最低バージョンを強制するようになりました
Version 3.366.0
追加
SetCryptFilterConfigurationは、/StrF、/StmF、/EFFを通じて、PDF文字列、通常ストリーム、埋め込みファイルストリームの暗号化を個別に選択します- Delphi、DLL、ActiveXのゲッターが保留中の各暗号化ターゲットを公開します。確立済みの埋め込みファイルのみの設定との互換性は維持されます
変更
- AESパスワード、公開鍵、フィンガープリントの各暗号化は1つの暗号化フィルターポリシーを使用し、保護対象のない構成を拒否し、選択的ポリシーがRC4ハンドラーへ適用されるのを防ぎます
修正
- 暗号化フィンガープリントが、完全な暗号化レコードを復元し、フィンガープリント接頭辞を切り詰めたりオブジェクトコンテンツを二重に暗号化したりせずに、通常のオブジェクトライターを通じて保存するようになりました
Version 3.365.0
追加
- PDF 2.0の非暗号化ラッパーが、標準の暗号化ペイロードメタデータ付きで、完全な暗号化PDFを非表示の初期コレクションドキュメントとして運べるようになりました
- Delphi、DLL、ActiveX APIが、ファイル、バイナリ文字列、ストリーム、バイト配列データから暗号化ペイロードを作成、識別、検査、抽出します
変更
- ラッパー作成は外部暗号化とPDF MACを防止し、ハンドラー名を検証し、ソースパスの漏えいを回避し、ペイロードバイトを正確に保持します
Version 3.364.0
追加
TPDFlibEUTSLTrustSourceは、EU LOTLおよび各国TSLのXML署名を検証し、信頼されたサービスのスナップショットを公開し、時間対応のCAおよびTSAアンカーを供給しますTPDFlibSignatureVerifierは外部信頼ソースを受け付け、適格証明書、電子署名、電子シール、QSCDのステータスをサービス由来情報付きで報告します
変更
- 信頼リストの読み込みは、ピン留めされていない署名者、分離または曖昧な署名、弱いアルゴリズム、ダイジェスト変更、領域不一致、古いリスト、不正な基準、境界のないネットワークまたはXML入力に対してフェイルクローズドします
- TSLの完全更新はトランザクショナルであり、証明書チェーンエンジンは手動アンカーとソースアンカーを組み合わせ、信頼リストのリビジョンと検証時刻で再利用します
Version 3.363.0
追加
TPDFlibPKCS11Clientは、PKCS #11 2.xおよび3.xモジュールをロードし、トークンを列挙し、ユーザーを認証し、証明書と秘密鍵をペアリングし、CSPやKSP登録なしでPDFダイジェストに署名します- トークン、スロット、メカニズム、関数テーブル、コールバックの各型が、直接モジュールロードとアプリケーション管理の関数リストの両方をサポートします
変更
- RSA署名は、生の
CKM_RSA_PKCSの前に必要なDERDigestInfoを構築し、ECDSA署名は要求時にトークンのP1363出力をDERへ変換します - 共有モジュールライフタイム、永続セッション、保護された認証パス、操作ごとの認証、境界付きホットプラグ再試行、操作前のセッション復旧により、HSMの信頼性とスループットが向上します
Version 3.362.0
追加
TPDFlibCSCClientは、リモート署名資格情報を検出し、ハッシュバインドまたは先行取得の署名アクティベーションデータを取得し、CSC APIを通じて単一またはバッチのダイジェスト署名を提出します- このクライアントは
OnExternalDigestSignに直接接続するため、リモートRSAおよびDER ECDSA署名は既存のCMS構築、署名サイズ設定、公開鍵検証パスを再利用します
変更
- 内蔵HTTPトランスポートは、OAuthベアラー認証のための呼び出し元指定リクエストヘッダーを受け付けつつ、応答サイズとフェーズタイムアウトの制限を維持します
- 資格情報、承認、署名の各応答が、重複または不正なJSONフィールド、無効なX.509もしくはBase64データ、未対応アルゴリズム、不一致のバッチサイズ、古いアクティベーションデータ、SCALハッシュバインド違反を拒否するようになりました
Version 3.361.0
追加
VerifyAdESHistoricalとVerifyAdESHistoricalByNameは、署名タイムスタンプとドキュメント包括タイムスタンプから信頼された履歴管理時刻を自動的に導出しますTPDFlibAdESHistoricalValidationReportは、要求および実効チェーン結果、証明源と時刻、アーカイブカバレッジ、タイムスタンプ数、失敗固有のステータスを公開します
変更
- 履歴失効検証は、信頼されたドキュメント全体のタイムスタンプが現在のDSSおよびVRIエビデンスを封印しない限りフェイルクローズドします
- 証明書およびOCSPの検証時刻が、正確な整数ミリ秒演算でWindowsファイルタイムへ変換されるようになり、証明書有効期間の境界でのずれが解消されました
Version 3.360.0
追加
SetSignatureFieldSeedValue、AddSignatureFieldSeedCertificate、ClearSignatureFieldSeedValueが、未署名署名フィールドに対する標準の/SV制約を作成・管理しますGetSignProcessSeedValueErrorは、署名を妨げた必須フィルター、SubFilter、ダイジェスト、理由、失効情報、証明書、バージョン、または未対応制約の正確な内容を報告します
変更
- 署名は、選択された識別情報を開いた後、フィールドまたは出力先を変更する前に、必須の署名フィールドシード値を強制するようになりました
- 未対応の必須シード値制約はフェイルクローズドし、セミコロン区切りの許容値と正確なDER署名者証明書はDelphi、DLL、ActiveX API間で一貫して強制されます
Version 3.359.0
追加
AddSignProcessRevocationCRLとAddSignProcessRevocationOCSPは、従来のadbe.pkcs7.detached署名に対して、検証資料を署名済みadbe-revocationInfoArchival属性へ埋め込みますClearSignProcessRevocationInfoは、署名が生成される前に、署名プロセスからすべてのアーカイブ失効資料を削除します
変更
- 裸の
BasicOCSPResponse値は成功ステータスのOCSPResponse構造へ正規化され、バイト同一のCRLと正規化済みOCSP応答は重複排除されます - Adobeアーカイブ失効属性は、Windows CryptoAPIと、最新のRSA、ECDSA、Ed25519、CNG、外部ダイジェストの各署名パスの両方でサポートされます
Version 3.358.0
追加
SetSignProcessContentsEstimateは、ベースCMS、キャッシュ済み証明書チェーン、計画済みのCRLおよびOCSP資料、期待されるRFC 3161トークン、構成可能な安全マージンから署名プレースホルダーをサイズ設定しますGetSignProcessEstimatedContentsBytesは、直近の署名試行に対して選択されたアライン済みの生バイト容量を報告します
変更
- 新しい署名プロセスは、ローカルキャッシュから追加の証明書チェーン容量を自動的に発見し、
/Contents容量を256バイトへアラインする前に15パーセントのマージンを適用します - CNG、HSM、外部ダイジェスト署名が、固定の16 KiBプロバイダーペイロードを予約する代わりに、公開証明書からRSA、ECDSA、Ed25519の署名サイズを導出するようになりました
- 自動推定はネットワーク取得を行わず、秘密鍵や外部署名コールバックを呼び出しません
Version 3.357.0
追加
SetSignProcessAppearanceTemplateは、署名者、理由、場所、連絡先、日付、フィールド、ページ、アプリケーション定義のプレースホルダーから再利用可能な可視署名レイアウトを構築しますSetSignProcessAppearanceVariableは、個々の署名プロセスに大文字小文字を区別しないカスタム値を追加し、プロセスを再作成せずに削除できます
変更
- 可視署名テンプレートは、構成可能な署名時刻書式とエスケープされたリテラル中括弧をサポートしつつ、既存の画像およびドキュメントタイムスタンプの優先規則を保持します
- テンプレート展開は境界付き入力サイズと償却線形出力バッファーを使用するため、大きな再利用可能レイアウトでも文字列全体の反復コピーが発生しません
Version 3.356.0
追加
TPDFlibSignatureVerifierは、DERまたはファイルベースのX.509トラストアンカーを追加し、重複なしの件数を報告し、Windows証明書ストアを変更せずにクリアできます
変更
- 空でないカスタムトラストアンカーセットが設定されると、署名者証明書とRFC 3161タイムスタンプの両方の検証が排他的なメモリ内ルートエンジンで行われるようになりました
- カスタムセットをクリアすると、以降のチェックで既定のシステム信頼エンジンが復元されます
セキュリティ
- カスタム信頼検証はWindowsの
RootおよびTrustedPeopleストアを除外し、埋め込みPDFおよびDSS証明書は信頼されないチェーン構築資料のままです
Version 3.355.0
追加
SetSignProcessExternalDigestSignerとそのファイル版は、外部署名者が供給するRSAまたはECDSA結果を囲む分離CMS署名を構築しますOnExternalDigestSign、DLSetExternalDigestSignCallback、SetExternalDigestSignCallbackが、HSMおよびリモート署名統合のための同期Delphi、DLL、ActiveXコールバックサーフェスを提供します- 外部ECDSAコールバックは、DER署名または固定幅P1363の
r || s値のどちらでも返せます
変更
- 外部署名者はCMS認証属性の最終ダイジェストのみを受け取り、PDFバイト範囲と属性が完成した後に1回だけ呼び出されます
- プレースホルダーのサイズ設定は、外部署名者を呼び出さずに構成済みの署名予約を使用します
- 空またはサイズ超過の非パススルー署名が、空または切り詰められた
/Contents値を書き込む代わりに署名プロセスを失敗させるようになりました
セキュリティ
- 外部から返されたすべての署名は、PDFへ書き込まれる前に構成済みX.509証明書に対して検証されます
Version 3.354.0
追加
SetSignProcessCNGKeyとSetSignProcessCNGKeyFromFileは、ソフトウェア、TPM、ハードウェアトークン、クラウドの各キーストレージプロバイダーの名前付きNCrypt鍵で、秘密鍵資料をエクスポートせずに署名しますSetSignProcessCNGKeyByHandleは、アプリケーション管理の鍵検索およびポリシーワークフローに向けて、呼び出し元所有のNCRYPT_KEY_HANDLEを受け付けますSetSignProcessPrivateKeyUIは、証明書バインド済みプロバイダーがPIN、同意、トークン、クラウド承認の各インターフェースを表示してよいかどうかを制御します
変更
- 名前付きおよび借用CNG鍵は、SHA-1、SHA-2、SHA-3の各ダイジェストスイートにわたるRSAおよびECDSA分離署名に1つの直接NCrypt署名パスを使用します
- CNG署名プレースホルダーのサイズ設定が、事前の秘密鍵操作を行わなくなりました。トークンプロンプト、リモート承認、監査エントリー、プロバイダー課金の重複を回避します
- サイレント署名が既定のまま、対話モードではサイレント取得および署名フラグを除去し、外部プロバイダーが自身の認証フローを完了できるようにします
セキュリティ
- 明示的なCNG識別情報は証明書互換のアルゴリズムグループについてチェックされ、完成したCMS署名は受理前に提供された証明書に対して検証されます
Version 3.353.0
追加
- 分離PDF署名を、ECDSA P-256、P-384、P-521証明書でSHA-1、SHA-2、またはSHA-3ダイジェストスイートを使用して生成・検証できるようになりました
- Ed25519署名は、生シードまたは暗号化なしPKCS #8秘密鍵を持つDER X.509証明書を、Delphi、DLL、ActiveXインターフェースで受け付けます
SetSignProcessDigestAlgorithmがSHA3-256、SHA3-384、SHA3-512をアルゴリズムコード5、6、7として受け付けます
変更
- 最新の分離署名は、プロバイダー選択の識別子に依存せず、標準準拠のダイジェストおよび署名アルゴリズム識別子を持つ正規CMSビルダーを使用します
- 最新署名の検証は、分離コンテンツダイジェスト、正規署名属性、埋め込み署名者識別、公開鍵署名を、従来のCryptoAPIアルゴリズムサポートを必要とせずに検証します
セキュリティ
- Ed25519検証は、非正規スカラー、非正規点エンコーディング、低次鍵、不一致の証明書識別、変更された署名属性を拒否します
Version 3.352.0
追加
EncryptPublicKeyは、共有パスワードなしで、複数のX.509証明書受信者に向けたAES-128またはAES-256のAdobe.PubSecドキュメントを作成します- 受信者はDER、PEM、PKCS #12 PFX、現在ユーザー証明書ストア、ローカルマシン証明書ストアから読み込め、それぞれ独立したPDF権限マスクを受け取れます
- PFXおよび証明書ストア資格情報は、通常のファイル、ストリーム、文字列読み込みAPIを通じて公開鍵暗号化ドキュメントを開きます
- 受信者数、権限グループ数、認証状態、資格情報ライフサイクル制御がDelphi、DLL、ActiveXインターフェースで利用できます
修正
- ActiveXタイプライブラリ生成が、既存のPDF/UA、タグ付きPDF、アーティファクト、ドキュメント言語、関連ファイルの各メソッドを保持しつつ、公開鍵APIを追加し、確立済みのバイナリインターフェーススロットを動かさないようになりました
DecryptFileは、保護コンテンツの書き換え前にPDF MACシグナルを検証しつつ、通常の暗号化ドキュメントに対してフルリーダーの事前確認なしで直接AES-256書き換えパスに到達します
セキュリティ
- CMS EnvelopedDataは境界付きDER解析で検証され、受信者権限グループは暗号化シードペイロードで認証され、曖昧または不正なエンベロープは専用エラーコードで拒否されます
- 同じ権限を持つ受信者は1つのエンベロープにグループ化され、出力サイズと鍵導出作業を削減しつつ、証明書固有の鍵転送を保持します
Version 3.351.0
追加
SetPDFMACEnabledは、AES-256リビジョン6およびAES-GCM暗号化ドキュメントに対するスタンドアロンのPDF MAC完全性トークンを作成します。必須の鍵導出ソルト、権限シグナル、バイト範囲、CMS認証データを含みますGetPDFMACStatusとValidatePDFMACが、検証結果をDelphi、DLL、ActiveXインターフェースで公開します
セキュリティ
- 保護ドキュメントは、パスワード認証後、ページが公開される前に自動検証されます。トークン欠落、不正なDER、未対応アルゴリズム、不完全なカバレッジ、鍵ラップ失敗、変更された認証値は、専用エラーコードで拒否されます
EncryptFile、EncryptFileEx、DecryptFileは、ファイルレベル暗号化と検証済み復号ワークフローを通じてPDF MAC保証を保持するようになりました
Version 3.350.0
追加
Encrypt、EncryptFile、EncryptFileExが強度5を受け付け、256ビットAES-GCM認証付き暗号化、リビジョン7セキュリティ辞書、ISO TS 32003拡張宣言を持つPDF 2.0ドキュメントを作成します- リーダーおよびファイル復号パスがAES-GCMドキュメントを開き、新しいモードを
EncryptionAlgorithm、GetEncryptionLevel、SecurityInfoで公開します
セキュリティ
- AES-GCM認証失敗時に改変された文字列やストリームが拒否され、
DecryptFileが部分的な出力を削除するようになりました
Version 3.349.0
変更
LinearizeFileは、大きなオブジェクトグラフを安定したO(n log n)マージパスで順序付けし、間接依存関係を明示的な作業スタックで走査するようになりました。二次の順序付け作業と、到達可能オブジェクトごとの呼び出しフレームを回避します
修正
- 先頭ページセクションに注釈辞書と、そこから到達可能な外観、アクション、リソースが含まれるようになりました。Fast Web Viewクライアントは、先頭ページ境界の向こうからオブジェクトを取得せずに先頭ページの注釈を表示できます
Version 3.348.2
修正
- ライブラリがWin64ビルドで警告やヒントなしにコンパイルされるようになりました。FNV-1a文字列ハッシュの初期化子が
Integerの範囲を超えていたため、アキュムレーターをCardinalに移し、バイト単位で同一のマスク結果を得ています。コンパイラが決して読まれないと証明した10個の代入 — と1つの未使用変数 — を削除しました。ランタイム動作は変更されていません
Version 3.348.1
修正
- ビューアコントロールがDelphi XE5およびXE6で再びコンパイルされます。per-monitor DPIハンドラーが
WM_DPICHANGEDを使用していましたが、これはXE7より前のWinapi.Messagesが持たないメッセージ定数でした。そのため、古いツールチェーンを対象とするトライアルビルドマトリックスはPDFlibViewer.pasで未宣言識別子エラーにより停止していました。この定数は、既に提供していないコンパイラでのみローカルに宣言されるようになり、ランタイムのDPI処理は変更されていません
Version 3.348.0
追加
ConvertToPDFAは、通常のドキュメントを1回の呼び出しでアーカイブ用に変換します:選択したパートが禁じるものを削除し、パートが要求するものを追加し、ドキュメントが主張するパートを明記し、その結果を検証します- 主張は検証に合格した場合にのみ満たされたと報告されます。アーカイブ用であると書かれていて実際にはそうでないファイルは、本来なら捕捉したはずのシステムをそのまま通過してしまうため、判定は試行ではなく検証から得られます
GetPDFAConversionReportは、実行された内容と、ドキュメントがまだ基準を満たさない場合に何が妨げているかを一覧表示します
Version 3.347.1
修正
SanitizeDocumentが、削除を報告したJavaScriptを実際に削除するようになりました。以前はパッケージリストに先頭エントリーより前のエントリーを要求して何も得られず、1つもスクリプトを削除しないまま終了していました — そのため無害化済みのドキュメントが、開いたときにまだスクリプトを実行していました- 最後のスクリプトの削除時に、残された空の名前ツリーも削除されるようになりました。残っていれば、リーダーに対してドキュメントがスクリプトを持つと示し続けてしまいます
Version 3.347.0
追加
RepairDocumentMetadataは、PDFが自身の作成者を示す2つの場所を一致させます。検証器はドキュメント情報とXMPパケットの両方を読み、両者が不一致のファイルを拒否します。この点で失敗するファイルの大半は、単にXMP側が書き込まれていないだけです- 片方だけが値を持つ場合、もう片方はそこから埋められるため、すでに記録された内容が失われることはありません
- PDF/Aモードに設定されたドキュメントは、失われた標準識別情報が復元されます。これは呼び出し元が独自のパケットを提供した場合に常に起こります。これがないと検証器はファイルを通常のPDFとして読み、主張されたパートのすべての規則を未達成として報告します
- 修復されたエントリー数を返します
Version 3.346.0
追加
RecolorDocumentが、ドキュメントが描くグラデーションを変換するようになりました。グラデーションの色空間とその背後にあるストップが一体として移動するため、変換されたグラデーションは、チャネルをグレーレベルと誤読したものではなく1つの色として読めます- グラデーションを描くパターン内部やページのシェーディングリソース内に書かれたものも、独自オブジェクトを与えられたものと同様に検出されます
変更
- サンプリング関数またはPostScript関数から構築されたグラデーションはそのまま残され、メッシュタイプも同様です。メッシュは色を関数ではなくストリームで保持します。これらの書き換えは色変換とは別の操作です
Version 3.345.0
追加
RecolorDocumentが、インデックス画像をそのカラーテーブルを変換することで扱うようになりました。各サンプルはすでに持っていたインデックスを保持します。このような画像は、サンプルのパック形式や圧縮形式にかかわらず変換できます。スクリーンショットやグラフが通常保存されるパレット画像も含まれます
Version 3.344.0
追加
RecolorDocumentが、ページが設定する色だけでなく描く画像も変換するようになりました。グレーに変換されたドキュメントが、グレーページ上にカラー画像を表示することがなくなります- ソフトマスクとステンシルマスクは手つかずのままです。どちらも色ではなくカバレッジとして読まれるため、変換するとマスクを画像として表示してしまいます
変更
- 画像は、コンポーネントあたり8ビット、デバイス色空間、圧縮なしまたは通常のFlateを持つ場合に変換されます。JPEGやファックス画像は再エンコードが必要であり、それは色変換とは別の操作のため、それらは独自のバイトを保持します
Version 3.343.0
追加
- ドキュメント全体、または単一ページを1つの色空間へ移せます。
RecolorDocumentとRecolorPageはグレーに1、RGBに2、CMYKに3を受け取り、変換された色数を返します - 1つの色空間を期待する印刷会社へ作業を送る前や、カラードキュメントを再描画せずにグレーへ変換するのに有用です。ジオメトリ、テキスト、画像は正確にそのまま残り、変更されるのは色演算子だけです
- 対象空間ですでに設定済みの色はそのまま残されるため、色の変更が不要なページは元のバイトを保持します
- ICCBased、Separation、Indexed、Patternの各空間で設定された色はそのまま残されます。プロファイルを読まずにこれらを変換すると、ページの見た目を保存するどころか変えてしまいます
Version 3.342.0
追加
- PDF/A-4アーカイブ対応。これはPDF 2.0を基盤とする標準のパートです。
SetPDFAModeに3つの新しいモードが追加されます:9はPDF/A-4、10は3Dおよびリッチメディアを追加許可するPDF/A-4e、11は任意形式の埋め込みファイルを許可するPDF/A-4fです - パート4ドキュメントは標準が定める方法で識別されます:パート番号とそのパートの発行年により、通常のPDF/A-4には適合レベル文字が付かず、2つの拡張にはEまたはFが付きます
- パート4ドキュメント内のすべての埋め込みファイルは、パート3と4の両方が要求するとおり、ドキュメントとの関連性を明記します
変更
- PDF/Aチェックがパート4を認識し、そのファイルを1.7ではなくPDF 2.0に対して判定し、リビジョン年を明記しないパート4ファイルを報告します
Version 3.341.2
修正
- PDF/A-3およびPDF/UAドキュメントが、各埋め込みファイルとドキュメントとの関連性を明記するようになりました。関連性は先頭以降の添付にのみ書き込まれ、最後のものには決して書き込まれなかったため、1つの添付を持つドキュメント — 通常はこちらです — は関連性をまったく持たず、この点で検証に失敗していました
- PDF/UAレポートが、関連性の存在をチェックする際に最後の埋め込みファイルを見落とさなくなりました
Version 3.341.1
修正
- PDF/Aチェックが、ファイルが持つ標準マークを読み取るようになりました。以前は読み取れず、すべてのファイルが宣言内容にかかわらずパート1に対して判定されていました:有効なPDF/A-2またはPDF/A-3ドキュメントが、マークを持たずバージョンが高すぎると報告されていました。これは事実と正反対です
- マークは、プロデューサーが要素として書いたか属性として書いたかに関わらず読み取られます。どちらも通常のXMPであるため、片方の形式だけを受け付けると、他のプロデューサーのファイルがマークなしに見えていました
Version 3.341.0
修正
- 縦書きテキストが各文字の縦書き形を使用するようになりました。テキストがページを下向きに流れるとき、括弧、長音記号、小さな仮名は異なる形で描かれ、フォントがそれらの形に名前を与えます。これまでは横書きの形が描かれており、括弧が列に沿って立つのではなく列を横切って寝てしまっていました
- 形はフォント自身の縦書きフィーチャーから取られるため、各フェイスは文字から推測した代替ではなく、デザイナーが描いたものを提供します
GetVerticalTextHeightは描画される形を計測するため、文字の形が変わる列でも正しく計測されます- 縦書き形に名前を与えないフェイスは、以前とまったく同じに描かれます
Version 3.340.0
追加
- 縦書き対応。日本語や中国語のテキストをページの下方向に組むためのものです。
SetVerticalWritingModeで有効化すると、以降の通常のDrawText呼び出しは下向きに流れます。GetVerticalWritingModeが状態を報告します。以前はテキストを縦書きにするにはすべての文字を手で配置する必要がありました - この方法で描かれたテキストは、フェイス自身の縦書きメトリックを持つ縦書きモードのType0フォントを通るため、リーダーは一律のステップではなくデザイナーが意図した距離で各文字を進め、テキストをコピーすると元の文字が返ります
- 独自の縦書きメトリックを持たないフェイスは、文字ごとに1em進みます。これはリーダーがデフォルトで行うことです
GetVerticalTextHeightは、文字列が描画前にページをどこまで下るかを報告し、DrawVerticalTextはモードを変更せずに1つのランを縦に描きます- 1つのフェイスの横書き形と縦書き形は分けて保持されるため、1つのページが両方を扱っても互いに妨げません
Version 3.339.0
追加
- 自動タグ付けがテーブルをカバーするようになりました。新しいテーブルビットをオンにすると、
DrawTableRowsはテーブル、その行、そのセルを構造ツリーへ運びます。これによりリーダーは、テーブル全体を無関係なテキストの連なりとして読み上げる代わりに、値がどの列にあるかを言えます SetTableHeaderRowCountは先頭の何行がヘッダーかを指定し、GetTableHeaderRowCountはそれを報告します。それらの行は列スコープを持つヘッダーセルとして書き込まれ、これによってリーダーは現在いる値の見出しを言えます- この方法で指定されたヘッダー行はその場にとどまります。各ページの先頭で繰り返すことは、
DrawTaggedTableRowsで行うレイアウト上の決断のままです
変更
AUTOTAG_DEFAULTが、テキスト、ページ装飾、図に加えてテーブルもカバーするようになりました。モードを数値として渡すと、従来の意味がそのまま保持されます
Version 3.338.0
追加
- 自動タグ付けが画像をカバーするようになりました。新しい図ビットをオンにすると、描画された画像は構造ツリー内の図になり、リーダーは黙って通り過ぎるのではなく到達します
RegisterFigureは、次の画像が持つ説明を与えます。リーダーは画像の代わりにその説明を読み上げます。これこそ視覚を持たないリーダーが画像から得られるすべてですRegisterDecorationは、次の画像が意味を持たない罫線、境界、背景であることを示し、その画像はレイアウトアーティファクト内に描かれるため、リーダーは何も語らない画像を発表するのではなくスキップします- 両方の設定は1つの画像で消費されるため、後の画像が前の画像宛ての説明を継承することはありません
変更
AUTOTAG_DEFAULTが、テキストとページ装飾に加えて図もカバーするようになったため、デフォルトを要求すると3つすべてを要求することになります。モードを数値として渡すと、従来の意味がそのまま保持されますRegisterHeadingで登録された見出しが、名付けたテキストを待つようになりました。間に描かれた画像は図になり、見出しレベルを自分のものとするのではなく、見出しを後続のテキストに残します
Version 3.337.1
修正
BeginTag単独で構築されたドキュメントが、タグ付きとしてマークされるようになりました。これまでこのようなファイルは、どのリーダーも見ない完全な構造ツリーを持っていました。リーダーはカタログが別のことを言わない限りドキュメントをタグなしとみなすためです(ISO 32000-1 §14.7.1)。支援技術は、ページに構造がまったくないかのように発表していました- マークは構造ツリーが実際に書き込まれた場合にのみ追加されるため、タグのないドキュメントは引き続きタグなしと報告され、呼び出し元が行った
SetMarkInfo設定はそのまま残ります
Version 3.337.0
追加
- 自動構造タグ付け。
SetAutoTagModeを有効にすると、通常の描画が独自の構造を運ぶモードになります:テキストは段落になり、RegisterHeadingの直後に描かれたテキストはそのレベルの見出しになり、ランニングヘッダーとフッターはリーダーがスキップするアーティファクトになります。アクセシブルなドキュメントの作成は以前、すべての描画呼び出しを手でBeginTagとEndTagで包むことを意味していました - モードを有効にするとドキュメントがタグ付きとしてマークされます。リーダーが構造を存在するものとして扱うには、このマークが先に必要です
- 自動タグ付けは手で開かれたタグの内側では脇に退くため、ドキュメントの一部を呼び出し元が記述し、残りをライブラリに任せられます。両者が互いに入れ子になることはありません
- アーティファクト内では何もタグ付けされず、空のテキストは要素を開かないため、どちらもリーダーが空白と発表する構造要素を生成することがありません
Version 3.336.0
追加
- テキストフロー。1つの文章を複数のボックス、カラム、ページにまたがって流すためのものです。
NewTextFlowがテキストを受け取り、DrawTextFlowが収まるだけをボックスに埋め、入りきらなかった最初の単語の位置にフローを残すため、次のボックスは正確にそこから続行します MeasureTextFlowは、何も描画せずに、残りのテキストが指定幅で何行必要かを報告するため、レイアウトを確定する前にサイズを決められます- 1行分の余裕がないボックスは何も取らず、フローをそのまま残すため、ボックスを提案してもテキストを失うことがありません
SetTextFlowMinLinesは指定した行数をまとめて保持します:それより少ない行しか取れないボックスは何も取らず、行を先へ送ります。カラムの末尾に1行だけがらみ落ちするのを防ぎますGetTextFlowRemaining、TextFlowFinished、RewindTextFlowが進捗を報告・リセットします。以前はボックスを描画すると、はみ出した内容が何を失ったか知る方法もなく破棄されていました
Version 3.335.0
追加
- 自動目次。本文を書きながら見出しを
RegisterHeadingで登録し、後からDrawTOCがレイアウトします:各エントリはレベルでインデントされ、点線が右揃えのページ番号まで続き、行全体が見出しへリンクします - 見出しは、持っていたページ番号ではなくどこを指すかを覚えるため、完成した本文の前に目次ページを挿入しても — これにより参照する全ページの番号が変わりますが — すべてのエントリとリンクが正しく保たれます
MeasureTOCは何も描画する前にリストが必要なページ数を報告し、DrawTOCは配置したエントリ数を返すため、1ページを超えるリストは、すでに配置した件数を渡して再度呼び出すことで描画できますPopulateOutlineFromHeadingsは同じ見出しから、レベルでネストされたドキュメントブックマークを作成します- ページ番号が残すスペースに対して広すぎるタイトルは、番号の下に食み出すことを許さず、1文字ずつ短くされ省略記号が付きます
Version 3.334.1
修正
- ページ挿入後のページ選択が、挿入前にその番号を持っていたページを指していたため、既存ドキュメントに前付を描き込むと誤った本文ページに書き込まれる可能性がありました。ページ選択は新しい番号付けに従うようになりました
Version 3.334.0
追加
GetSignatureModificationVerdictは、リーダーが署名済みドキュメントについて実際に持つ疑問に答えます:この署名の後に追加された更新は、その認証レベルが許すものだったか?認証署名は権限レベルを持ち、判定は以降の各リビジョンをそれに対してチェックするため、検証材料の追加は許可済みと読まれ、ページの書き換えはそうなりませんGetSignatureEffectiveMDPLevelは有効なレベルを報告し、GetSignatureModificationDetailは回答の背後にあるリビジョンと変更の種類を名指します- 判定は、「何も追加されなかった」「許可された変更のみ」「許可されない何かがある」「判定できなかった」「署名がリビジョン境界で終わっていない」を区別します。最後は、署名がカバーすると主張する範囲の内側にバイトが存在することを意味します
- 疑わしさが承認として報告されることはありません:構造を検証できなかった認証、影響フィールドを追跡できないフィールドロック、読み取れない何かを含むリビジョン、署名済み範囲の先で認識可能なリビジョンを形成しないバイトは、すべて許可済みではなく未確定として報告されます
変更
- どの用途にも説明のつかない間接配列が、帳簿付けではなく未確定として報告されるようになりました。ページの注釈リストやコンテンツリストは配列であり、それを書き換えると、辞書には一切触れずにドキュメントの表示内容が変わります
Version 3.333.0
追加
- 差分リビジョンの検査。署名はそれが書き込まれたリビジョンのバイトをカバーし、その後に追加されたすべては独立した更新であり、その内容が署名が現在のドキュメントに対してまだ有効かどうかを決定します。
GetDocumentRevisionCount、GetDocumentRevisionStartおよびGetDocumentRevisionEndがこれらのリビジョンを並べ、GetSignatureRevisionIndexが署名がどのリビジョンで終わるかを示します GetDocumentRevisionKindは、更新が何を行ったかを、それが触れたオブジェクトのうち最も影響の大きいものとして報告します。すなわち、帳簿付け、検証材料、ドキュメントタイムスタンプ、署名、フォームフィールド、注釈、あるいはドキュメント内容です。したがって、長期検証のための検証材料の追加は、もはやドキュメントの編集とは見なされませんGetDocumentRevisionChangesは、更新が追加、変更、削除したすべてのオブジェクトを、それぞれが何であるか、また変更された辞書については実際にどのキーが異なるかとともに一覧表示しますGetDocumentRevisionsCompleteは、履歴全体が復元可能かどうかを報告します。壊れている、循環している、あるいはリーダーが追跡する長さを超えるチェーンは、最も古い更新を見えないままにし、その場合カウントは答えではなく下限となります- 以前のバージョンが読み取れない、あるいはストリーム本体が比較されなかったオブジェクトは、無害ではなく未確定として報告されます。辞書を変更せずにページを書き換える更新は、再パッケージと見誤られることはありません
Version 3.332.0
追加
ApplyPAdESLongTermValidationは、署名済みPDFを1回の呼び出しでPAdES-B-LTに昇格させます。署名自身から署名者証明書パスを構築し、証明書が名指すアドレスを通じて各リンクのOCSPおよびCRL材料を収集し、署名のためのVRIエントリとともに証明書と失効データをドキュメントセキュリティストアに、単一の差分更新として書き込みます。ApplyPAdESLongTermValidationToStreamは結果をファイルではなくストリームに書き込みます- この振る舞いは
PADES_LTV_*オプションマスクで設定できます。VRIエントリを書き込むか、OCSPレスポンダに問い合わせるか、CRLにフォールバックするか、パスを完成させるために発行者アドレスを追うか、そして自己発行ルートの失効確認をスキップするかどうかです - 空のフィールド名はすべての署名を1つのリビジョンに処理し、名前付きフィールドはその1つだけを処理します
GetPAdESLTVCertificateCount、GetPAdESLTVCRLCount、GetPAdESLTVOCSPCountおよびGetPAdESLTVErrorは、最後の呼び出しが何を収集し、なぜ途中で止まったかを報告するため、到達不能なレスポンダに対する部分的な結果も黙殺されずに可視化されます- 既にステージ済みのものと同一の材料は1回だけ書き込まれ、それを必要とするすべての署名から参照されます。また、読み取り可能な証明書を保持しない署名は、昇格の成功として装われるのではなく報告されます
Version 3.331.0
追加
- 署名は自身の認証パスを保持するため、長期検証プロファイルが必要とする材料は署名付きファイルだけから読み取れます。
GetSignatureSignerCertificateDER、GetSignatureEmbeddedCertificateCountおよびGetSignatureEmbeddedCertificateDERは署名が埋め込む証明書を返し、GetSignatureCertificateChainLengthとGetSignatureCertificateChainDERはそれらを署名者から外側へ向かうパスとして並べます GetSignatureContentsHashHexは、AddPAdESDSSVRIエントリのアドレス指定に使われるキーを、署名自身から計算して返します- 署名が発行者とシリアル番号で署名者証明書を識別しても、サブジェクトキー識別子で識別しても照合され、パスは署名が実際に保持する最後の発行者で停止し、完全であるかのように装うことはありません
修正
- DERリーダーは、最大値に近い値が境界チェックを折り返すままにするのではなく、データより大きい宣言された要素長を拒否します。また、証明書拡張の走査は、切り詰められた、あるいは長すぎる証明書の終端を越えて読み取ることはもうありません。どちらも細工されたドキュメントから到達可能であるため、上記のアクセサは信頼できない入力に対しても安全です
- 署名アクセサは共有ハンドルでドキュメントを読み取るため、検証子やビューアが既にファイルを開いている間でも応答し、署名が存在しないかのように失敗することはありません
Version 3.330.0
追加
- OCSP ステータス要求をサポートしました。
BuildOCSPRequestは証明書とその発行者に対する RFC 6960 要求をエンコードし、FetchOCSPResponseは応答者へ送信して応答を返し、AddPAdESDSSOCSPFromCertificatesは両方を実行して結果を文書セキュリティストアに保存します - 応答者アドレスは省略可能です。省略時は証明書自身が指定するアドレスを使用するため、証明書チェーンを持つ呼び出し元に追加設定は必要ありません
- 実際には対にならない証明書の組合せは送信前に拒否され、応答者が返す「unknown」という失効問題のように見える応答を生成しません
- 成功した応答のみを保存します。応答者が
tryLaterまたはunauthorizedを返した場合は、ステータス応答として保存せずGetTimeStampErrorで報告します
Version 3.329.0
修正
- 連続する列挙呼び出しで同じ結果配列を再利用しても、後の呼び出しで埋められない配列スロット内の文字列がリークしなくなりました。この問題は、後の呼び出しが配列容量より少ない項目を返すと、文書化された「件数を取得するために一度呼び出し、サイズを変更して再度呼び出す」パターンで発生し、残った文字列がプロセスの存続期間中蓄積していました
- 影響を受けるエントリポイントには、
EnumPageContentStates、EnumPageContentStatesEx、EnumAttachments、EnumDocumentFonts、EnumPageElements、EnumNamedDestinations、EnumSignatures、EnumFormFields、GetFormValues、GetTextInAreaEx、ならびにテキスト検索、フォームフィールドアクション、証明書の列挙呼び出しが含まれます
変更
- これらの呼び出しの結果配列パラメータは、
outではなくvarとして渡されるようになりました。既存の Delphi および C++Builder コードは変更なくコンパイルおよびリンクできます。唯一の可視的な違いは、返された件数を超える配列スロットが暗黙に空にされず、以前の内容を保持することです
Version 3.328.0
追加
- 証明書からステータス確認先を取得できるようになりました。
GetCertificateOCSPURLs、GetCertificateIssuerURLs、GetCertificateCRLURLsは証明書から応答者、発行証明書、CRL のアドレスを読み取るため、長期検証用の材料を集める際に各認証局の公開先を知る必要がなくなります FetchRevocationMaterialはこれらのアドレスから材料をダウンロードし、AddPAdESDSSCRLFromURLとAddPAdESDSSCertificateFromURLはダウンロードと文書セキュリティストアへの保存を一度に行います- ディレクトリ名やメールアドレスなど取得可能なリソースを示さないアドレスは、ダウンロード可能なものとして報告せずスキップします
Version 3.327.0
追加
- 組み込みの RFC 3161 タイムスタンプクライアントを追加しました。
SetTimeStampServerとSetTimeStampOptionsで認証局、ハッシュアルゴリズム、要求ポリシー、nonce の使用、タイムアウトを構成し、FetchTimeStampTokenは任意のダイジェストに対する TimeStampToken を返します ApplyPAdESSignatureTimeStampは 1 回の呼び出しで PAdES-B-T 署名を完成させます。署名値をハッシュ化し、構成済み認証局からトークンを取得して署名タイムスタンプ属性として添付するため、従来は呼び出し元が自ら接続する必要があった 3 段階の処理に置き換わります- nonce を使用する場合、トークンに同じ値が返されていることを確認するため、リプレイまたは置換された応答は文書に埋め込まず拒否されます
GetTimeStampStatusとGetTimeStampErrorは認証局自身のステータスと失敗テキストを報告するため、拒否された要求の理由を確認できます
Version 3.326.0
追加
- PDFium レンダラーが GDI+ および Cairo レンダラーと同じ画像形式を書き出すようになりました。
SelectRenderer(3) の後、RenderPageToFile、RenderPageToStream、RenderPagesToFilesは BMP(オプション 0)、JPEG(1)、PNG(5)、GIF(6)、TIFF(7)、G4 TIFF(10)を受け付け、BMP のみだった従来仕様を拡張しました SetJPEGQualityで設定した JPEG 品質と有効な TIFF 圧縮設定が PDFium 出力にも適用されるようになり、レンダラーを切り替えても生成ファイルのエンコードが変わらなくなりました
修正
- PDFium レンダラーに PNG または BMP 以外の形式を要求すると、以前は 0 が返され空のファイルが残されていました。レンダラー選択を提供するアプリケーションでは、PDFium を選択したときに読み取れない出力が暗黙に生成されていました
- PDFium レンダラーに生成不能なメタファイル形式(WMF、EMF、EPS、EMF+、HTML5)を要求した場合、BMP だけを選択肢として示すのではなく、利用可能な形式を
LastRenderErrorで報告するようになりました
Version 3.324.0
変更
- PDFium レンダラーは、常駐バッファ 1 個ではなくストリーミングデータソース経由で文書をエンジンに渡すようになりました。以前のレンダリングと印刷では文書をシリアル化してから文字列へ再コピーしていたため、各ページで文書サイズの 2 倍のメモリを消費していました。コピーを廃止し、PDFium は必要なブロックのみを読み取ります
- ページ範囲をファイルへレンダリングする際、ページごとではなくバッチ全体で文書を一度だけ解析するようになりました。長い範囲でも、書き出す各画像のためにファイル全体を再読込しなくなります
- ストリーミングエントリポイントをエクスポートしない古い PDFium ビルドは、従来どおりメモリ内パスで動作します
修正
- レンダラーのスモークテストはオプションの PDFium および Cairo ライブラリを 1 つ上のディレクトリで探して両エンジンを暗黙にスキップしていましたが、正しく検出して実際のレンダリングパスを実行するようになりました
Version 3.323.0
追加
CreateValidationReportとSaveValidationReportは、構造化された PDF/A および PDF/UA-1 検証レポートを XML または JSON で出力します。各発見事項は、ルール id、それを所管する標準、短いルール名、それが適用する ISO 条項、重要度、影響を受けるオブジェクト数を保持し、レポートは標準ごとの合格/不合格統計と文書レベルの合格/不合格統計で締めくくられます- 要求されなかった標準は、暗黙の合格ではなく
not-checkedとして報告されるため、部分実行を正常完了と誤認することはありません - ビルドパイプラインは、文中の部分文字列照合の代わりにルール id や ISO 条項でゲートできるようになりました。プレフライトレポート群はまず人間向けレポートを生成してからそのテキストを JSON、HTML、CSV に変換しますが、検証レポートは生のチェック出力から組み立てられ、機械可読なフィールドがそのまま保持されます
Version 3.322.0
追加
- リファレンスが、
TPDFlibサーフェス全体で使われている、これまで専用ページがなかった 4 つの外部宣言された公開型を文書化するようになりました:TPDFlibProgressEvent、TPDFlibLogger、TPDFlibCertificateInfo、TPDFlibWatermarkBaseで、公開イベント、ロガー、列挙結果、透かし型の網羅が完了します
Version 3.321.0
追加
CheckDocumentPolicyは、Fonts.NotEmbedded = 0、Security.Encrypted = no、Document.Pages <= 500のような宣言型の社内ルールを文書に対して評価し、各ルールを実際の値とともに合格または不合格として報告します。これにより、出版社、アーカイブ、印刷業者向けの取り込みゲートは、手書きの検査コードではなく設定で表現できるようになります
Version 3.320.1
修正
- PDF/A モードでフォントを先に読み込まずにテキストを描画しても、もはや fault しません。PDF/A はすべてのフォントプログラムの埋め込みを要求するため、組み込みフォントへの暗黙のショートカットは拒否され、フォントが選択されないまま残り、
DrawTextや他のテキスト呼び出しは描画せずにクラッシュしていました - 暗黙のフォントパスは、PDF/A モードがアクティブな間に実際に埋め込み可能なフェイスを解決するようになり、明示的な
AddTrueTypeFont呼び出しなしで描画されたテキストは埋め込まれ、適合状態を維持します。PDF/A 下での直接のAddStandardFont呼び出しは引き続き拒否されます - 埋め込み可能なフェイスを解決できないホストでは、描画は fault する代わりに組み込みメトリクスにフォールバックし、
LastErrorCode605 を通じて適合性の不足を報告します。これにより、適合文書として公開される前にファイルを捕捉できます
Version 3.320.0
追加
GetDocumentFeatureReportは 1 回の呼び出しで構造化された機能レポートを返します — 文書メタデータ、ページとオブジェクト数、暗号化状態、フォントと画像のインベントリ、タグ付けとアウトライン、フォームフィールド、署名、添付ファイル、カテゴリ別のバイト内訳 — で、カタログ化や取り込みパイプラインが以前は組み立てる必要があった 1 ダースもの個別クエリを置き換えます
Version 3.319.0
追加
SetCollectionView、AddCollectionField、SetCollectionSort、SetCollectionItemValueは、既存の添付ファイルの上に PDF ポートフォリオを構築します。これにより、埋め込みファイルのセットは、単なる添付リストではなく、独自の列、ソート順、ファイルごとの値を持つ閲覧可能なパッケージとして提示されますGetCollectionViewとGetCollectionFieldCountは、読み込まれたポートフォリオの表示モードと宣言された列数を報告します
Version 3.318.1
修正
- テキスト抽出オプション 12(回転テキストを無視)は、回転方向にかかわらず回転されたランを破棄するようになりました。時計回りに四半回転と反時計回りに四半回転は以前は異なる扱いを受けていたため、横向きの余白注記が一方の方向では破棄され、もう一方では返されていました
- 同じオプションは、合成イタリックのように単に傾斜しただけのテキストを保持し、許容範囲はテキストサイズとページ変換に合わせてスケールするようになったため、大きな傾斜見出しが回転テキストであるかのように破棄されることはなくなりました
Version 3.318.0
追加
DecodeAllStreamsは文書の圧縮ストリームをその場で展開します。これにより、保存するとコンテンツストリーム、メタデータ、構造を diff ツール、フォレンジックレビュー、サポートワークフローが直接読めるコピーが生成されます。画像、予測ストリーム、クロスリファレンスストリームはエンコーディングを保持し、オブジェクトストリームは最初に実体化されるため、何も失われません
Version 3.317.0
追加
SetTrappedとGetTrappedは、PDF/X が要求する文書のトラッピング状態を宣言および読み取り、仕様が定めるテキスト文字列ではなく/Trapped名として書き込まれますSetOutputIntentSubtypeとGetOutputIntentSubtypeは出力インテントを再タグ付けします。これにより、読み込まれたカラープロファイルは、PDF/A モードが作成するGTS_PDFA1アーカイブ条件の代わりにGTS_PDFX印刷条件を記述できるようになります
Version 3.316.0
追加
SetEncryptEmbeddedFilesOnlyとGetEncryptEmbeddedFilesOnlyは、AES 暗号化を埋め込みファイルに限定します。文書はパスワードプロンプトなしで任意のリーダーで開いてレンダリングされる一方、添付ファイルは暗号化されたまま保たれます。これは、表紙は公開でもペイロードは非公開の、請求書、医療記録、事例ファイル向けの標準的な構成です
Version 3.315.0
追加
- テキスト抽出オプション 18 は、90、180、270 度で描画されたランを水平な読み取り枠に回転させ、各四半回転を別々にグループ化します。これにより、回転された余白注記、テーブルヘッダー、チャートの軸ラベルが、直立テキストと交錯したり破棄されたりする代わりに、読める行として抽出されます
修正
DASetTextExtractionOptionsは、オプション 16(ハイフン除去)とオプション 17(文字間隔による単語分割)を拒否する代わりに受け入れるようになり、直接アクセス抽出パスはオプション 15、16、17 を抽出器に転送するようになりました。これにより、下線ルール除去、ハイフン除去、文字間隔分割が、読み込んだ文書と同じようにファイルハンドルにも適用されます
Version 3.314.0
追加
GetFontHasToUnicodeは、選択されたフォントが Unicode マッピングを持つかどうかを報告し、フォントインベントリには対応するフォントごとのHasToUnicodeフィールドとNoToUnicodeCountサマリーが追加されます。これにより、処理前に文書を抽出安全かつ PDF/A-*u または PDF/UA 変換可能なフォントについて確認できます
Version 3.313.0
追加
SetPDFAModeは PDF/A-2u(ISO 19005-2 Level U)用のモード 8 を追加しました。これは Unicode テキストマッピングを宣言しつつ埋め込みファイルを許可しない適合レベルで、既存の 2b および 2a モードとともに PDF/A-2 ファミリーを完成させます
Version 3.312.0
追加
GetObjectByPathとGetObjectByPathCountは、Root/Pages/Kids[0]/MediaBox[2]やpages[0]/Typeのようなパス式を通じてオブジェクトツリーの任意のノードを読み取ります — 型、スカラー値、シリアライズ形式、要素数を 1 回の呼び出しで取得でき、メタデータプローブ、コンプライアンスの抜き取り検査、サポート診断のための手書きのオブジェクト走査を置き換えます
Version 3.311.0
追加
SetBlackPointCompensationは、PDF 2.0 の/UseBlackPtCompグラフィックスステートを通じて、後続の描画に対してブラックポイント補償(ON、OFF、Default)を宣言します。これにより、プレプレスやプルーフ出力は、以前はビューワー固有だった暗調の ICC 変換を固定できるようになります。文書バージョンは自動的に引き上げられ、PDF/A モードはこのステートを拒否します
Version 3.310.0
追加
SetCompressionLevelとGetCompressionLevelは、ライブラリが実行するすべての圧縮の deflate レベルを公開します: 0 はデフォルトの SIMD アクセラレーションエンジンを保持し、1 はスループットを優先し、9 はアーカイブを最小化しますRecompressStreamsは、選択された文書のすべてのプレーンな FlateDecode ストリームを現在のレベルで再 deflate し、ストリームごとに小さいほうのエンコーディングを保持します。これにより、高速圧縮設定で元々書かれた文書が、コンテンツに触れることなく縮小されます
Version 3.309.0
追加
SetObjectStreamModeとGetObjectStreamModeは、3 状態のオブジェクトストリーム制御を追加します: 無効、生成(デフォルト)、保持で、保持は読み込んだファイルの元の圧縮グループ化を保持し、コンテナを逐語的に書き出すため、既存の PDF 1.5+ ファイルの変換が、何も展開も再グループ化もされない分、安価になります
変更
- 保持モードでは、読み込み以降に編集されたメンバーはトップレベルオブジェクトに昇格されて変更が保存され、残りの圧縮メンバーは自動的にバイナリクロスリファレンスストリーム形式を選択します
Version 3.308.0
追加
CheckDocumentStructureは 1 回の呼び出しで構造の健全性チェックを実行します。すべてのオブジェクトとストリームがそのデコーダーに通され、プレーンな Flate ストリームは zlib の終了マーカーに対して厳密に検証されるため、切り詰められたデータが捕捉されます。レポートは、欠落したトレーラー、解決不能なカタログやページ、未サポートの暗号化ハンドラー、バイトスキャンで修復されたファイルを、オブジェクトごとの発見事項とサマリー行でフラグ付けします
Version 3.307.0
修正
- クロスリファレンスストリームを使う破損文書が正常に修復されるようになりました。生の再構築は圧縮オブジェクトストリームのメンバーを復元し、ファイル内のどこにもトレーラーキーワードが存在しない場合は、最新の到達可能な文書カタログからトレーラーを合成するため、壊れた startxref オフセットがそのようなファイルを開けなくすることはなくなりました
Version 3.306.0
追加
ExportDocumentDataは、文書情報キー、ブックマークツリー全体、ページラベル範囲を、クラシックな dump_data 行形式の編集可能なプレーンテキストとして書き出しますImportDocumentDataは同じ形式を逆に適用します — 情報キーが更新され、ブックマークツリーはネストレベルと宛先ページとともに再構築され、ページラベル範囲が置き換えられます — これにより、各方向 1 回の呼び出しで文書間の一括ブックマーク編集とメタデータ移行が可能になります
Version 3.305.0
追加
AuditDocumentSpaceは、文書のバイト使用量をカテゴリ別に分類します — 画像、フォントプログラムと辞書、コンテンツストリーム、フォーム XObject、オブジェクトストリーム、埋め込みファイル、メタデータ、構造ツリー、注釈、ページツリー、その他 — オブジェクト数、バイト合計、パーセンテージ付きで、ファイルがなぜその大きさなのか、どの最適化が最も効果的かを明らかにします
Version 3.304.0
追加
StructTreeItemCount、GetStructTreeItemText、GetStructTreeItemIntPropertyは、タグ付き文書の構造ツリーをフラット化された深さ優先のアイテムリストとして読み取ります — 要素型(生およびロールマップ済み)、代替テキストと実際のテキスト、言語、タイトル、マークコンテンツ id、ページ番号、親子関係
変更
- 構造ツリーリーダーは破損文書に対して保護します: 参照サイクル、範囲外のオブジェクト番号、64 レベルを超えてネストされたツリーは、ループする代わりに打ち切られます
Version 3.303.1
修正
StampTextとStampImageが作成した半透明の下敷きスタンプは、もはや元のページコンテンツに不透明度を漏らしません — 透明度ステートはスタンプ自体に限定されるようになり、ページは完全な不透明度を維持します
Version 3.303.0
追加
OverlayDocumentPagesは、別の開いている文書のページを選択された文書のページにスタンプします。ターゲットページごとに 1 つのソースページを、既存のコンテンツの上または下に — レターヘッド用紙、連続するページ背景、スキャンされたフォームテンプレートを 1 回の呼び出しで- ソースの枯渇は設定可能です: 停止、ソースページを循環、最後のソースページを繰り返す、のいずれか。さらに、スタンプが自然なサイズを超えて拡大されるのを防ぐオプションもあります
変更
- 文書スタンプはターゲットページの CropBox に合わせられ、
/Rotateエントリを持つページには直立して配置されます。各ソースページは共有 Form XObject として一度だけインポートされるため、繰り返されるテンプレートがリソースを複製することはありません
Version 3.302.0
修正
- AES-256 パスワードは、ハッシュ化前に SASLprep (RFC 4013) で処理されるようになりました。これにより、非 ASCII のスペース、ソフトハイフン、互換文字、結合シーケンスを含むパスワードが Acrobat や他の適合リーダーで正しく開かれます
- AES-256 文書を開く際、標準の準備済みパスワードを最初に試し、従来のバイト形式にフォールバックするため、非 ASCII パスワードで以前のリリースが書いたファイルは引き続き開かれます
追加
- エラーコード 604 は、禁止されたコードポイントを含むか双方向ルールに違反しているため SASLprep に拒否された AES-256 パスワードを報告します
Version 3.301.0
追加
SplitDocumentToFilesは、選択された文書をそれぞれ固定ページ数の出力ファイルのバッチに分割します。%pファイル名プレースホルダーを使用します
変更
- バッチ分割はソース文書を 1 回だけ解析し、同じメモリ内構造からすべてのチャンクをコピーします。これにより、
ExtractFilePagesのループが各範囲に対して行う繰り返しの完全な再解析が置き換えられます
Version 3.300.0
追加
CollateDocumentsは、複数の開いている文書からのページを選択された文書にローテーションでマージし、各ラウンドで各ソースから設定可能な数のページを取ります(A1, B1, A2, B2, …)CollateDocumentsExは、ソースごとのページ範囲リストを受け取り、3-1のような降順範囲でソースを反転させるため、表と裏反転のスキャナーパスを 1 回の呼び出しで読み取り順にマージできます
変更
- 照合マージは各ソースを単一のオブジェクトマップを通じてインポートし、ページの並べ替えでインターリーブするため、ソース内で共有されるフォントや画像は、グループサイズに関わらず一度だけ書き込まれます
Version 3.299.0
追加
SetDeterministicDocumentIDとGetDeterministicDocumentIDは、トレーラーのファイル識別子を再現可能な値に切り替えます。これにより、同一の入力が同一の出力バイトを生成し、ビルドキャッシュ、コンテンツアドレス指定可能ストレージ、バイトレベルの回帰比較に対応しますSetDocumentIDSeedは、再現可能なファイル識別子に明示的なシードを供給します。シードがない場合、識別子は文書メタデータ、バージョンヘッダー、ページ数から導出されます
変更
- 再現可能なファイル識別子はフル保存時にのみ更新されます。インクリメンタル更新と暗号化文書は既存の識別子を保持するため、署名やパスワード保護されたファイルは引き続き正しく開かれます
Version 3.298.0
追加
AddLinkToArticleThreadとSetOutlineArticleThreadは、標準の Thread アクションでページのホットスポットとアウトラインをアーティクルスレッドまたはビーズに接続AddActionNextArticleThreadとPDF_ACTION_BUILDER_THREADは、チェーン、フォーム、ページ、ドキュメントのアクションワークフローに Thread アクションを追加
変更
- Thread アクションのターゲットは安定した間接スレッドおよびビーズ参照を使用し、送信先コンテナを変更せずに無効なインデックスを拒否
- フォームフィールドアクションビルダーは PDF/A モードがアクティブな間は追加アクションを拒否し、フィールドとウィジェットの
/AA辞書に対する PDF/A の禁止を維持
Version 3.297.0
追加
DLフラット DLL リファレンスがすべてのAサフィックス ANSI(char)エントリポイントを文書化するようになり、Unicode 対応項目を正確なPAnsiCharDelphi およびconst char *C シグネチャでミラーする 353 のリファレンスページを追加BufferUtilities、DirectAccessFunctionality、MiscellaneousFunctionsを共有カテゴリ方式で駆動するクリーンな関数グループの索引ページとして再構築し、壊れたマークアップ、誤表記のセクション、欠落したチップを修正- ナビゲーション索引と共有検索索引が Unicode と ANSI の両方の呼び出し元について DLL 表面全体をカバー
修正
- ソースに該当シンボルがない古い
SetLoggerエントリを削除、文書化されたプロパティはLogger
Version 3.296.0
追加
AddAlternateImage、AlternateImageCount、GetAlternateImageInfo、RemoveAlternateImageが表示および印刷イメージバリアントの型付き作成と検査を提供- 代替イメージはオプションコンテンツグループまたはメンバーシップ辞書に関連付け可能で、各ベースイメージにつき 1 つのバリアントを印刷既定値として選択可能
変更
- 組み込みレンダラはベースイメージが非表示のときにオプションコンテンツ代替イメージを選択し、印刷先では印刷既定値を優先
FindImagesがページリソースから到達可能な代替イメージ XObject を登録し、インポートされたバリアントが使用可能なイメージハンドルを受け取るように
Version 3.295.0
追加
AddArticleThreadが型付きメタデータ、順序付きページ矩形、循環ビーズリンク、ページごとのビーズ配列による標準準拠のアーティクルナビゲーションを作成ArticleThreadCount、GetArticleThreadInfo、GetArticleThreadBeadが作成またはインポートされたアーティクルスレッドを検査し、破損リンクの循環を境界付きで走査
変更
DeletePagesがすべてのビーズを失ったアーティクルスレッドを削除し、存続スレッドの循環リンクを修復- 削除ページ追跡が安定した間接ページ参照を保持し、ページツリーカーソルの移動に伴うアウトラインとアーティクルのクリーンアップのずれを防止
Version 3.294.0
追加
SearchTextBatchは各ページ抽出が常駐している間に複数のテキストクエリを検索し、各ヒットに発元のゼロベースクエリインデックスを返すSearchTextBatchEachはストリーミングコールバックによる同じシングルパス検索を提供し、進行報告とキャンセルをサポート
変更
- 単一クエリとバッチのテキスト検索が 1 つのマッチングコアを共有し、大文字小文字区別、完全一致、ページ範囲のセマンティクスを保持しつつ繰り返しのページ抽出、テキスト折り畳み、ヒットジオメトリ処理を回避
Version 3.293.1
修正
- メッシュシェーディングのラスタライズがどの Delphi バージョンでもコンパイルに失敗しなくなり、GDI+ ペインタの実数から浮動小数点へのキャストにおける
E2089 Invalid typecastを解決 - 並列バッチページレンダリングが
System.Threadingを利用できない Delphi XE5 と XE6 でコンパイル可能になり、古いツールチェーンは非 Windows と同様にシリアルレンダリングパスにフォールバック - プリンタ能力のプローブが
SetPrinter呼び出しを残りの印刷コードと整合させることで、従来の Delphi バージョンでの互換性のない型エラーを発生しなくなった - 証明書ストアの列挙が RAD Studio 10.3 Rio でビルド可能になり、以前は列挙ルーチンの最適化中に内部コンパイラエラーで中断していた
Version 3.293.0
追加
- オプションコンテンツメンバーシップ辞書を
AnyOn、AllOn、AnyOff、AllOffの互換ポリシーで作成、更新、列挙可能に - ネストされた PDF 1.6
/VE可視性式が Delphi と C++Builder で共有するコンパクトな前置表現によりAnd、Or、Notをサポート
変更
- オプションコンテンツスコープ、コンテンツストリーム、キャプチャページ、イメージ、フォームフィールド、注釈がグループハンドルまたはメンバーシップハンドルのいずれかを受け入れるように
- レンダリングは有効な
/VE式を先に評価し、不正または未サポートの式は/OCGsと/Pにフォールバック
修正
- ネストされたオプションコンテンツが外側のグループまたはメンバーシップが非表示のときにコンテンツを可視にしなくなった
- 有効なオプションコンテンツグループを持たないメンバーシップ辞書は PDF 仕様の要求どおり可視性を変更しない
Version 3.292.0
追加
EnumAttachmentsがドキュメントと注釈の両方の添付ファイルについて作成日と更新日、十六進チェックサム、関連ファイル関係、ファイル仕様オブジェクト番号を報告ValidateAttachmentChecksumが要求時に格納されたチェックサムに対して添付ペイロードを検証し、新規埋め込みファイルは自動的にチェックサムメタデータを受け取る
修正
SetEmbeddedFileAFRelationshipが添付 API の他の部分と同じ 1 ベースの埋め込みファイルインデックスを、単一添付ドキュメントを含めて受け入れるように
Version 3.291.0
追加
DeduplicateResourcesが読み込まれたドキュメント全体で完全に重複するイメージ、Form、パターン、シェーディング、関数、ICC プロファイル、フォントプログラム、CMap、Type 3 CharProc、埋め込みファイル、メタデータ、PostScript ストリームを統合- リソース重複排除は独立した型フラグ、ドライラン解析、オプションの孤立収集、詳細なハッシュ、比較、ペイロード、参照、カテゴリ別統計を提供
変更
- 重複検出は完全なストリーム辞書をキー順序に依存せず正規化し、各候補ペイロードを SHA-256 で一度ハッシュし、参照をリダイレクトする前にバケットをバイト単位で照合
- 完全等価グループは決定的な出力のために最も低いオブジェクト番号と世代を保持し、不正な直接オブジェクトの循環と意味的辞書の差異はマージされないまま
Version 3.290.0
変更
PurgeUnusedResourcesがタイリングパターン、Type 3 グリフ、注釈外観状態、ExtGState ソフトマスクグループ、イメージ、シェーディング、ネストされた色空間全体で推移的依存閉包を計算- 既定のクリーンアップオプションがパターン、Type 3、外観、ソフトマスク、イメージの依存解析を有効にし、より狭いスキャンが必要な呼び出し元向けに独立したフラグを提供
- ネストされたコンテンツプログラムと依存エントリはキャッシュされ、共有リソーススコープは刈り込み前に私有化され、不正な循環はアクティブストリームと深度ガードで制限
修正
- イメージ色空間、Indexed ベース、Separation または DeviceN 代替、Pattern 基底空間、ICCBased 代替、シェーディング辞書を通じてのみ使用されるページリソースが未使用として削除されなくなった
- Type 3 CharProcs、タイリングパターンセル、注釈外観、透明ソフトマスクグループによってのみ使用されるリソースが自身または継承スコープから削除されなくなった
Version 3.289.0
追加
PurgeUnusedResourcesが選択されたコンテンツレイヤーから参照されない名前付きページリソースを削除し、詳細なカテゴリ別統計を返すことが可能に- リソースクリーンアップがページ範囲、ドライラン報告、進行とキャンセル、再帰的 Form XObject 解析、非推奨 ProcSet 削除、オプションの孤立オブジェクト収集をサポート
変更
- リソース解析が PDF 名の大文字小文字区別、継承された Form リソース、カスタムインラインイメージ色空間、7 つの標準リソースカテゴリすべてに従うように
- 繰り返し Form プログラムはキャッシュされ、使用済みリソースセットはソート済み参照を使用し、辞書エントリは降順で削除されて大規模ドキュメントの性能が予測可能に
修正
- 辞書エントリの削除が大規模辞書のキー索引を無効化し、後の参照が古いエントリを返さないように
- 不正なストリームと未知の演算子は既定で完全なリソーススコープを保持し、共有または継承されたリソース辞書は変更前に複製
Version 3.288.0
追加
- デジタル署名が完全な DocMDP 認証と FieldMDP フィールドロック構造を出力可能になり、選択された各署名に構造的許可報告を提供
- RFC 3161 ドキュメントタイムスタンプ、署名タイムスタンプ、PAdES-B-T トークン注入、証明書チェーン検証、OCSP 証拠、DSS または VRI 検証資料に完全な作成と検証ワークフローが揃った
- RichMedia 注釈が埋め込みアセット、活性化と非活性化の設定、ポスター外観、列挙、抽出、削除をサポート
- ポスター印刷がベクターページ組み付け、重なりと crop marks、ハードマージン対応配置、再利用可能なタイル計画をサポート
- タグ付きテーブルが安定した識別子、ヘッダー関連、スパン、繰り返しヘッダー、装飾のアーティファクト化により意味的 Table、TR、TH、TD 構造を出力
- ビューアがテキスト、選択、チェックボックス、ラジオ、プッシュボタンフィールドのキーボードでアクセス可能な AcroForm 編集を提供しつつアクションをホストアプリケーションにディスパッチ
変更
- Type 1 関数ベースのシェーディングと Type 4 から 7 のメッシュシェーディングがネイティブの関数評価と境界付きメッシュテッセレーションでレンダリング
- ICCBased 色レンダリングがイメージとシェーディング全体でキャッシュされた変換を共有しつつキャリブレートされた色空間の挙動を保持
- 増分保存がオブジェクトストリームとクロスリファレンスストリームを一貫して再構築し、選択された署名は自身の署名リビジョンに対して検証
修正
- SHA-1 署名タイムスタンプ要求が SHA-256 にフォールバックせず署名者署名値を SHA-1 でハッシュ
- 拒否されたフィールドロック置換が以前の有効なフィールドロック設定を破棄しなくなった
- 重複する外観状態名を持つラジオウィジェットが選択されたウィジェットを保持し兄弟ウィジェットをオフのままに
Version 3.287.0
変更
- インラインイメージ辞書が PDF のコメント、区切り、リテラル、十六進、配列、辞書の境界に従い境界付きのネストを実現
- インラインイメージペイロードが raw、DCT、ASCII85、ASCIIHex、RunLength、Flate データに形式対応の終端を使用
- Flate ペイロードの発見がコンテンツストリームオフセットから境界付きの inflate を一度実行し正確な圧縮バイト会計を行い、連鎖したロスレスフィルタはエンドツーエンドの出力上限を共有
- ASCII85、ASCIIHex、LZW、予測子、カラープロファイル、補助イメージストリームが過大な一時割当てなしに境界付きの中間出力を強制
修正
- 不正または切り詰められたインラインイメージがソースデータを超えて読み込んだり未終端の値でループしたりデコーダ再利用間で古い状態を保持しなくなった
- パックイメージ行がバイト丸めの前に成分ビットを計算し、低位 RGB と複数行イメージの不正な長さを防止
- リソース色空間が元の名前を保持しつつ Lab、間接 ICCBased、DeviceN の成分数を導出し Indexed パレットストリームを厳格な制限下で復号
- インラインイメージ境界が不正な寸法、ビット深度、未サポートフィルタ、安全でないフィルタチェーン、圧縮ストリーム、曖昧な終端マーカーを一貫して拒否
- Indexed 色レンダリングがすべてのパレットアクセスを検証し、復号された表を超えて読み込まずに切り詰められた参照データを拒否
- PNG 予測子 10 から 15 が Flate と LZW ストリームで正しく復号し、不正な行フィルタを拒否し、すべての行と状態のサイズを割当て前に検証
- JPEG と JPEG 2000 ペイロードが符号化された寸法、成分、精度、マーカー構造、ボックス長、復号格納フットプリントをイメージ割当て前に検証
- インラインイメージ検証がパックと展開の両方のビットマップ格納を制限し ICC プロファイル、JBIG2 グローバル、端末フィルタパラメータを制約
- 終端マーカーテキストを埋め込んだバイナリフィルタペイロードが境界付き形式検証を通過する最初の候補まで継続
Version 3.286.0
変更
- コンテンツストリームのトークン化が、PDF の空白、コメント、区切り文字、リテラル文字列、16 進文字列、名前の境界に従うようになりました
- テキスト分割とリソース置換が、幾何学的に拡張する出力バッファを使用して大きなコンテンツストリームを線形に処理するようになりました
- 再利用可能なコンテンツストリームプロセッサが、各
Process呼び出しの前に派生出力とパーサー状態をリセットするようになりました
修正
- 不正または切り詰められたリテラル文字列および 16 進文字列が、ソースバッファの範囲外を読み取ったり余分な空トークンを出力したりしなくなりました
- リソース置換が、大文字と小文字を区別する PDF 名の意味を保持し、先頭のスラッシュを任意として受け入れ、重複マッピングを決定的に更新するようになりました
- ストリーム先頭の XObject およびシェーディングオペランドがテキスト出力から除外され、対応しない復元演算子が後続の保存済みグラフィックス状態を取り消さなくなりました
Version 3.285.0
変更
- LZW エンコードが定数時間の辞書検索とバッファリングされたストリーム書込みを使用するようになり、デコードではコンパクトな接頭辞・接尾辞テーブルと幾何学的な出力拡張を使用するようになりました
- Flate predictor のデコードが出力バッファ内で行を直接処理し、任意の色数に対するパック済み、8 ビット、16 ビットの TIFF サンプルをサポートするようになりました
- 格納済み Deflate ストリームが正確に事前確保された結果へ書き込み、圧縮または展開が失敗したときに zlib ラッパーが一時バッファを安全に解放するようになりました
修正
- LZW のコード幅変更が、辞書リセットと
EarlyChange=0を含め、9 ビットから 12 ビットのコード全域で PDF のEarlyChangeセマンティクスに従うようになりました - LZW デコードが、不正な将来コードおよび切り詰められたビットストリームをソースバッファの範囲外を読まずに拒否するようになりました
- PNG predictor がピクセルの切上げバイト幅を使用し、以前にデコードした行を保持し、不完全な最終行を安全にパディングするようになりました
- TIFF predictor のデコードが、LZW と Flate の両方のパスで 1 ビット、2 ビット、4 ビット、8 ビット、16 ビットのコンポーネントを一貫して処理するようになりました
Version 3.284.0
変更
- バッファ検索が固定 64 KiB ブロックを走査し、集合所属にバイト検索テーブルを使用し、すべての検索パスで呼び出し元の位置を保持するようになりました
- Unicode、Latin-1、16 進ダイジェスト、ARC4 の変換が、文字列または一時配列を繰り返し拡張する代わりに、上限付き出力を一度だけ確保するようになりました
- ASCII85 エンコードが入力ストリームを 32 KiB ブロックで読み取り、デコードが正確な整数演算を使用して事前確保済み出力バッファへ直接書き込むようになりました
- MD5 文字列ハッシュが一時メモリストリームを不要にし、ダイジェスト比較がすべてのバイトを調べ、ARC4 の鍵スケジューリングが展開済み鍵配列を割り当てなくなりました
修正
DistanceToAnyByteが最初のブロックを越えた位置でも同じ接頭辞を再読込してスキップ済みバイトを過大計上せず、正しいオフセットを返すようになりました- ストリームを基盤とするバッファ読み込みがカスタムストリームから実際に返されたバイト数を尊重し、受信バイト数分だけ結果を縮小して位置を進めるようになりました
- バッファ長を短縮したときに現在位置をクランプし、nil ポインタまたはストリームソースを不正なメモリを公開する代わりに空入力として扱うようになりました
- Latin-1 デコードが 0x7F-0xFF のバイトを置換する代わりに、0x00-0xFF の完全なバイト範囲をマッピングするようになりました
- ASCII85 デコードが有効な最大 32 ビットグループ
s8W-!を保持し、浮動小数点境界の損失なしに最初の終了マーカーで停止するようになりました
Version 3.283.0
追加
TPDFlibSignatureVerifierが署名フィールドと CMS 署名者を列挙し、ファイル、ストリーム、文字列を開き、インデックスまたはフィールド名で選択したフィールドと署名者を検証できるようになりました- 詳細な検証レポートが、暗号学的完全性を、署名済みリビジョンの範囲、現在ファイルの範囲、後続リビジョン、厳格な Contents ギャップ検証、ネイティブ暗号エラーから分離するようになりました
変更
- 分離 CMS 検証が、PDF 全体をメモリに実体化する代わりに、両方の ByteRange セグメントを上限付きチャンクで Windows CryptoAPI にストリーミングするようになりました
- ネストされた AcroForm Kids 配列下の署名フィールドと継承された
/FT /Sigエントリが完全修飾名で列挙されるようになり、直接の署名値辞書もサポートしました
修正
- ByteRange 検証が、オーバーフロー、重複、切り詰め、選択した 16 進
/Contentsトークンと正確に一致しないギャップ、および自身の%%EOFで終わらない署名済みリビジョンを拒否するようになりました - 選択した CMS 署名者識別子に発行者とシリアル番号が完全一致する証明書がない場合、証明書検索が無関係な埋込み証明書へフォールバックしなくなりました
- 相互参照ストリームを使用する増分更新に、相互参照ストリームオブジェクト自身の type 1 エントリが含まれるようになり、署名後に厳格な PDF バリデーターが自己エントリ欠落を報告しなくなりました
Version 3.282.1
変更
- 完全保存がライブオブジェクトグラフからインポート済みオブジェクトストリームを再構築し、プライベートトレーラーのルートを保持し、構造オブジェクト番号を再利用せずに空きオブジェクト世代を保持するようになりました
- 相互参照ストリームが大きなファイル向けにオフセットフィールドを適切なサイズにし、ペイロードを事前確保し、自身のエントリを含め、トレーラー拡張キーを保持するようになりました
修正
- オブジェクトストリームのパッキングが、相互参照ストリームへ切り替えるだけでなく、実際の
/ObjStmコンテナと type 2 メンバーエントリを書き出すようになりました - ガベージコレクションが欠落したオブジェクト番号をオフセット 0 の使用中エントリとして書き込まなくなり、プレーンテキストおよびストリーム相互参照の両方で連結された空きオブジェクトチェーンを出力するようになりました
- 読み込んだパック済み PDF を、古いオブジェクトストリームを保持したりライブメンバーを失ったり相互参照修復を必要としたりせず、パッキング有効・無効のいずれでも繰り返し保存できるようになりました
Version 3.282.0
追加
- インポートした ICCBased カラーが、ベクター描画、関数およびメッシュシェーディング、インデックスパレット、raw ビットマップ、CCITT および JBIG2 画像、CMYK JPEG 画像、JPEG 2000 画像で埋込み ICC プロファイルを使用するようになりました
変更
- ICC 変換が、画像レンダリング時に使用していた一時 PNG ラウンドトリップの代わりに、多重線形補間を備えた上限付き Windows Color System ルックアップテーブルを使用するようになりました
- レンダラーが、コンテンツストリームとグラフィックス状態のレンダリングインテント、ICCBased
/Range、画像/Decode、元ドメインのカラーキーマスクを尊重し、PDF カラースペース辞書に対してプロファイルのチャンネル数を検証するようになりました - 同じプロファイルとレンダリングインテントを繰り返し使用する場合、ベクターカラー、パターン、シェーディング、画像全体で 1 つのルックアップテーブルを共有するようになりました
修正
- 暗号化された ICC プロファイルストリームがデコード中にのみ復号され、その後に復元されるようになり、画像出力の書込み時に埋込みプロファイルが二重圧縮されなくなりました
Version 3.281.0
追加
- 組み込み GDI+ レンダラーが、透明度とクリッピングを含む、インポートした PDF の関数ベースシェーディング、および自由形式、格子、Coons、テンソルメッシュシェーディング(type 1 および 4-7)を描画するようになりました
- シェーディング辞書が、コンポーネント Function 配列、較正済み Lab、CalGray、CalRGB 空間、Separation および DeviceN の色調変換、PatternType 2 の Background 塗り、BBox クリッピングを GDI+ と Cairo の両レンダラーでサポートするようになりました
変更
- type 1 シェーディング関数が、より高い狭小部の精度と一定または滑らかな領域での低い処理量のために、追加の四分の一セルプローブを備えた上限付き適応カラーサンプリングを使用するようになりました
- メッシュシェーディング周辺の PatternType 2 行列が GDI+ と Cairo の両方で正確に一度だけ合成され、移動、拡大縮小、回転したパターン配置を保持するようになりました
- メッシュの色コンポーネントが Function 評価および RGB への変換前にソースカラースペースで補間されるようになり、非線形関数、DeviceCMYK グラデーション、カラーマネジメント変換の正しい順序を保持します
- Coons およびテンソルサーフェスが、レンダリングサイズが大きい場合に高曲率出力をより滑らかにする、上限付きデバイスピクセル誤差分割を使用するようになりました
- 暗号化されたシェーディングおよび Function ストリームが文書暗号コールバック経由でデコードされ、type 5 頂点レコードが必須のバイトアラインメントを尊重するようになりました
Version 3.280.1
修正
MergeFileList/MergeFileListFast/MergeFileListStrictでは、結合リストに非 PDF ファイルが含まれるとTSmartPDFReader/TSmartPDFDocumentの組(およびそれらが所有するすべてのもの)がリークしていました。reader と document はそれらを解放するtryブロックの前で構築されていたため、不正ファイルの内容の解析失敗で、周囲の例外ハンドラーによるクリーンアップではなく既に構築済みの reader が孤立していました。単一ファイルおよび複数ファイルの事前走査パスの両方で、保護するtry内で構築するようになりました- メッシュシェーディング解析(
TPLMeshShading.Parse、シェーディング type 1 および 4-7)では、デコードした/Functionオブジェクトが解析のたびにリークしていました。すべての早期終了パスと通常完了時に解放が抜けていましたが、Parseの終了方法にかかわらずfinallyブロックで関数を解放するようになりました TPDFlibSignDoc.Closeが smart-reader/document/info フィールドを解放後に nil に設定するようになり、Open、OpenStream、OpenStringの例外パスもストリーム参照をクリアするだけでなく部分的に構築された smart object を解放するため、署名対象を途中まで開いて失敗したときのリークを防ぎます
Version 3.280.0
追加
- 既存の数値
LastErrorCode分類体系の上に、エラーカテゴリ列挙TPDFlibErrorCategory(ecSuccess/ecStructure/ecSave/ecCrypto/ecGeneric/ecCompliance/ecAcroForm)を追加しました。呼び出し元はコード範囲を記憶せずに失敗を分類でき、TPDFlib.LastErrorCategory、TPDFlib.ErrorCategory(Code)、TPDFlib.ErrorMessage(Code)から利用できます - フォームフィールドエラーコード 701-704(フィールド未検出、フィールド読み取り専用、AcroForm なし、無効な値)と人間が読めるメッセージを追加し、単一の一般的な失敗ではなく「フィールドがロックされている」と「そのようなフィールドがない」を区別できます
SetFormFieldValueForcedは読み取り専用ガードをバイパスして強制書込みを行うバリアントです。内部でSetFormValues(SkipReadOnly=False)が使用するため、呼び出し元が明示的に除外を選択した場合でも一括インポートでロック済みフィールドを上書きできます
変更
SetFormFieldValueは失敗時に無言で 0 を返す代わりにLastErrorCodeを 701/702/703(フィールド未検出/読み取り専用/AcroForm なし)に設定するようになりました。LastErrorCategoryは消費しない読取りのため、呼び出し元は数値コードを取得する前にカテゴリを調べられます
Version 3.279.0
追加
ReplacePageRangesは、対象ページ数または対象ページオブジェクトの同一性を変更せずに、別の開いている文書から視覚的なページコンテンツを置き換えます。これにより、それらのページに既に付加されたブックマーク、リンク、注釈、フォームウィジェットを保持します
変更
- 文書間のページコピーで、要求範囲をインポートする前に余分なプレースホルダーページを作成・削除しなくなりました
Version 3.278.0
追加
PrintPagesAdvancedが、任意のPrintPages範囲式にコピー、部単位印刷、両面印刷、向き、色、品質、用紙サイズ、給紙トレイ設定を適用しつつ、1 つのプリンタープロファイルと 1 つの印刷ジョブを維持するようになりました
変更
- 高度な印刷設定がジョブ開始前に検証され、4 つの名前付きプリセットを上回る正の印刷品質値は DPI として適用され、用紙または給紙トレイ識別子には対応する
DEVMODEフィールドでサポートされる完全な正の範囲を使用できるようになりました
修正
- 破損した相互参照の復旧が、64 KiB の逐次 I/O を維持しながら、Win64 では上限付きブロック読取りを従来の
TStream.Readオーバーライド経由でディスパッチするようになり、計測およびカスタムストリームの動作を保持します
Version 3.277.0
変更
- 破損した相互参照の復旧が、一致する文字ごとにシークする代わりに 64 KiB の逐次ブロックでソースデータを走査するようになり、補助メモリを上限内に保ちながら大きな PDF ファイルと非メモリストリームに対応します
- 復旧処理が完全な間接オブジェクトトークンを検証し、コメント、文字列、ストリーム内のオブジェクトに似たデータをスキップし、後続の
endobjトークンでストリーム終端を確認し、読取り境界で分割されたヘッダーを保持し、最後に有効なトレーラー辞書を選択するようになりました
修正
- トレーラー再構築がネストした辞書およびリテラル文字列内の区切り文字テキストをサポートし、最初の 2048 バイトまたは最初に見える
>>の組で切り詰められなくなりました
Version 3.276.0
追加
ActivateWebLinksとActivateWebLinksExは既存ページテキストをページごとに一度走査し、選択可能な検出および枠線オプションを用いて、HTTP、HTTPS、www.、FTP、mailto:、裸のメールアドレス対象に重複しない URI リンク注釈を作成します- 生成されたリンクは、マッチした文字のジオメトリ、許可される場合の回転・傾斜テキスト用の正確な四角形、PDF/A 印刷フラグ、進行状況とキャンセルのサポート、選択ページの復元を使用します。タグ付き PDF および PDF/UA 文書は、不完全な構造ツリー更新から保護されます
変更
SetAutoCreateWebLinksは、新たに描画するテキストのリンク作成時にも同じ境界認識検出器と対象正規化を使用するようになり、www.、FTP、裸のメールアドレスをサポートしました
修正
- 注釈の
/Contents、名前、日付、タイトル、件名プロパティを更新しても、既存のアクション辞書のサブタイプを上書きしなくなり、注釈メタデータ変更後も URI およびその他のアクションが有効なまま保持されます
Version 3.275.0
追加
ExtractPageRangeText、SavePageRangeTextToStream、SavePageRangeTextToFileは、呼び出し元定義のページ区切り文字を使用して解析済みページ範囲を 1 回の走査で抽出します。ストリームおよびファイル出力は UTF-8 データを増分書込みするため、大きな文書で文書全体サイズのテキストバッファを必要としませんSetPageBoxRangeとRemovePageBoxRangeは、呼び出し元が選択したページを保持したまま、標準ページ範囲構文全体にページ境界の変更を適用しますSetPageTransitionRangeとSetPageTransitionRangeExは、ページごとの進行状況とキャンセルをサポートし、レガシーまたは拡張プレゼンテーション切替をページ範囲に適用しますGeneratePageThumbnailsは要求されたページを再利用可能なメモリへ直接レンダリングし、中間ファイルまたはネストした進行状況処理なしにその/Thumb画像を添付します
Version 3.274.0
修正
- 軸方向シェーディングパターンの GDI+ レンダリングが PDF の
/Extend配列を尊重するようになりました。SetupGDIPlusPatternは常にWrapModeTileを使用する代わりに、いずれかの端が拡張される場合に Cairo バックエンドと同様WrapModeClampを渡すため、グラデーション軸の外側を端の色で正しく描画します
追加
- 垂直スクロールバーのドラッグ中に表示されるスクロールヒントバブル(
"Page N / M")が、WM_TIMERハンドラーにより 3 秒間操作がないと自動的に非表示になるため、別のスクロールイベントまで残り続けなくなりました ZoomInStep/ZoomOutStepが、現在のズームと 14 段階ラダー上の次のプリセットの間にある場合、ActualSize(100%)、FitWidth、FitPageの比率にスナップするようになり、プロフェッショナル PDF ビューアーの動作と一致します- ビューアーのディスクページキャッシュがビルドバージョンマーカー(
cache.version)を書き込み、ライブラリバージョンの変更時にキャッシュルート全体を消去するようになりました。これにより、ビルド更新後に古いコードパスでレンダリングされた古いビットマップを再利用しません
Version 3.273.1
修正
- 保存時に作成されたオブジェクトストリームコンテナおよび xref ストリームオブジェクトは、
TPDFStructure.AddObjectの登録を通らなかったためリークしていました。両方の呼び出し箇所で所有権追跡ファクトリーNewStreamWithDictを使用するようになり、ReportMemoryLeaksOnShutdown下でテストランナーが報告していたTPDFStreamリークを解消しました - 相互参照ストリームの
/Sizeは 1 つ小さすぎました。これはファイル全体で最大のオブジェクト番号より 1 大きい値である必要があり、xref ストリーム自身もMaxObj+1番号の間接オブジェクトであるため、/SizeはMaxObj+2になりました
変更
- Peephole コンテンツストリームオプティマイザーが恒等テキスト行列演算子(
1 0 0 1 0 0 Tm)も削除するようになり、同じ 6 オペランドの恒等性チェックでcmとTmの両方を対象にします - マークアンドスイープ GC が、ソース文書を線形化して読み込んだ場合にオブジェクト 1(
/Linearizedパラメーター辞書)を保持するようになりました。この辞書は/Rootから参照されませんが存続する必要があります
Version 3.273.0
追加
- 保存時のオブジェクトストリームパッキング(
TPDFDocument.PackObjectsIntoStreams)が、対象となる非ストリーム間接オブジェクトを収集し、Flate 圧縮付き PDF 1.5 オブジェクトストリーム(/Type /ObjStm)へシリアル化し、type 0、type 1、type 2 エントリを持つバイナリ相互参照ストリーム(/Type /XRef)を出力するため、オブジェクト密度の高い文書では保存ファイルサイズを 10~40% 削減します TPDFlibSaveOptions.PackObjectStreamsフラグとTPDFlib.SetPackObjectStreams/GetPackObjectStreamsAPI を追加しました。既定で有効であり、PDF バージョンにより自動ゲートされます(1.5+ ではパッキングと xref ストリームを有効化し、1.4 以下では互換性のため従来のプレーンテキスト xref を保持します)。TPDFlib.GetLastSaveUsedObjectStreamsは直前の保存で実際にパッキングされたかを報告します
Version 3.272.0
追加
- 未参照の間接オブジェクトに対するマークアンドスイープガベージコレクション(
TPDFDocument.GarbageCollectUnusedObjects)が、トレーラーのルート(/Root、/Info、/Encrypt)からオブジェクトグラフをたどり、到達不能なすべての間接オブジェクトを削除します。ページが削除され、そのフォント、コンテンツ、XObject リソースが孤立したときに蓄積するファイルサイズの増大を抑えます TPDFlibSaveOptions.GarbageCollectフラグとTPDFlib.SetGarbageCollect/GetGarbageCollectAPI により、呼び出し元は完全保存時の GC を選択できます(後方互換性のため既定では無効です)。TPDFlib.GarbageCollectObjectsは GC を直ちに実行し、削除した孤立オブジェクト数を返します
Version 3.271.0
追加
- Peephole コンテンツストリームオプティマイザー(
TPDFContentPeepholeOptimizer)が Flate 圧縮前に解析済みページコンテンツストリームを書き換え、意味的に冗長な PDF 演算子を削除します。恒等cm行列、空のq/Qペア、空のBT/ETオブジェクト、クリップのないnで終了する無操作パス、重複するグラフィックス状態設定子(色、線幅、端部/結合、破線、テキスト状態)、描画演算子後の不要なnが対象です。すべての変換は出力等価であるため、表示ページ出力は変化しません TPDFlibSaveOptions.OptimizeContentStreamsフラグと対応するTPDFlib.SetOptimizeContentStreams/GetOptimizeContentStreamsAPI により、呼び出し元はCompressContent/CompressPage中の peephole 書換えを有効または無効にできます。既定で有効です
変更
TPDFDocument.CompressPageが最適化フラグをページツリーへ転送するようになり、既存の Flate 圧縮前にTPDFPageTree.Compress内で peephole パスが実行されるため、演算子レベルの削減をバイトレベルの圧縮に重ねられます
Version 3.270.0
追加
- 新しい
PLParseDefaultAppearanceは、/DAのデフォルト外観バイト文字列(ISO 32000-2 12.7.4.3)をフォントリソース名、フォントサイズ、塗りつぶし色へデコードします。rg、k、Gの色演算子を対象にするため、フォームフィールドおよび注釈の外観生成器は作成者が意図したスタイルでテキストを描画できます
変更
- ページコンテンツストリームの組立て(
TPDFRenderer.GetContents)が、繰り返しのResult := Result + chunkではなくTStringBuilderを介して複数部分の/Contents配列を連結するようになり、多数のコンテンツストリーム部分を持つページで不利だった O(n^2) の文字列拡張を解消しました
Version 3.269.0
追加
- 新しい
BeginMarkedContent/EndMarkedContentは、ISO 32000-2 14.9.2–14.9.5 に従い、アクセシビリティプロパティ(/Alt、/ActualText、/Lang、/E)を持つインラインのマーク付きコンテンツシーケンスを BDC プロパティリストへ直接書き出します。これにより、スクリーンリーダーとアクセシビリティツールは構造ツリーエントリなしに代替テキストを読み取れます - 注釈リーダーが、Errata #287 の優先規則(枠線スタイル辞書
/BSがレガシー/Border配列より優先)を実装するGetAnnotEffectiveBorderを公開し、幅、スタイル、破線パターンを 1 回の呼び出しで解決します - 署名文書が、シード値辞書(
/SV、ISO 32000-2 12.7.5.5 Tables 236–237)の必須フィルター、許可された SubFilters、許可されたダイジェスト方式を読み取るGetSignatureSeedValueを公開しました。これにより署名者は作成者が埋め込んだ制約を遵守できます GetSignatureFieldLockは、/LockFieldMDP シード辞書(Table 238)を読み取ります。署名時にロックする必要があるアクション(/All、/Include、/Exclude)と対象フィールド名を取得します
Version 3.268.0
追加
- 新しい
PLParsePDFDateは、ISO 32000-2 7.9.4 の日付文字列(D:YYYYMMDDHHmmSSOHH'mm')をローカルTDateTimeに解析します。必須のD:接頭辞、フィールド依存階層(各フィールドは先行するすべてのフィールドがある場合のみ存在)、UT オフセット(任意のアポストロフィ分を伴う+/-/Z)を尊重し、文書化された時点に対応するローカル時刻を返します - テキスト文字列デコード(
PLDecodeTextString)が、7.9.2.2.1 に従い PDF 2.0 UTF-8 BOM(EF BB BF)を認識するようになりました。これにより、UTF-8 で作成されたメタデータを PDFDocEncoding と誤解せず正しくデコードします - ファイル仕様が、Errata #444 に従う PDF 2.0 の優先順位(Path > UF > F)を尊重する
GetFileNameと、/EFおよび/RF辞書用のGetEmbeddedFileStream、GetRelatedFilesアクセサを公開するようになりました - 注釈リーダーが、Errata #23/#34/#42/#170 の規則を実装する外観優先ヘルパー
GetAnnotNormalAppearance、GetAnnotDefaultAppearance、GetAnnotOffStateAppearanceを公開するようになりました(AP/N が正規、DA はバイト文字列フォールバック、Off 状態は名前Offの下にあります) - PDF/UA 検証が、非標準構造タイプがロールマップチェーン経由で標準タイプに終端できない場合に新しいコード 10045 を報告するようになりました(ISO 14289-1:2014 7.1)。深さ 8 までの循環保護も備えます
- PDF/A および PDF/UA のフォント監査が、埋込み CIDFontType2 フォントに
/CIDToGIDMapが存在するだけでなく、その値が名前Identityまたはストリームであることを検証するようになりました(ISO 32000-1 9.7.4)
変更
- 名前ツリー検索(
NameTreeLookup)が、ISO 32000-2 7.9.6 に従い、適合ファイルでは線形走査へフォールバックする前にソート済みNames配列を二分探索するようになりました。大規模な EmbeddedFiles/JavaScript/Dests 検索を O(n) から O(log n) に改善します - PDF/UA 標準構造タイプセットに PDF 2.0 の追加項目(
Artifact、DocumentFragment、FENote、MarkedContent、Title)を加え、ロールマップの再マッピング不要およびチェーン終端チェックが完全なタグ語彙を認識するようになりました
Version 3.267.0
追加
EnumPageContentStatesExは、設定可能な深度、サイクル保護、および深さ優先の実行順序によって Form XObject 命令を再帰的に列挙可能- コンテンツのスナップショットが、ストリームおよび親の XObject 情報、リソーススコープの識別子、Form のトラバースステータス、および子孫の数を含む呼び出しツリーの識別子を公開
- 独立したコンテンツトラッカーが、スコープ付きフォントを登録し、行列の連結およびバウンディングボックスのクリッピングを使用して分離された Form 実行状態を初期化可能
変更
- 再帰的なコンテンツトレースが、各 Form リソース辞書を個別に選択し、互換性のあるレガシー Form に対して呼び出し元のリソースを継承し、継承されたフォントの識別子を保持し、繰り返しの呼び出しの間でデコードされた Form プログラムをキャッシュ
Version 3.266.0
追加
GetTextRunsから返されるテキスト実行(Text run)が、BT、Td、TD、Tm、T* を表示オペレータとともに再実行して取得されたグリフの原点(OriginX/OriginY)および完全なテキスト行列コンポーネント(Tm11/Tm12/Tm21/Tm22/TmDX/TmDY)を保持するようになり、利用者が個別のテキスト抽出パスなしでグリフを配置可能- メッシュシェーディングのデコードにおいて、黒へのフォールバックの代わりに Lab、CalRGB、および CalGray 色空間をカラーマネージャ経由でルーティングするようになり、非 DeviceRGB のフリーフォームおよびクーンズパッチに対して正しい塗りつぶしを生成
- 黒塗り(Redaction)処理において、既存のコンテンツ削除とともに、
/Rect、/IC内部色、およびオプションのオーバーレイテキストを含む実際の/Subtype /Redact注釈を出力するようになり、黒塗りを認識するビューアがサニタイズされた領域をマーク可能 - ライブラリの操作が、これまで休止状態だった
Loggerを介してロードおよび保存の境界で構造化されたログレコードを出力するようになり、ISO-8601 UTC タイムスタンプと、行ログファイルを毎回再度開くことのないキャッシュされたTStreamWriterファイルシンクを使用 - 新しい
Tests.Memoryフィクスチャが作成/描画/保存/解放およびNewDocumentサイクルをヒープ回帰から保護し、コンソールテストランナーがReportMemoryLeaksOnShutdownを有効化 - EMF の解釈において、
UnknownRecordCountプロパティを介して不明なレコードまたはプライベートレコードをカウントするようなり、サイレントなメタファイルの間隙を監視可能
変更
- 辞書のキー検索(
TPDFDictionary.FindIndexByKeyName)において、16 を超えるエントリを持つ辞書に対して遅延オープンアドレス法ハッシュインデックスを構築するようになり、レンダラーの Resources/ColorSpace/Font/ExtGState 検索の大部分を占めていた線形スキャンを O(1) のプローブに変換 - sRGB ガンマ変換(
XYZ2RGB)において、ピクセルあたり 3 回のPower(x, 1/2.4)呼び出しの代わりに共有の 4096 エントリのルックアップテーブルを使用し、Lab から XYZ への 3 乗計算に直接乗算を使用するようになり、どちらも Lab または ICC ベースの画像をデコードする際の主要なピクセルあたりコストを削減 - ページ検索(
TPDFPageTree.GetPage)において、呼び出しのたびにページツリーを再トラバースする代わりに、繰り返しのアクセス時にキャッシュされたページ辞書を返すよう変更 - コンテンツストリームのオペレータディスパッチ(
ContentOperatorFromName)において、73 のオペレータを最初のバイトでバケット化し、トークンごとの線形スキャンを短い残差比較に削減 - PDF/A 色空間監査において、Indexed、Separation、DeviceN、および ICCBased のベースまたは代替空間に最大 8 の深度まで再帰するようになり、隠れた DeviceCMYK 色調変換や生の Lab 名が警告なしで通過するのを防ぎフラグを付与
- 整形済みフォントのファイナライズ処理において、保存ごとにすべての 65536 グリフスロットを 4 回スキャンする代わりに、描画時に記録された使用済みグリフセットをウォークするよう変更
- 文字列エスケープルーチン(リテラル文字列、XFDF、スタンプ、および変数トークン展開)において、
TStringBuilderまたは 2 パス割り当てを介して出力を構築するようになり、保存およびフォームエクスポートのホットパスから O(n^2) の連結を排除 - AES ストリームの暗号化/復号において、ブロックごとの再割り当ての代わりに、ループ反復間でチャンクバッファを再利用
- TrueType パーサーにおける複合グリフ解析において、コンポーネント配列を 1 要素ずつではなく幾何級数的に拡張
- メッシュシェーディングの
ReadBitsが最小限のカバリングバイトを 1 パスで読み取り、WriteBitsが出力バッファのサイズを事前に設定することで、ビットごとの再割り当てを排除 - ペインターの円制御点が事前計算された kappa 定数を使用し、弧の二乗計算に
Powerの代わりにSqrを使用
修正
PDFlibParallelにおいて、PDFlibRenderPagesParallelのスタブボディのシグネチャがインターフェース宣言と一致していなかった Windows 以外のビルドエラーを修正
Version 3.265.0
追加
- C++Builder デモスイートを Delphi と整合させるために 59 の C++Builder コンソールデモを追加し、同一の API サーフェスをカバーするデモの総数を 33 から 92 に増加
- Demo/C++Builder/index.html を 35 から 92 エントリに拡張し、Navigation、Color & ICC、Barcode & media、および Structure & compliance セクションを追加
修正
- DelphiCompile リストから 20 のライブラリユニット(PDFlibMeshShading、PDFlibGraphics、PDFlibWindows、PDFlibParallel、PDFlibLogger、PDFlibMail、PDFlibViewer など)が欠落しており、すべての C++Builder デモのコンパイルを妨げていた、既存 of 33 の C++Builder cbproj ファイルすべてを修正
Version 3.264.0
追加
- コンテンツのグラフィックス状態のスナップショットが、
Doオペランドを画像、フォーム、または PostScript XObjects として解決し、そのリソース名、オブジェクト番号、および変換された境界を報告可能 - Form のスナップショットが、元の
/Matrixおよび/BBoxを、リソース、グループ、透明グループ、および参照フォームのインジケータとともに公開 - 独立したコンテンツトラッカーが、
RegisterXObjectを介して XObject ストリームを事前登録可能
変更
- ページコンテンツ状態の列挙において、選択されたページの XObject リソースを事前コンパイルし、変換された 4 つのコーナーすべてから呼び出し境界を計算
Version 3.263.0
追加
- コンテンツのグラフィックス状態のスナップショットが、現在のパス境界、現在の点、パスの複雑さ、保留中のクリッピングルール、および有効なクリッピング境界を公開
- 独立したコンテンツトラッカーが、
SetInitialClipBoundsを介して明示的なクリッピング境界を初期化可能
変更
- ページコンテンツ状態の列挙において、遅延された
WおよびW*クリッピング、正確に変換された 3 次極値、q/Qクリッピング復元、および選択されたページのCropBox境界に従うよう変更
Version 3.262.0
追加
- コンテンツのグラフィックス状態のスナップショットが、フォントの書き込みモード、命令ごとの正確なテキスト変位、およびフォントメトリクスが解決されたかどうかを報告可能
- 独立したコンテンツトラッカーが、
OnMeasureTextを介してフォント測定値を提供可能
変更
- ページコンテンツ状態の列挙において、シンプルまたは複合フォントメトリクス、水平スケーリング、間隔、および垂直書き込みルールを使用して、
Tj、TJ、'、および"のテキスト行列を進めるよう変更
Version 3.261.0
追加
- コンテンツのグラフィックス状態のトレースにおいて、透明度、ブレンド、オーバープリント、ソフトマスク、デバイスコントロール、および埋め込みフォント参照を含むページの
ExtGStateリソースを解決可能 TPDFContentStateTrackerが、独立したコンテンツプログラム分析のために外部グラフィックス状態辞書を事前登録可能
変更
- 外部グラフィックス状態パラメータが累積的に適用され、完全な
q/Q保存および復元スナップショットに参加するよう変更
Version 3.260.0
追加
- 構造化されたコンテンツプログラムおよび選択された完全なページに対して、シングルパスの有効なグラフィックス状態トレースを追加
- スナップショットが、各命令の前後で CTM、テキスト行列、線スタイル、破線パターン、色、テキスト状態、およびグラフィックス状態スタックの深さを公開
変更
- 画像配置の列挙において、単位正方形の 4 つのコーナーすべてをマッピングするようになり、回転やシアー(せん断)の下で正しい境界を生成
Version 3.259.0
追加
- インタラクティブなフォームフィールド向けに、型定义された時間、特殊パターン、および任意のマスクヘルパーを追加
- 個別にオプション指定可能なゼロ安全境界を持つ範囲検証を追加
- 自動計算順序登録を伴う、合計、平均、積、最小、および最大フィールドの計算を追加
セキュリティ
- 生成された JavaScript 文字列値が、引用符、バックスラッシュ、制御文字、および JavaScript 行区切り文字をエスケープするよう変更
Version 3.258.0
追加
- フォームフィールドイベント、既存のアクション、およびアクションチェーン向けに、型定義された
SetOCGStateアクション作成を追加 - オプショナルコンテンツ(Optional-content)アクションが、左から右への状態変更、重複グループ、およびオプションのラジオボタン関連性の設定を保持
変更
- オプショナルコンテンツアクションの列挙において、ライター API を介してラウンドトリップ可能な標準グループハンドルを返すよう変更
Version 3.257.0
追加
- ゼロベースのページ、すべての標準的なフィットタイプ、ヌル許容の XYZ 値、およびトライステート(3 状態)のウィンドウ設定を伴う、完全な明示的リモート送信先書き込みを追加
- ポータブルファイル、Windows パラメータ、デフォルトディレクトリ、およびオープン/プリント操作のための完全な起動アクション書き込みを追加
- 既存のアクションハンドルでこれらのペイロードを更新したり、コンテナ固有の重複APIを使用せずにアクションチェーンに追加したりできるようになりました
セキュリティ
- リモートGo-Toおよび起動アクションのビルダーは、アクションチェーンを変更する前にPDF/Aモードを拒否するようになりました
Version 3.256.0
追加
- リモートGo-Toアクションの検査で、名前付きおよび明示的な移動先、ゼロベースの対象ページ、フィットタイプ、座標、ズーム値が報告されるようになりました
- 起動アクションの検査で、Windowsアプリケーションのパラメータ、デフォルトのディレクトリ、オープンまたは印刷操作が報告されるようになりました
- アクション情報で、存在しない
/NewWindow設定と明示的なfalse値が区別され、配列ベースのターゲットが識別されるようになりました
Version 3.255.0
追加
- リモート名前付き移動先および外部アプリケーション起動アクション用の型付きビルダーを追加しました
- URIアクションビルダーが、標準の
/IsMapフラグを介した座標マップ要求をサポートするようになりました - 新しいアクションの種類が、既存の拡張ビルダーインターフェイスを介してライフサイクル、フォームフィールド、チェーンアクションのAPIで機能するようになりました
Version 3.254.0
追加
- 専用のデモがなかったライブラリサーフェイス向けに、14のDelphi APIカバレッジデモを追加しました:OutlineBuilder、NamedDestinations、DocumentActions、EmbeddedFiles、LinearizeDemo、BarcodeGallery、XfaFields、TaggedPDF、OutputIntent、HtmlTextFlow、RichMediaAnnotations、MailSendDemo、TextBlockExtraction、PadesDssDemo
- DelphiデモインデックスにNavigationセクション、Color & ICCセクション、Barcode & mediaセクション、Structure & complianceセクションを追加し、掲載デモ数を56から92に増やしました
- これまでReadmeが同梱されていなかった20のデモ向けに、Readme.en-us.htmlガイドを追加しました
変更
- すべてのDelphiデモソースにプロジェクトの Formatter.config を適用して演算子の空白、インデント、キーワードの大文字小文字を1つのスタイルに統一し、If...Thenが1行に収まるように NewLineBeforeThen を False に設定しました
- クラシックなGUIデモ全体でエラー処理を強化しました:SaveToFile の戻り値が一貫してチェックされるようになり、TPDFlib およびセカンダリオブジェクトの有効期間が常に try/finally で保護され、失敗メッセージに LastErrorCode が含まれるようになりました
修正
- ImageToPdf で SaveToFile の極性が反転し成功が失敗として扱われていた問題を修正し、保存に失敗したときに AddTrueTypeSubsettedFont が古いファイルを開かないようにしました
- CreateWithImageToStream、DoInTheStream、CanvasText、ExtractText、ExtractImage、PdfDecrypt、PdfEncrypt、PdfPermission で例外発生時に TPDFlib、TStream、TBitmap、TOpenDialog、TStringList インスタンスがリークする可能性があるリソースリークの問題を修正しました
- AddFormattedTitle(未使用の RectParts 割り当て、StrToFloatDef 周辺の冗長な try/except)および MultiFunction(上書きされた SetTextSize 呼び出し)のデッドコードを削除しました
Version 3.253.0
追加
- スレッド、サウンド、ムービー、オプショナルコンテンツ、レンディション、トランジション、3Dビューアクション用の型付きアクション詳細を追加しました
- 再利用可能なアクションハンドルの検索と、順序付けされたオプショナルコンテンツ状態の列挙を追加しました
- 置換、Fly、Push、Cover、Uncover、Fadeスタイルをカバーする完全なPDFトランジションレコードを追加しました
修正
- WipeおよびGlitterトランジションが方向を
/Diに保存し、ページディクショナリからページ表示時間を読み取り、トランジションとタイミングの両方のエントリをクリアするようになりました - 標準のPDF-1.5未満のトランジションスタイルがPDF 1.5出力バージョンを強制しなくなりました
Version 3.252.0
追加
- プライマリ、ウィジェット、フィールドトリガー全体で型付きアクション詳細を使用するシングルパスのフォームフィールドアクション検出を追加しました
- インタラクティブフォーム用の完全な計算順序列挙、フィールドごとの検索、および削除を追加しました
- バルクフォームフィールドスナップショットに計算順序とアクション数を拡張しました
変更
- ウィジェットのライフサイクルトリガーが、必要なPDF 1.5のバージョン処理を伴うページオープン、ページクローズ、ページ表示、ページ非表示のアクションをサポートするようになりました
Version 3.251.0
追加
- 解決されたページおよびビューパラメータを使用して、レガシーカタログエントリとモダンな名前ツリーにわたるシングルパスの名前付き移動先列挙を追加しました
- 名前付き移動先の削除、完全なプッシュボタンキャプション、ボタンテキストの配置、およびフォームフィールドのマッピング名を追加しました
- バルクフォームフィールドスナップショットにマッピング名、ボタンのキャプション、およびボタンテキストの配置を拡張しました
修正
- 名前ツリーの編集で直接の移動先値がサポートされるようになり、明確なマルチノードインデックスエンコーディングが使用されるようになりました
Version 3.250.0
追加
- フィールドのアイデンティティ、タイプ、ページ、フラグ、値、およびChoice状態を含むシングルパスのフォームフィールドスナップショットを追加しました
- 型付きChoiceフィールドフラグクエリと、検証済みの選択インデックスおよび最上位表示インデックスのアクセサを追加しました
修正
- 単一選択のChoiceフィールドが複数選択の
/I配列を保持しなくなり、複数選択から単一選択への切り替え時に古い/V配列が文字列値に置き換えられるようになりました
Version 3.249.0
追加
- アプリケーションがページを2回抽出することなくキャッシュされたヒットを反復処理できるように、ワンパスの状態維持テキスト検索トラバーサルを追加しました
- バルクフォーム値のエクスポートと、オプションの読み取り専用フィールド保護付きの名前ベースの適用を追加しました
Version 3.248.0
追加
- ページスペースのジオメトリ、抽出されたテキスト、列挙、クリア、および拒否可能なマーキーイベントを含む保持されたViewerの選択範囲を追加しました
- 永続的なオーバーレイを含む、正確な現在のビューポートのビットマップキャプチャとファイル出力を追加しました
Version 3.247.0
追加
- ユーザーによるフォーム編集と注釈アクティブ化用の独立したViewerコントロールを追加しました
- テキストおよび選択フォームエディタ用の構成可能な前景色を追加しました
Version 3.246.0
追加
- 型付きの行末スタイル、図形の内側の色、リンクのハイライトモード、FreeTextのアライメント、Text注釈の開いた状態、およびCaret記号を追加しました
- アノテーションセッターが互換性のあるサブタイプを検証し、必要に応じて最小PDFバージョンを自動的に引き上げるようになりました
Version 3.245.1
修正
- A4レポートが意図したスケールを維持し、テキストがメモの境界内に収まり、構成されていないメモフレームが非表示のままになるように、FastReportエクスポートのページサイズとメモレイアウトを修正しました
Version 3.245.0
追加
- 暗号化されたドキュメントが初期資格情報を拒否した後にアプリケーションが別のパスワードを提供できるように、
OnPasswordを追加しました - パスワードの再試行がファイル、ストリーム、文字列の読み込みで一貫して動作するようになり、次の試行回数が公開され、ハンドラーがキャンセルできるようになりました
セキュリティ
- パスワードのコールバックは合計16回の試行に制限され、各再試行は新しいパーサーと復号状態を使用するようになりました
Version 3.244.0
追加
- 呼び出し元で定義されたXMP名前空間にスカラープロパティを安全に書き込むための
SetXMPPropertyExを追加しました - カスタムXMP値はXML DOMを介してエスケープされ、繰り返し書き込みを行うと一致する名前空間プロパティが置き換えられ、無効または予約済みのXML名が拒否されるようになりました
Version 3.243.0
追加
- クローズ前、保存前、保存後、印刷前、印刷後のトリガー用の型付きドキュメントライフサイクルアクションを追加しました
- URI、名前付き、JavaScript、フォーム、および移動先のアクションビルダーの共有サポートを備えた型付きのページオープンおよびクローズアクションを追加しました
- すべてのドキュメントおよびページのライフサイクルトリガーに対するアクション検査および削除メソッドを追加しました
Version 3.242.0
追加
- 元の読み込みファイルに変更を追加し、繰り返される増分保存用に更新されたxrefチェーンを自動的に再読み込みするための
SaveChangesを追加しました SaveChangesは書き込み前にリロードパスワードを検証し、リロード後も選択された公開ドキュメントハンドルを保持する
変更
AppendToFileは現在の長さがロードされたソースと異なるターゲットを拒否するようになり、外部で変更されたファイルに古い増量オフセットが追加されるのを防止する
Version 3.241.0
追加
- ブックマークリストの末尾に直接アクセスするための
GetLastOutlineおよびGetLastChildOutlineを追加 - フルツリースナップショットを割り当てることなく、軽量にブックマークツリーを検査するための
GetOutlineChildCountおよびGetOutlineSiblingIndexを追加
Version 3.240.0
追加
- 上書き、スキップ、自動リネームの衝突ポリシーおよび添付ファイルごとの命名コールバックを備えた
SaveAllAttachmentsExを追加 - 添付ファイルのエクスポートで、要求された名前を安全なリーフ名に短縮し、Windows の予約デバイス名を保護するよう変更
修正
- 添付ファイルスナップショットがカウントされたものの割り当ておよびデータ設定が行われなかったため、
SaveAllAttachmentsがファイルを書き込まずに返る問題を修正
Version 3.239.0
追加
- Viewer ホストがズーム、スクロール、表示回転に依存しない 1 から始まるページ番号と上から下への PDF ポイント座標を受け取れるように、
OnPageMouseDown、OnPageMouseMove、およびOnPageMouseUpを追加 - ポインタの出入り時にリンク、非リンク注釈、およびフォームフィールドを区別するための
RegionAtClientPoint、ActiveRegion、およびOnActiveRegionChangeを追加 - 既存の Viewer アクションクラスを、コピー、ズーム、フィット、回転、ナビゲーション、保存、および印刷用の準備されたコンテキストメニューに構成する
CreatePDFlibViewerDefaultPopupMenuとInstallPDFlibViewerDefaultPopupMenuを追加
Version 3.238.0
追加
- 従来の
OnProgress百分比コールバックを維持しながら、型定義された操作タイプ、ライフサイクルフェーズ、現在の単位と総単位、パーセンテージ、詳細テキストを提供するOnOperationProgressを追加 - ファイル、ストリーム、文字列のロード、保存、検索、結合、およびページレンダリングの各エントリポイントで開始フェーズと終了フェーズを報告するようになり、中間進行中の操作は
opRunningも報告する opStartingまたはopRunningの実行中にCancelを設定すると既存のAbort状態が有効になり、新旧の呼び出し元に共通のキャンセルパスを提供する
修正
LoadFromFileは、誤ったパスワードに対するエラーコード 404 を保持するようになり、クリーンアップ後に一般的なロードエラー 401 で上書きするのを防止する
Version 3.237.0
追加
- 結果配列の割り当てやサイズ調整を行わずに、各テキストヒットを即座に発行する
SearchTextEachおよびTPDFlibSearchHitEventを追加 SearchTextとSearchTextEachはOnProgressを介してページ進行状況を報告するようになり、Abortとコールバックによるキャンセルの両方に対応し、コールバックによるキャンセルはResetAbortまで既存の中断状態を使用する- Viewer の検索パネルと検索ハイライトレイヤーがストリーミング API を 1 パスで処理するようになり、従来の 256 行および 512 ハイライトの制限を撤廃
修正
- 完全一致検索で、同じテキストブロック内の初期の部分一致を通り越して、境界が正しい後続の一致を検索し続けるように改善
Version 3.236.0
追加
- 印刷ジョブを開始することなく、稼働中のプリンタドライバのスナップショットをキャプチャする
GetPrinterCapabilitiesを追加 - 型定義された
TPDFlibPrinterCapabilitiesの結果に、用紙 ID、名称、ミリメートル寸法、給紙トレイ ID と名称、両面、カラー、横向き、部数順印刷のサポート、プリンタポート、およびドライバが報告する最大コピー部数を含めるよう変更 - 用紙やトレイのメタデータを省略するドライバでも、空の配列を持つ残りの機能を返し、無効なプリンタ名の場合は完全にクリアされたスナップショットを返す
Version 3.235.0
追加
- ロードされたドキュメントを一時 PDF に保存し、組み込みの Windows CDO プロバイダを介して SMTP 添付ファイルとして送信する
SendDocumentByMailを追加 - アプリケーションが別のトランスポートを提供し、非 Windows ホストをサポートし、ネットワークアクセスなしでメールワークフローをテストできるように、参照カウントされる
IPDFlibMailProvider拡張ポイントを追加 - 送信ごとに隔離された一時ディレクトリを使用し、添付ファイルの表示名をサニタイズし、プロバイダの返却後に PDF とそのディレクトリの両方を削除し、
GetLastMailErrorが検証、保存、トランスポート、およびプラットフォームのエラーを報告する
Version 3.234.0
追加
- スタンプ、ヘッダー、フッターのテキストに変数プレースホルダーを追加し、従来の & トークンと並んで
<%PageNo%>、<%TotalPages%>、<%ShortDate%>、<%LongDate%>、<%ShortTime%>、<%LongTime%>がページごとに展開される - カスタムの
<%name%>プレースホルダーは新しいOnCalcVariableイベントを介して解決され、名前とページ番号を受け取って置換データを提供(連番、バッチコード、クライアントフィールドはテキストの事前処理なしでスタンプ可能、ハンドラがない場合、未知のプレースホルダーはそのまま残る)
Version 3.233.0
追加
- テキスト抽出に上付き/下付き文字検出を追加し、新しい
GetTextBlockVAlignが抽出された各テキストブロックの視覚的行に対する基準線分類 (0 = 基準線、1 = 上付き文字、2 = 下付き文字) を報告することで、化学式、指数、脚注マーカーを認識できるように改善 - ブロックのサイズが元の行の主要テキストより明らかに小さく、その垂直方向の中心が 1 文字の高さの範囲内で主要な中心の上または下に位置する場合に上付き/下付き文字として分類する
Version 3.232.0
追加
- テキスト抽出に文字レベルの単語分割を追加し、
SetTextExtractionOptions(17, 1)により文字ごとの進み幅が実行中の中央値グリフ進み幅より大幅に広い箇所で、スペース文字を含まない表示テキストランを単語に再分割する(カーニングギャップをスペースの代用として行全体を単一オペレータで描画するドキュメントでも、GetPageTextモード 7 および 9-11 で個別の単語として抽出可能) - 幅配列は拡張されたテキストと整列したままであるため、ブロックの四辺形領域と文字ごとの幅出力の一貫性が維持される
Version 3.231.0
追加
- レイアウトを保持する固定グリッドテキストエクスポートを追加し、
GetPageText(11)がページジオメトリを等幅文字グリッドにマッピングする(行はベースラインごとにグループ化され、各ブロックは平均文字幅から計算された列に配置され、短いセルは実際のスペースで埋められるため、タブストップに依存せずにテーブルやフォームがテキストビューア、ターミナル、diff での視覚的配置を維持する) GetPageTextの参照ページに、読み取り順序 (9)、タブ区切りテーブル (10)、および固定グリッド (11) モードに関するドキュメントを追加
Version 3.230.0
追加
- テキスト抽出にハイフネーション解除を追加し、
SetTextExtractionOptions(16, 1)によりGetPageTextモード 7 および 9 の行指向出力で、改行を挟んでハイフンで結ばれた単語(行末の "inter-" に続く "national" が "international" になる等)を再結合する - ヒューリスティックによる結合はハイフンの前に文字があり、次の行が小文字で始まる場合のみ行われるため、数値範囲、固有名詞、句頭の大文字はハイフンを維持する
Version 3.229.0
追加
TPDFlibViewerコントロールにOnBeforeSnapshotイベントを追加(ドラッグ領域でスナップショットのドラッグがキャプチャされる前に発生し、Handled を設定するとデフォルトのクリップボードキャプチャがキャンセルされ、アプリケーションが独自に領域を処理可能)PrefetchEnabledを公開し、バックグラウンドの事前レンダリングワーカーを実行時にオン/オフ切り替えできるように改善(ワーカーは即座に停止し、開いているドキュメントで再起動する)DiskCacheMaxDocumentsを公開し、セッション間のディスクページキャッシュがクリーンアップ前に保持するドキュメント数を調整可能に変更(デフォルトは 10)
Version 3.228.0
追加
TPDFlibViewerコントロールに精密ナビゲーションを追加し、GoToPagePointがページにジャンプして指定されたページ位置をビューポートの左上にスクロールすることで、リンク先や検索ヒットが正確に表示されるように改善- プログラムによるスクロール制御を追加し、
ScrollByピクセルステップ、読み書き可能なHScrollPos/VScrollPosプロパティ(同じドキュメントを表示する 2 つの並列 Viewer の同期に最適)、および連続モードで各ページのスクロールアンカーを報告するGetScrollPosForPageを追加 - ズーム、回転、スクロールを介してクライアントピクセルとページユーザースペースの間で相互変換する公开座標ブリッジ
ClientPointToPageおよびPageRectToClientRectを追加し、内部ヒットテストが描画パスの正確なジオメトリを共有し、親を持たない(ヘッドレス)コントロールでも動作するように改善
Version 3.227.0
追加
TPDFlibViewerコントロールに表示状態イベントを追加し、OnZoomChangeが有効なズーム移動(明示的なズーム、プリセットステップ、サイズ変更・回転・DPI変更時のフィットモード再計算)ごとに発生し、OnHScroll/OnVScrollがスクロール位置に追従することで、ツールバーやステータス表示がポーリングなしで同期を維持する- 垂直スクロールバーのつまみをドラッグすると、移動先のページをプレビューするフローティングの「ページ N / M」バブルが表示されるように変更し(長文ドキュメントで非常に有用)、
ScrollHintEnabledプロパティ(デフォルトでオン)でオフに切り替え可能
Version 3.226.0
追加
TPDFlibViewerコントロールにおける入力と保存のループを完了し、SaveToFileおよびSaveToStreamが表示中のドキュメント(確定したフォーム編集を含む)をディスクまたはストリームに書き戻す(開いているインプレースエディタは先に確定される)- 複数行テキストフィールドが適切な複数行メモ(Memo)で編集できるようになり、Enter で改行を挿入、Ctrl+Enter で確定、Escape でキャンセルし、単行フィールドは通常の Enter で確定する挙動を維持
- Tab および Shift+Tab により、インプレースエディタが各フィールドのページに従ってドキュメント内の編集可能なテキストおよび選択フィールドを巡回し、
FocusNextFormFieldがプログラムから同じナビゲーションを公開する
Version 3.225.0
追加
TPDFlibViewerコントロールにプリセットラダーズームを追加し、ZoomInStepおよびZoomOutStepが標準プリセットシーケンス (1、5、10、25、50、75、100、150、200、400、800、1600、2400、3200 パーセント) にズームをスナップし、現在適用されているズームから開始してフィットモードが自然に遷移し、ツールバーのズームアクションも同じラダーを使用するように改善- Ctrl + マウスホイールでプリセットラダーに沿ってズームし、通常のホイールはスクロールを維持する
- キーボードショートカットを追加し、Ctrl+'+' / '-' でズームをステップ実行、Ctrl+1 / 2 / 3 で実際のサイズ、幅に合わせる、ページに合わせるを切り替え、Shift+Up / Down で最初と最後のページにジャンプする
Version 3.224.0
追加
- Delphi、DLL、および ActiveX エントリポイントを持つ
CreateSelfSignedCertificateを追加し、自己署名 RSA 証明書 (SHA-256 署名、構成可能な件名、有効期間、および鍵長) を生成して秘密鍵とともにパスワード保護された PFX ファイルにエクスポートし、SignFileや署名処理 API ですぐに使用できるようにすることで、外部の証明書発行機関なしで署名ワークフローの構築とテストが可能 - 証明書はエクスポート後に削除される使い捨てのキーコンテナ内に作成され、PFX のみがキー素材を保持し、自己署名証明書はテストおよび内部ドキュメント用であるため、明示的にインストールしない限りビューアはそれらを信頼できないものとしてフラグを立てる
Version 3.223.0
追加
- 合成可能なウォーターマークレイヤーに
TPDFlibShapeWatermarkを追加:テキストや画像のウォーターマークと同じApplyWatermarkエントリポイントを介して、塗りつぶしと線の色、線幅、不透明度を指定した長方形、円、楕円、多角形、ベジェ曲線チェーン、直線をページ範囲にスタンプ可能 - 長方形、円、楕円の形状は Width/Height からサイズを決定し、多角形、曲線、直線の形状は
SetPoints(ローカル X,Y ペア) からジオメトリを取得するため、9ポイントの Position グリッドとカスタム配置があらゆる形状の種類に適用され、退化したジオメトリ (点の数が少なすぎるもの) は拒否される
Version 3.222.0
追加
- Delphi、DLL、ActiveX のエントリポイントを持つ
AddLinkToEmbeddedPDFを追加:現在のドキュメントに埋め込まれた PDF (EmbeddedFiles 名による) を開き、オプションの新しいウィンドウ要求を伴う ISO 32000-1 §12.6.4.4 の標準の埋め込み先移動 (/GoToE) アクションを使用して、そこでの選択されたページにジャンプするページホットスポット。ドキュメントバージョンは自動的に PDF 1.6 に昇格 GetAnnotActionInfoおよびそのアウトライン/フォームフィールドの兄弟が埋め込み先移動アクションを認識するようになり、埋め込まれたターゲット名、親/子ターゲット関係、オプションのファイル仕様、および /NewWindow フラグとともに、新しいakGoToEの種類をレポートする
Version 3.221.0
追加
- Delphi、DLL、ActiveX のエントリポイントを持つ
SetSignProcessAppearanceTextを追加:デジタル署名において、署名者名、理由、場所、署名日で構成され、ビットマスクによって選択されるオプションの記述ラベル ("Signed by:", "Reason:", ...) を含む自動生成された可視テキストの外観を表示可能 - テキストブロックは、設定可能な色で Helvetica の署名フィールドの長方形内に配置され、フォントサイズ 0 は行をフィールドに自動フィットさせる。
SetSignProcessFieldImageFromFileを介して設定されたフィールド画像が優先され、ドキュメントのタイムスタンププロセスはテキストの外観を無視する
Version 3.220.0
追加
TPDFlibViewerコントロールにインタラクティブなフォーム入力を追加:チェックボックスやラジオボタンをクリックすると切り替わり、テキストフィールドや選択フィールドをクリックするとフィールド上にインプレースエディタが開く (Enter で確定、Escape でキャンセル、エディタから離れると確定)。読み取り専用フィールドはそのまま残され、変更されたページは自動的に再レンダリングされる- 書き込みが発生するたびに新しい
OnFormFieldValueChangedイベントが発生し、HighlightFormFieldsとFormHighlightColorは、ユーザーがフォームフィールドを見つけられるように、入力可能な各領域に半透明の背景を描画する - プログラムによる対応機能である
FormFieldAtPagePoint、GetFormFieldPageRect、ToggleCheckBoxField、SetFormFieldValueAndRefresh、BeginEditFormField、CommitInplaceEditorを追加し、マウス入力なしで同じ仕組みを駆動可能
Version 3.219.0
追加
TPDFlibViewerコントロールに注釈インタラクションを追加:リンク以外の注釈をクリックすると、ページ、注釈インデックス、サブタイプを伴う新しいOnAnnotClickイベントが発生し、AnnotAtPagePointはプログラムでヒットテストを公開する (Popup 関連はスキップされる)- 注釈の上にホバーすると、その Contents テキストがコントロールのヒントとして表示される (デフォルトでオンの
AnnotHintsスイッチは、標準のShowHintプロパティと連動する) - FileAttachment 注釈の埋め込みファイルをディスクに書き込む
SaveAnnotAttachmentToFileを追加し、ビューアでのクリック保存添付ファイルワークフローを完成
Version 3.218.0
追加
TPDFlibViewerコントロールにセッション間のディスクページキャッシュを追加:DiskCacheFolderを設定すると、レンダリングされたページがディスク上に永続化され、最近表示したドキュメントを再レンダリングなしで瞬時に再び開くことが可能- キャッシュされたページは、ドキュメントのパス、サイズ、最終書き込み時刻のフィンガープリントによってキー指定されるため、ファイルを編集すると古いページは自動的に無効化される。キャッシュは最大10個のドキュメントを保持し、最も使用されていないものから削除される
- ディスクキャッシュが保存したページレンダリングの数を報告する
DiskCacheHitsカウンタを追加
Version 3.217.0
追加
TPDFlibViewer用に20個の事前定義済みTAction子クラスを持つPDFlibViewerActionsユニットを追加し、ツールバーとメニューがグルーコードなしで動作可能:ページナビゲーション (First/Prior/Next/Last)、ズーム (In/Out/FitWidth/FitPage/ActualSize), ビュー回転 (時計回り/反時計回り)、印刷、ファイルを開く/名前を付けて保存ダイアログ、選択されたテキストのコピー、および5つのマウスツールモードスイッチ- 各アクションは
Viewerプロパティを介してビューアをターゲットにし、有効状態 (ドキュメントが開いているか、ページ位置、選択範囲が存在するか) とチェック状態 (アクティブなズームフィットまたはマウスツール) を自動的に最新に保つ。すべてのアクションは Action List エディタの losLab PDF カテゴリに登録される - 実際に有効になっているズーム (計算された幅合わせ/ページ合わせ係数を含む) を報告し、ズームステップがそれを基に構築できるようにする
TPDFlibViewer.EffectiveZoomPercentを追加
Version 3.216.0
追加
TPDFlibViewerコントロールに検索ヒット強調表示を追加:HighlightSearchHitsはドキュメント全体を検索し、スクロール、ズーム、回転中もその位置にとどまる半透明のバーをすべてのマッチ箇所に描画する。ClearSearchHighlights、SearchHighlightCount、設定可能なSearchHighlightColorも提供TPDFlibSearchPanel.RunSearchがアタッチされたビューアにもヒットバーを描画するようになり (デフォルトでオンの新しいHighlightInViewプロパティでオフに切り替え可能)、検索結果がヒットリストだけでなくページ上でも表示されるようになる
Version 3.215.0
追加
- 新しい
ViewerModeプロパティを介してTPDFlibViewerコントロールにマウスツールモードを追加:vmSelectテキスト選択 (デフォルト)、vmHandグラブカーソルによるドラッグパン (通常のクリックはリンクに追従)、vmZoomドラッグされた範囲を拡大してビューポートに合わせるマーキーズーム、vmSnapshotクリップボードへの領域キャプチャ、およびvmHighlight永続的な半透明の領域強調表示 - 任意のクライアント領域 (ページと強調表示) を呼び出し元所有のビットマップにレンダリングする
CaptureRegion、スナップショット処理用のOnSnapshotイベントとSnapshotToClipboardスイッチ、ズーム、回転、ナビゲーション後も保持されるページ固定の強調表示用のAddHighlightRegion/ClearHighlightRegions/HighlightRegionCountと設定可能なHighlightColorを追加
Version 3.214.0
追加
TPDFlibViewerコントロールに印刷機能を追加:PrintDocは標準の Windows 印刷ダイアログ (プリンターの選択、ページ範囲、部数、丁合い) を表示し、ライブラリの印刷エンジンにジョブを渡し、PrintDoc(False)は UI なしでドキュメント全体をデフォルトのプリンターに印刷する- 明示的なプリンター名、ページ範囲、コピー部数、丁合いフラグを指定した、完全にプログラムによるビューア印刷用の
PrintDocRangeを追加
Version 3.213.0
追加
TPDFlibViewerコントロールに表示の回転を追加:RotateClockwise90とRotateAntiClockwise90は表示されたページを90度ステップで回転させ、ViewRotationプロパティは角度を直接読み取りまたは設定する (0, 90, 180, 270)- 回転は純粋な表示属性であり、ドキュメントは変更されず、リンクのクリックとテキストの選択はすべての角度で機能し続け、幅合わせおよびページ合わせのズームモードは回転したページの形状に適応し、新しいドキュメントを開くと表示は 0 度にリセットされる
- 回転したページのビットマップは角度ごとにキャッシュされるため、角度を切り替える際に再レンダリングする代わりに以前のレンダリング結果を再利用する
Version 3.212.0
変更
- XFA データセットの SOM パス互換性を改善:
GetXFAFormFieldValueとSetXFAFormFieldValueが$data.Receipt.Detail.[Total_Price > 200].Descriptionなどの単純な FormCalc スタイルの述語セレクタを受け入れるようになり、述語がサブセットを選択したときに対応するすべてのデータノードを更新する
Version 3.211.0
変更
- XFA データセットの SOM パス互換性を改善:
GetXFAFormFieldValueとSetXFAFormFieldValueが数値またはワイルドカードの出現を伴う Data DOM クラスセレクタ#dataGroupおよび#dataValueを受け入れるようになり、$data.Receipt.#dataGroup[0].#dataValue[0]などのクラスベースのパスを使用可能
Version 3.210.0
変更
- XFA データセットの SOM パス互換性を改善:
GetXFAFormFieldValueとSetXFAFormFieldValueがレコード処理以外のパケットで$recordルートを受け入れるようになり、$record.Taxや$record/Detail[0]/Total_Priceなどのパスが外部データレコード要素から解決されるようになる
Version 3.209.0
変更
- XFDF 注釈交換を改善:注釈エクスポート時に PDF 注釈の
/BS値から標準の境界線スタイル属性width、style、およびdashesを書き込むようになり、注釈インポート時に挿入された注釈でこれらの属性を復元する
Version 3.208.0
変更
- XFDF 注釈交換を改善:注釈エクスポート時に PDF 注釈の
/CreationDateおよび/CA値から標準のcreationdateおよびopacity属性を書き込むようになり、注釈インポート時に挿入された注釈でこれらの属性を復元する
Version 3.207.0
変更
- XFDF 注釈交換を改善:注釈エクスポート時に PDF 注釈の
/F値から標準のflags名を書き込むようになり、注釈インポート時に挿入された注釈のフラグにそれらの名前を復元する
Version 3.206.0
変更
- XFA データセットの SOM パス互換性を改善:
GetXFAFormFieldValueとSetXFAFormFieldValueが$data.Receipt.*.Total_Priceなどの直接の子のワイルドカードセレクタを受け入れるようになり、親ノードで同名のフィールドを選択することなく、一致する子ブランチを読み取りまたは更新する
Version 3.205.0
変更
- XFA データセットの SOM パス互換性を改善:
GetXFAFormFieldValueとSetXFAFormFieldValueが$data..Total_Priceおよび$data.Receipt..Total_Priceなどの子孫セレクタを受け入れるようになり、最初に一致する子孫データノードを読み取りまたは更新する
Version 3.204.0
変更
- XFA データセットの SOM パス互換性を改善:
GetXFAFormFieldValueとSetXFAFormFieldValueが$data.Receipt.Detail[1].parent.Taxなどのパスでparentプロパティを受け入れるようになり、選択したノードの親の兄弟データを読み取りまたは更新する
Version 3.203.0
変更
- XFA データセットの SOM 出現処理を改善:
GetXFAFormFieldValueとSetXFAFormFieldValueが$data.Receipt.Detail[*].Total_Priceなどの[*]セレクタをサポートし、一致するすべての繰り返しデータノードを読み取りまたは更新する
Version 3.202.0
変更
- XFA の SOM パス互換性を改善:XFA データセットおよびテンプレートフィールド API がスラッシュ区切りのフィールドパスでリテラルのピリオドを保持し、ドット区切りの SOM パスでエスケープされたピリオド
Line\.Itemを受け入れるようになる
Version 3.201.0
変更
- XFA データセットのパス互換性を改善:XFA フィールド値 API が
$data/...、xfa.datasets.data/...、xfa.datasets/...などの標準データ SOM ルートの後にスラッシュ区切りのパスを受け入れるようになる
Version 3.200.0
変更
- XFA データセットの SOM 互換性を改善:XFA フィールド値 API がスラッシュ区切りの
!data/...パスを含む、標準の!data...短縮形式を受け入れるようになる
Version 3.199.0
変更
- XFA テンプレートパス互換性を改善:テンプレート編集 API が
$template/...パスを含む、XFA フィールド名列挙によって返されるスラッシュ区切りのフィールドパスを受け入れるようになる
Version 3.198.0
変更
- XFA データセットの名前空間互換性を改善:データセットパケット内のビジネスデータが独自の名前空間接頭辞を使用している場合、フィールド値 API がローカル XML 名によってデータノードを読み取りおよび更新するようになり、フィールド名列挙は接頭辞のないパスを返す
Version 3.197.0
変更
- XFDF 注釈交換を改善:注釈エクスポート時に PDF の
/NMおよび/Mから共通のnameおよびdate属性を含めるようになり、注釈インポート時に挿入された注釈でこれらの値を復元し、SetAnnotStrPropertyが注釈変更日付のタグ 104 を受け入れるようになる
Version 3.196.0
変更
- XFA フィールド名列挙を改善:フィールドリスト API がデータセットパケット内のすべてのトップレベルデータレコードをスキャンし、コンテナグループをフィールドとして追加することなくリーフデータフィールドを返す
Version 3.195.0
変更
- XFA データセットの互換性を改善:XFA フィールド値 API が、データセットパケットが接頭辞のない
data要素を使用している完全な XDP パケットを読み取りおよび更新するようになる
Version 3.194.0
修正
- XFA テンプレートフィールド更新を改善:XFA テンプレートフィールド API が
$templateやxfa.templateなどの標準テンプレート SOM ルートを受け入れるようになり、完全な XDP ストリーム内のテンプレートのみの変更が正しく保存される
Version 3.193.0
変更
- XFA フィールドアドレス指定を改善:XFA フィールド値 API が相対フィールドパスに加えて、
$dataやxfa.datasets.dataなどの標準データ SOM ルートを受け入れるようになる
Version 3.192.0
変更
- XFA の XML パケット処理を改善:UTF-16 バイトオーダーマークまたは UTF-16 XML バイトパターンを持つ XFA ストリームが XML 解析前にデコードされるようになり、UTF-16 エンコードされたフォーム値が XFA フィールド読み取り/書き込み API を介して引き続き利用可能になる
Version 3.191.0
変更
- XFA パケットオーサリングを改善:ドキュメントにフォームデータがまだ存在しない場合に
SetXFAFromStringが必要なAcroFormコンテナを作成し、完全な XFA パケットが保存されたときに古い解析済み XFA 状態を置き換え、保存されたパケットを XFA フィールド読み取り/書き込み API を介して利用可能に保つ
Version 3.190.0
変更
- XFDF 注釈交換を改善:注釈エクスポート時に PDF の
/CRGB 配列から共通のcolor属性を書き込むようになり、注釈インポート時に挿入された注釈のカラー配列にcolor="#RRGGBB"値を復元する
Version 3.189.0
追加
- XFDF注釈インポート/エクスポートAPIを追加:
ExportAnnotationsToXFDF、ExportAnnotationsToXFDFString、ImportAnnotationsFromXFDFおよびImportAnnotationsFromXFDFStringが、テキストスタイルの注釈コメント用として、ページ、矩形、タイトル、件名、およびプレーンテキストコンテンツデータを含むISO 19444<annots>データを読み書き可能に
Version 3.188.0
変更
- XFDFリッチテキストフィールドのインポートを改善:
<value-richtext>を持つフィールドが、フィールドのRV値にリッチテキストXMLを保持しつつ、存在する場合はプレーンな<value>フォールバックを適用するように
Version 3.187.0
変更
- 複数選択の選択肢フィールドにおけるXFDFフォームデータ交換を改善:繰り返される
<value>要素が選択値配列にインポートされるようになり、複数選択 of 選択肢フィールドのエクスポート時に、選択されたアイテムごとに1つの<value>要素が書き出されるように(単一のエスケープされたテキストノードにフラット化されなくなりました)
Version 3.186.0
変更
- リッチテキストフィールドのXFDFフォームデータエクスポートを改善:
RVリッチテキスト値を持つフィールドが、プレーンな<value>フォールバックを保持しつつ、<value-richtext>要素を含むように
Version 3.185.0
変更
- リッチテキストフィールド of XFDFフォームデータインポートを改善:フィールドがプレーンな
<value>なしで<value-richtext>を提供する場合、インポーターがフィールドをスキップする代わりにXHTMLテキストコンテンツを抽出して、対応するAcroFormフィールドに適用するように
Version 3.184.0
変更
- XFDFフォームデータ交換を改善:エクスポート時に
xml:space="preserve"を含む標準XFDF名前空間を使用し、階層的なAcroForm名に対してネストされた<field>要素を出力し、非末端の親フィールド値をスキップし、ファイルエクスポートをUTF-8として書き込み、ネストされたフィールド、単一引用符属性、CDATA、XMLエンティティ、および数値文字参照を持つ空白に柔軟なXFDFをインポートするように
Version 3.183.0
追加
- 機密コンテンツを1回の呼び出しで消去する
SanitizeDocument(Flags)を追加:すべてのグローバルJavaScriptの削除、カタログのOpenActionの削除、すべての注釈からの/Aアクションの削除、Author/Subject/Keywords/Creator/Producerメタデータ(/InfoとXMPの両方)の消去、およびオプションですべての注釈の削除を行います。フラグビットのSANITIZE_JAVASCRIPT/SANITIZE_ACTIONS/SANITIZE_METADATA/SANITIZE_ANNOTATIONS/SANITIZE_OPEN_ACTIONを組み合わせることができ、SANITIZE_ALLですべての消去を適用します(黒塗りで可視コンテンツは削除されるもののメタデータや隠しスクリプトが逆戻り可能な状態のままになるという、古典的なデータ漏洩の脆弱性を解決します) - 個別の注釈から/Aアクション辞書を削除する
TPDFAnnots.RemoveAnnotAction(Index)を追加(SanitizeDocumentで使用されるほか、単体でも有用)
Version 3.182.0
追加
EnumPageElementsによって返される画像要素が、ゼロではなく実際の配置矩形(Left/Top/Right/Bottom)を持つように改善:コンテンツストリームを走査してCTM(cm/q/Q)を追跡し、各Doオペレーターの1x1単位正方形をページ座標にマッピングする新しいTPDFContentProgram.EnumImagePlacementsメソッドをサポート- 4つのデモを追加:DocumentProperties(DocInfo/ページボックス/回転/トランジション/ビューア設定/XMPラウンドトリップ)、FormProperties(フィールドごとのプロパティグリッド:型/値/読み取り専用/MaxLength/MultiLine/説明)、SignatureValidator(署名フィールドの列挙 + 検証 + 署名者証明書)、Reader(開く/ナビゲート/ズーム/テキストコピー機能を備えたVCL TPDFlibViewer)
Version 3.181.0
追加
- スキーマ対応の既存のXMPエンジン(PDFlibXMP)をパブリックファサード経由で公開する
SetXMPPropertyを追加:RDF XMLを手書きすることなく、名前空間 + キーでDublin Core(dc:)、XMP Basic(xmp:)、Adobe PDF(pdf:)、PDF/A ID(pdfaid:)、PDF/UA ID(pdfuaid:)、またはXMP Media Management(xmpMM:)の任意のプロパティを設定可能に - FDFの/Fields配列(各
<< /T (name) /V (value) >>)を解析し、EscapePDFTextの8進数/括弧エスケープを反転させて、各値をタイトルで対応するAcroFormフィールドに適用するImportFormDataFromFDF/ImportFormDataFromFDFStringを追加(非対称なエクスポート専用のギャップを解消します) - XFDF(XML Forms Data Format、FDFのモダンなXML版)の双方向データ交換用APIの
ExportFormDataToXFDF/ExportFormDataToXFDFString/ImportFormDataFromXFDF/ImportFormDataFromXFDFStringを追加 - 6つの名前空間スコープ付きXMPセッター(
SetDublinCore、SetXMPBasic、SetAdobePDF、SetPDFA、SetPDFUA、SetXMPMM)をTPDFlibXMP上で公開し、高度な呼び出し元がエンジンを直接制御できるように改善
Version 3.180.0
追加
- コンテンツストリームの真のテキスト置換(
TPDFContentProgram.ReplaceTextRunを介してTj/TJ/'/"テキスト表示オペレーターをインプレースで書き換える)を実行するSearchAndReplaceTextInContentを追加(元のグリフの上に矩形をオーバーレイするだけの既存のマスクベースのSearchAndReplaceTextとは異なり、元のテキストはストリームから消去され復元できません。SearchTextを介して一致箇所を特定し、FindInstructionsInRectを介して各一致矩形を対応する命令にマッピングし、書き換えてレイヤーを書き戻します)
Version 3.179.0
追加
- 新しい
Lib/PDFlibLogger.pasユニットに、4つのレベル(Debug/Info/Warn/Error)、ホストコールバック(OnLog)、オプションのスレッドセーフなファイルシンク、および既存の数値コード(1xx/3xx/4xx/5xx)に人間が読めるテキストを割り当てるエラーコード・メッセージマップ(PDFlibErrorMessage)を備えた構造化された内部ロガー(TPDFlibLogger)を追加(TPDFlibのLoggerプロパティからアクセス可能) TTaskプールを使用し、ワーカーごとに1つのTPDFlibインスタンス(TPDFlibはスレッドセーフではありません)とスレッドごとのCoInitialize(GDI+アパートメントの安全性確保用)を使用して、指定されたページ範囲を1ページにつき1つのファイルにレンダリングするRenderPagesToFilesParallelを追加(CPUバウンドのラスタ出力において、CPUコア数に対してほぼ線形にスケールします)
Version 3.178.0
追加
- Windowsシステムストア("MY"、"Root"など)内のすべての証明書を列挙し、サブジェクト、発行者、シリアル番号、有効期間、HasPrivateKey、およびQualified(eIDAS QCStatements拡張、OID 0.4.0.1862.1.7、PDFlibASN1に新規内蔵されたDERデコーダー経由で検出)を返す
EnumCertificatesを追加(従来のCN指定による単一証明書制限SetSignProcessCertFromStoreを置き換えます) - 列挙によって取得した生のPCCERT_CONTEXTハンドルで署名証明書を選択する
SetSignProcessCertFromStoreByHandleを追加し、呼び出し元がSubject CNだけでなく、任意の基準(適合性フィルター、有効性、フィンガープリント)で証明書を選択できるように改善 - 描画エリアが矩形と交差するテキスト、ベクターパス、および画像XObjectsを完全に削除する(コンテンツストリームを編集するため、単に覆い隠すだけの
MaskRectとは異なり、削除されたコンテンツは復元できません)RedactRegionを追加(オプションで黒塗りおよび/Redact注釈を付与可能。PDFlibContentModelのCTM追跡型コンテンツストリームアナライザーFindInstructionsInRectを使用) - CryptDecodeObjectExを使用せずにインプロセスで証明書の拡張情報を検査するため、最小限のDERデコーダー関数(
DERDecodeLength、DERFindExtensionByOID)をPDFlibASN1に追加
Version 3.177.0
追加
- ベクターForm XObjectキャプチャを介して既存のページを新しいレイアウトに構成するページステッチAPIを追加(コンテンツストリームの単純連結とは異なり、完全なベクター再現性を保持します):
StitchPageOverlayは指定位置およびオプションの不透明度で一方のページをもう一方のページにオーバーレイし、StitchPagesSideBySideは新しい幅広のページに2つのページを左右に配置し、StitchPagesVerticallyはページ範囲を新しい縦長のポスタースタイルのページにスタック - 新しい
Lib/PDFlibWatermark.pasユニットに、組み合わせ可能なウォーターマークテンプレートレイヤーを追加:9点配置(wpTopLeft〜wpBottomRightおよびwpCustom)を備えたTPDFlibWatermarkBase、TPDFlibTextWatermark、TPDFlibImageWatermark、および共有ページ範囲全体にサブウォーターマークのリストを再帰的に適用するTPDFlibCompositeWatermarkを実装 - ウォーターマークテンプレート自身のページ範囲と設定に処理を委譲する、便利なエントリーポイントとして
TPDFlib.ApplyWatermarkを追加
Version 3.176.0
追加
RenderPageToFile、RenderPageToStream、RenderPagesToFiles、およびRenderDocumentToFileで受け入れられる整数のOptions値に1対1でマッピングされる、名前付きレンダリング出力形式定数(PDF_RENDER_BMP、PDF_RENDER_EMF、PDF_RENDER_EMFPLUS、PDF_RENDER_EMF_DUALなど)を追加- 単なる整数の代わりに名前付きメタファイルバリアント(mfEMF、mfEMFPlus、mfEMFDual、mfWMF)を受け入れる、
TPDFlibMetafileFormat列挙型および便利なメソッドRenderPageToMetafileStreamandRenderPageToMetafileFileを追加 - 古いGDI専用コンシューマーとの互換性のために、同じメタファイルにGDIコマンドとGDI+コマンドの両方を記録するEMF+ Dual出力モード(Options値 11 / mfEMFDual)を追加
- レンダリングされたページを拡張メタファイル(CF_ENHMETAFILE)、DIBビットマップ(CF_DIB)、ページのUnicodeテキスト(CF_UNICODETEXT)、またはこれら3つすべてを同時にWindowsクリップボードに配置する、
TPDFlibClipboardFormat列挙型およびRenderPageToClipboardを追加 RenderPageToClipboardで使用される低レベルのWin32クリップボード配置ヘルパーを含む、新しいLib/PDFlibClipboard.pasユニットを追加TPDFlibViewerに完全なモニターごとのDPI認識(Per-Monitor DPI Awareness)を追加:新しい公開のScreenDPIプロパティ、GetDpiForWindow(GetDeviceCapsへのフォールバックあり)を介してホストモニターのDPIを自動検出するCreateWndオーバーライド、およびウィンドウがモニター間を移動したときにレイアウトを再構築しビットマップキャッシュをクリアするWM_DPICHANGEDハンドラーを実装- レンダラーレベルでEMF+ OnlyとEMF+ Dualの記録を選択するための
TPDFRenderer.SetEMFPlusMetafileTypeを追加
修正
RenderPageToFileのリファレンスページにおいて、Optionsの値リストがPageの行に誤って配置され、Optionsのセルが空になっていた不具合を修正
Version 3.175.3
追加
- 任意のTDataSet(FireDAC、ClientDataSet、クエリ結果)を、スタイリッシュなヘッダー、ゼブラストライプ、右寄せの数値列、および自動改ページを備えたページ分割されたPDFテーブルにレンダリングするLib/PDFlibTableExport.pasユニットを追加し、さらにFireDAC経由でRAD Studioのcustomer.FDSサンプルをロードしてエクスポートするDemo/Delphi/DataSetExportコンソールデモを追加
Version 3.175.2
追加
- FastReport、QuickReport、およびReportBuilderで最小限のレポートを構築し、対応するAddonsブリッジを介してPDFにエクスポートするエンドツーエンドのDemo/ReportBridgesプロジェクトを追加(エンジンのソースパスとゲートシンボルを提供する専用のbuild-ReportBridges.cmdが付属し、標準のデモビルドがプロジェクトをスタブとしてコンパイルし続けるように設計されています)
Version 3.175.1
追加
- CCITT G4およびFlateベースラインに対して、SymbolExtract、SkipBlackDots、BlackDotSize、およびLossyLevelの組み合わせをスイープするDelphiのJBIG2オプションマトリクスデモを追加(行ごとのPDF、CSV、および概要出力を提供)
- 軸方向および放射方向のRGBシェーダー、Coons-patchメッシュシェーダー、および塗りつぶし、境界線、テキスト色として適用されるカスタムタイルパターンをカバーするDelphiのパターンショーケースデモを追加
- Group 3 1-D、Group 3 2-D、およびGroup 4圧縮をBlackIs1およびInterpolateオプションビットと比較するDelphi의 CCITTファクスマトリクスデモを追加(各出力サイズと生成された/Filter名を報告)
- 作成済みのレポートを、それぞれエンジンのネイティブオブジェクト、メタファイル、およびDrawCommandサーフェスを介してPDF Library for DelphiのPDFにレンダリングする、Addons配下のFastReport、QuickReport、およびReportBuilderエクスポートブリッジを追加
Version 3.175.0
変更
- WorkflowGalleryデモを拡張し、テキストハイライト塗りつぶし、マークアップスタイル、ノートアイコン、フリーテキスト、キャレット、およびスタンプ注釈を付随するCSVおよびHTMLレポートに記録する注釈バリアントマトリクスを追加
Version 3.174.0
変更
- C++BuilderのAdvancedWorkflowMatrixデモを拡張し、アクションナビゲーション、PDF/AおよびAcroFormワークフロー、フォント診断、ストリーミング配信、および最新のスキャン圧縮ヘルパーを生成されたマトリクスレポートにマッピング
Version 3.173.0
追加
- 1つの生成されたPDFバイトバッファを使用した、ストリーミングWebおよびCGI PDF出力、ページサムネイル検証、およびウォーターマーク配信ワークフロー向けのDeliveryWorkflowMatrix Delphiデモを追加
Version 3.172.0
追加
- 順序指定された兄弟要素の挿入、子の作成、サブツリーの削除、および親、兄弟、レベル、移動先ページ、開状態、タイトルの詳細を含む先行順アウトライン列挙のための、アウトラインツリーの便利なAPIを追加
Version 3.171.0
追加
- CJKおよびUnicodeフォントパス、TrueTypeサブセット更新、インストール済みフォントの検出、ドキュメントフォントの列挙、およびフォント診断レポート向けのFontDiagnosticsMatrix Delphiコンソールデモを追加
Version 3.170.0
追加
- Canvas DCマイグレーション、生のコンテンツおよびパスのエントリーポイント、Delphiカラーヘルパー、パターン塗りつぶしテキスト、ウォーターマーキング、ページサムネイルワークフロー、およびレンダリングされた検証プレビュー向けのCanvasMigrationMatrix Delphiコンソールデモを追加
Version 3.169.0
追加
- オプショナルコンテンツの印刷/エクスポートポリシー、Pattern/Form XObject合成、透明マスク比較、PDF/A-1bの成功および失敗例、AcroFormアクションワークフロー、アピアランス再構築、および可視署名テンプレート向けの専用のLayerCompositionMatrix、TransparencyMaskMatrix、およびComplianceFormWorkflowMatrix Delphiコンソールデモを追加
Version 3.168.0
追加
- 画像圧縮戦略の選択、スキャン圧縮、JPEGレンダリング品質、および暗号化された権限プロファイル監査について、生成されたPDF、CSV、およびHTMLレポートを提供する専用のImageCompressionMatrixおよびSecurityPermissionMatrix Delphiコンソールデモを追加
Version 3.167.0
追加
- 呼び出し元が手動で整数のビットマスクを構成する代わりに、明示的なオプションスイッチを使用できるように、JBIG2ビットマップエンコーディング、EMFインポートオプション、AcroFormイベントアクション、およびチェーンアクション用の名前付きヘルパーAPIを追加
Version 3.166.0
追加
- 高度なキャンバスマイグレーション、EMFインポート、画像圧縮、AcroForm、署名、セキュリティ、PDF/A、オプショナルコンテンツ、パターン、およびForm XObjectのワークフローをC++Builderプロジェクトのエントリーポイントにマッピングする、PDF、CSV、およびHTML出力を備えた実行可能なC++Builder AdvancedWorkflowMatrixコンソールデモを追加
Version 3.165.0
追加
- ドキュメントを開く際のアクション、ドキュメントレベルのJavaScript、埋め込みファイルリンク、リモートGoToリンク、AcroFormイベントアクション、Submit/Reset/Hideリンクヘルパー、およびチェーンNextアクションを実証し、PDF、CSV、およびHTML出力を提供するDelphiのアクションナビゲーションマトリクスデモを追加
修正
- AddLinkToFile、AddLinkToFileEx、AddLinkToFileDest、およびローカルファイル起動リンクが無限ループすることなく、1つの注釈を作成して戻るようにリモートファイルリンクヘルパーを修正
Version 3.164.0
追加
- Delphi の PDF/A ガードマトリクスデモを追加し、PDF/A モード設定、透過、ブレンドモード、暗号化、JavaScript、マルチメディア、埋め込みファイル、および PDF/A-3 の関連ファイルワークフローについて、早期拒否または許可パスの判定をチェックし、PDF、CSV、HTML のレポートを生成
Version 3.163.0
追加
- FastReport、QuickReport、ReportBuilder、DBGrid、およびカスタムキャンバスの書き出し経路向けに、明示的な ReportAdapter ブリッジマトリクスを追加し、生成された CSV と HTML のマッピング出力に加えて、再利用可能なアダプタ戦略を示す PDF ページも含めた
Version 3.162.0
追加
- キャンバス移行、EMF インポート オプション、画像圧縮比較、AcroForm のアクションワークフロー、空の可視署名、セキュリティ権限、PDF/A-1b チェック、オプションコンテンツ、タイリングパターン、Form XObject、DBGrid 風テーブル出力、大容量ファイルのピークメモリ報告向けの具体的な出力を生成する高度なワークフローデモマトリクスを追加
Version 3.161.0
追加
- コンパクトな open-document action 構築、フォームフィールド可視性イベントアクション、TColor とグレーの色設定、direct raw content、path、text、matrix の content stream 挿入のための Delphi ヘルパーを追加
Version 3.160.0
追加
- ビットマップから JBIG2 へのスキャン画像圧縮、1 回で行う画像マスクと color-key 透過設定、GoTo アクションの連鎖、JavaScript または既存アクション割り当て用の読みやすい AcroForm イベント名のための Delphi ヘルパーを追加し、さらに ImportEMFFromFileEx と ImportEMFFromStreamEx の Options フラグでビットマップ読み込みの強制、EMF カラー画像の JPEG 再圧縮、有効化、GDI+ 処理制御の要求を可能に拡張
ImportEMFFromFileExとImportEMFFromStreamExを拡張し、Optionsフラグでビットマップ読み込みの強制、EMF カラー画像の JPEG 再圧縮の有効化、GDI+ 処理制御の要求を可能にした
Version 3.159.1
変更
SaveToStreamと bound output stream 保存を改善し、大きな PDF stream object を各 stream object ごとに 1 つの中間出力文字列へコピーする代わりに、制限付きチャンクで書き出すようにした
Version 3.159.0
追加
- 指定した画像を描画またはフィットして直後にハンドルを解放する image placement ヘルパーを追加し、1 回限りの画像生成ワークフローでピークメモリを抑える Delphi、DLL、ActiveX エントリポイントを用意した
- しきい値変換と isolated black-pixel cleanup を行ってからスキャン画像圧縮ワークフローへ進める 1-bit BMP レンダリング用に
RenderPageToMonochromeFileExを追加した
Version 3.158.1
追加
- 再利用可能な report-style export、RichEdit-to-EMF の rich text import、page-thumbnail、annotation、form XObject、table、compression、JavaScript、bound-stream 出力シナリオをまとめた Delphi ワークフローデモを追加した
Version 3.158.0
追加
- Delphi、DLL、ActiveX のエントリポイントを持つ metadata encryption control APIs を追加し、SetEncryptMetadata で unencrypted XMP metadata streams を持つ Standard-security PDF を書き込み、GetEncryptMetadata で保留中または読み込まれた /EncryptMetadata 状態を報告できるようにした
Version 3.151.0
追加
DrawPie、DrawChord、DrawEllipticPie、DrawEllipticChordを追加し、明示的な closed circular / elliptic arc drawing を outline、fill、または fill-and-outline モードで行えるようにした
Version 3.150.0
追加
NewGraphicsStateとSetGraphicsStateを追加し、fill transparency、stroke transparency、line width、line cap、line join、miter-limit 設定をまとめた再利用可能な ExtGState resource を作成できるようにした
Version 3.149.1
修正
- Form XObject と miter-limit メソッドの重複した ActiveX dispatch ID を修正し、late-bound COM 呼び出し側が各メソッドを曖昧さなく解決できるようにした
Version 3.149.0
追加
SetMiterLimitを追加し、miter join を使う path の stroke miter-limit ratio を制御できるようにした- DLL API と ActiveX API を通じて
BeginFormXObject、EndFormXObject、CancelFormXObjectを公開しました
Version 3.148.0
追加
- 再利用可能な Form XObject builder APIs を追加し、
BeginFormXObject、EndFormXObject、CancelFormXObjectで通常の page drawing calls を使って再利用可能な template を描画し、captured-page drawing APIs で繰り返し配置できるようにした
Version 3.147.0
追加
SetTextTilingPatternとSetLineTilingPatternを追加し、captured-page の tiling patterns を text、underline、stroked graphics に対して描画命令を重複させず再利用できるようにした
修正
- ストローク用 shader と tiling-pattern の色は、非ストローク色状態を更新する代わりに、ストロークパターン色オペレーターを書き込むようになりました
Version 3.146.0
追加
BeginOptionalContentとEndOptionalContentを追加し、既存の content stream を書き換えずに、以降の描画命令だけを optional content group でマークできるようにした
修正
- optional content、tagged PDF、artifact スコープが content stream の末尾で閉じられたとき、scope-closing marked-content operators が直ちに flush されるようにした
Version 3.145.0
追加
SetTransparencyExを追加し、既存の PDF 1.4 auto-upgrade 動作を維持したまま、その後に描画する text と graphics に対して fill と stroke の透明度を個別に設定できるようにした
Version 3.144.0
追加
AddLinkToNamedDestinationを追加し、リンク作成時に target page を解決せずに、ページの hotspot から同一文書内の named destination へ移動できるようにした
修正
- 注釈のないページでは annotation action readers が空の annotation cache を参照せず、action なしを返すようにした
Version 3.143.0
追加
- フォームフィールド action management APIs を追加し、既存 action を field trigger に関連付けたり、型付き trigger action を確認したり、primary または additional field actions を削除したりできるようにした
修正
FormFieldJavaScriptActionは PDF/A 文書と無効な trigger 名を拒否し、非準拠の field action dictionaries を書き込まないようにした
Version 3.142.0
追加
- action chaining APIs を追加し、呼び出し側が URI、named、JavaScript の next-actions を既存の annotation、outline、form-field action に追加し、
GetActionNextCountとGetActionNextInfoで連鎖した action を確認できるようにした
Version 3.141.0
追加
- ページ上のホットスポットから JavaScript を使用せずに標準の PDF アクションを介して AcroForm フィールドの送信またはリセットを実行できるよう、
AddLinkToSubmitFormとAddLinkToResetFormを追加しました
Version 3.140.0
追加
- インクリメンタルアップデートのワークフローにおいて、更新内容を最初に
AnsiStringとして実体化するのではなく、呼び出し元が指定したストリームへ直接書き込めるようAppendToStreamを追加しました
変更
SaveToStreamが対象のストリームへ直接シリアライズするようになり、AppendToString(1)が元のソースバイトを一時バッファにコピーすることなく、インクリメンタルアップデートのセクションのみを返すようになりました
Version 3.139.0
追加
- 汎用的な注釈プロパティタグの代わりに名前付きの読み取りアクセサーを通じてスレッド化された注釈の返信を検査できるよう、
GetAnnotReplyToとGetAnnotReplyTypeを追加しました
Version 3.138.0
追加
- フォント診断、画像サンプリング、色空間の検出、読み込み時間、および JSON、CSV、HTML のレポートを組み合わせて PDF を一括検査するための、Delphi 向け
DocumentInspectionWorkbenchサンプルを追加しました
Version 3.137.0
追加
- ページの画像検出、デコードされた画像のバイト数、およびページの色空間の検出を CSV および HTML のタイミングレポートとともに測定するための、Delphi 向け
ImageDecodeBenchmarkサンプルを追加しました
Version 3.136.0
追加
- ドキュメントのフォント埋め込み、サブセット化、Standard 14、CID、Type3、および不明なフォントの数を1回の呼び出しで要約するための
GetDocumentFontDiagnosticsとTPDFlibFontDiagnosticsを追加しました
Version 3.135.0
追加
TPDFlibSignatureVerifier.VerifySignerCertificateChainは、Windows CryptoAPI を使用して埋め込まれた署名者証明書チェーンを構築するようになり、チェーンが Windows の基本信頼ポリシーを満たす場合にのみvsValidを返します。一方、自己署名証明書やその他の信頼できない署名者証明書の場合は、VerifySignatureのコンテンツの整合性の結果を変更せずにvsInvalidを返します
Version 3.134.0
修正
TPDFlibSignatureVerifier.VerifySignatureは、レガシーのadbe.pkcs7.sha1署名を検証するようになり、署名されたダイジェストが対象の/ByteRangeのバイトと一致する場合はvsValidを返し、対象のコンテンツが変更された場合はvsInvalidを返します
Version 3.133.0
追加
- 選択されたページ間でレンダラーの設定を再利用しながら、任意のページ範囲を番号付きの出力ファイルにレンダリングするための
RenderPagesToFilesおよびDARenderPagesToFilesを追加しました
Version 3.132.0
追加
- 指定された範囲のすべてのページで、上部または下部の固定マージンにテキストを配置する便利なスタンパーである
AddPageHeaderおよびAddPageFooterを追加しました。左/中央/右揃えと、トークンの展開(&P現在のページ、&N総ページ数、&D日付、&Tドキュメントのタイトル、&&リテラルのアンパサンド)をサポートします StampTextおよびStampImageでsoUnderlayを指定した場合、新しいコンテンツレイヤーを先頭に追加することで、既存のページコンテンツの下にコンテンツを真に配置するようになりました(以前はsoOverlayのように上に描画されていました)。これは新しいPrependContentLayerページツリーメソッドによってサポートされています
Version 3.131.0
追加
- 選択されたページのコンテンツを拡大縮小する
ScalePage(ScaleX, ScaleY, Anchor)を追加しました。すべてのコンテンツレイヤーをq sx 0 0 sy tx ty cm ... Qグラフィックス状態ブロックでラップし、MediaBox と CropBox のサイズを変更します。アンカーには、左下を原点に維持(0)、コンテンツを中央に配置(1)、または左上を維持(2)を指定できます - 新しい
ekPath要素タイプでEnumPageElementsを拡張しました: 構造化コンテンツモデルを介してコンテンツストリームから抽出されたベクトルパス(バウンディングボックス、ポイント数、クロージャフラグ、ペイントオペレーター)も各ページで報告されるようになりました
Version 3.130.0
追加
- 再保存時に読み込まれたドキュメントを縮小する 3 つのファイルサイズ最適化 API を追加しました:
SubsetEmbeddedFontsは、FontSub.dll のCreateFontPackageサービスを通じて、埋め込まれたすべての TrueType フォントプログラム(FontFile2)を、ドキュメントが実際にレンダリングする Unicode 文字にまで削減します。DownsampleImages(MaxDPI, Quality, Filter)は、ターゲット DPI を超える各画像の XObject をデコードし、リサンプリング(ボックスまたはバイリニア)して、JPEG または PNG として再エンコードします。NormalizeLZWStreamsは、Predictor パラメータを保持したまま、LZWDecode でまだフィルタリングされているすべてのストリームを、既存の LZW デコーダーと Flate エンコーダーを通じて FlateDecode に書き換えます
Version 3.129.0
追加
- 以前は読み取りと解析のみをサポートしていた 4 つのシェーディングタイプに対するメッシュシェーディング作成 API を追加しました:
NewRGBFreeFormTriangleMesh(ShadingType 4、フリーフォームグーロートライアングル)、NewRGBLatticeTriangleMesh(ShadingType 5、ラティスフォームグーロー)、NewRGBCoonsPatchMesh(ShadingType 6、クーンズパッチメッシュ)、およびNewRGBTensorPatchMesh(ShadingType 7、テンソル積パッチメッシュ)。それぞれ、選択可能な座標/カラーのビット深度とバウンディングボックスを備えたフラットな頂点またはパッチリストから、名前付きメッシュシェーディングパターンを構築します。これは、既存の線形および放射状のシェーダーと同様に、SetFillShader/SetLineShader/SetTextShaderで選択可能です
Version 3.128.0
追加
- ビューア用のサムネイルストリップを追加しました:
TPDFlibThumbnailBarは各ページのサムネイルを表示します。これは行がスクロールして表示されるときに遅延レンダリングされ、下にページ番号が表示されます。サムネイルをクリックすると、アタッチされたビューアがそのページにジャンプします。これにより、ビューアコントロールファミリ (ビューア、ブックマークパネル、検索パネル、サムネイル) が完成します。
Version 3.127.0
追加
- ビューア用の検索パネルを追加しました:
TPDFlibSearchPanel.RunSearchは、アタッチされたドキュメント全体を検索し、ヒットごとにページ番号と一致するテキストを1行でリスト表示します。ヒットをクリックすると、ビューアがそのページにジャンプします。
Version 3.126.0
追加
- ビューア用のブックマークパネルを追加しました:
TPDFlibOutlineViewerはドキュメントのアウトラインツリーをインデント付きでリスト表示し、クリックするとアタッチされたビューア (AttachViewer経由) をブックマークの移動先ページにジャンプさせます。これは、後のサイドパネルで共有される再利用可能なパネルベースクラスの上に構築されています。
Version 3.125.0
追加
- ビューアコントロールにテキスト選択機能を追加しました: マウスの左ボタンでドラッグして選択し、Ctrl+C を押すか
CopySelectedTextを呼び出して選択範囲をクリップボードにコピーします。キャプチャされたテキストはSelectedTextプロパティから利用でき、上から順に並べられ、バンド間には改行が含まれます。 - 四角形のページ領域のテキストを直接返す
GetTextInRegionを追加しました。これはマウス選択で使用されるのと同じブロックベースのルックアップであり、カスタム選択インターフェースで利用できます。
Version 3.124.0
追加
- ビューアコントロールがバックグラウンドスレッドで隣接するページを事前レンダリングするようになったため、前後にページ送りすると次のページが瞬時に表示されます。ワーカーは独自のドキュメントインスタンスを使用し、UIをブロックすることなく、完了したレンダリングをキャッシュに渡します。
- ビューアにリンクの対話性を追加しました: リンク注釈をクリックすると、ページ番号と
GetAnnotActionInfoが生成するのと同じ型指定されたアクションの概要 (Webアドレス、ドキュメントの移動先、名前付きアクションなど) を伴ってOnLinkClickが発生します。LinkActionAtPagePointは、カスタム処理用に基になるヒットテストを公開します。
Version 3.123.0
追加
- ビューアコントロールに連続スクロール機能が追加されました:
SetDisplayModeはTPDFlibViewerを単一ページ表示とドキュメント全体の連続的な垂直スクロールの間で切り替えます。ビューポートに表示されているページのみがレンダリングされ、現在のページはスクロール位置を追跡します (ページが表示されるときにOnPageChangeが発生します)。 - レンダリングされたページは LRU (Least Recently Used) ビットマップキャッシュに保持されるようになったため、前後にスクロールしても再レンダリングされません。メモリ予算のデフォルトは 128 MB で、
SetCacheLimitを使用して調整できます。予算が縮小または上限に達した場合は、最も古いページがキャッシュから破棄されます。 - ビューアにマウスホイールのスクロールとキーボードナビゲーションを追加しました: PageUp / PageDown (単一ページモードではページ単位、連続モードではビューポート単位)、矢印キー、Home および End がサポートされます。
Version 3.122.0
追加
- インタラクティブな PDF ビューアコントロールを追加しました:
TPDFlibViewerは VCL スクロールコントロールであり、ファイルからドキュメントを開くか既存のTPDFlibインスタンスにアタッチし、選択されたレンダリングエンジン (GDI+、Cairo、または PDFium) を介してページを表示します。また、ページナビゲーション (OnPageChangeイベントを伴うGoToPage/NextPage/PrevPage) とズームコントロール (固定パーセンテージ、幅に合わせる、またはページに合わせる。コントロールのサイズ変更時に自動的に再計算されます) を提供します。ビューポートより広いページはスクロールし、狭いページは中央に配置されます。 - IDEでドラッグアンドドロップで使用できるように、losLab PDF パレットページにコントロールを登録するデザインタイムパッケージ (
Package\PDFlibViewerPkg.dpk) を追加しました。
Version 3.121.0
追加
DrawTextにおける複雑なスクリプトの自動シェーピング機能: アラビア語、ヘブライ語、インド系、またはその他の複雑なスクリプト文字を含むテキストが自動的に検出およびシェーピングされるようになりました。コードを変更しなくても、文脈に依存する文字形式、必須の合字、右から左への順序が正しく出力されます。標準の14フォント名は、メトリック互換のインストール済みフォント (Helvetica は Arial に、Times は Times New Roman に、Courier は Courier New に) にマッピングされ、GetTextWidthは同じシェーピングパスを通じて測定されるため、配置の一貫性が保たれます。ラテン語、キリル文字、ギリシャ文字、および CJK テキストは、既存の描画パスをバイト単位でそのまま維持します。- 自動ルーティングを切り替えるための
SetTextShapingを追加しました (デフォルトで有効。シェーピング前の完全な動作を復元するには 0 を渡します)。
Version 3.120.0
変更
- シェーピングされたテキストのコンパニオンフォントは、保存時にドキュメントに表示されるグリフのみにサブセット化されるようになったため、出力ファイルが劇的に縮小されます (1メガバイトを超える完全なフォントプログラムが、使用されるグリフのみに縮小されます)。サブセット化されたフォントは、そのグリフ番号付けを維持し、サブセットタグが付けられた
BaseFont名とグリフごとの実際の/W幅を持ち、シェーピングされた各グリフを元のソース文字に逆変換する ToUnicode マップを取得します。これにより、DrawShapedTextの出力をコピーまたは抽出すると、lam-alef 合字の背後にある両方の文字を含む、元の文字列が返されます。
Version 3.119.0
追加
- 複雑なスクリプトのテキスト描画を追加しました:
DrawShapedTextは、アラビア語、ヘブライ語、およびその他の複雑なスクリプト文字列を描画する前にシェーピングします。文脈に依存する文字形式、lam-alef などの必須の合字、右から左への順序がすべて正しく出力されます。また、フォントプログラム全体を埋め込むコンパニオンの Type0 (Identity-H) フォントを介してシェーピングされたグリフを書き込むため、独自の文字コードを持たない形式でも正確にレンダリングされます。コンパニオンフォントはフォントフェイスごとに1つ作成され、呼び出し間で再利用されます。 GetShapedTextWidthを追加しました。これは、同じシェーピングパスを通じてテキストを測定するため、合字テキストはその実際の描画幅で測定されます。これをシェーピングされた段落の右揃えや中央揃えに使用します。
Version 3.118.0
追加
- 追加 the foundation for complex-script text shaping: a new Uniscribe (usp10.dll) binding turns Arabic, Hebrew and other complex-script strings into correctly ordered and shaped glyph runs — contextual Arabic forms, mandatory ligatures such as lam-alef, and right-to-left ordering — reporting each glyph's font glyph index, advance and source-character cluster; this is the shaping engine that later versions build the drawing path on, and it is loaded lazily so platforms without Uniscribe simply keep the existing per-character path
Version 3.117.0
追加
- 追加 ICC profile introspection:
GetOutputIntentICCInfoparses the ICC profile attached to the document's OutputIntent and reports its version, device class, data colour space, profile connection space, rendering intent and component count — useful for inspecting the print condition of PDF/A and PDF/X files; the renderer's ICCBased colour-space handling now also derives the component count from the profile header itself when a shading's colour space carries neither/Alternatenor/N
Version 3.116.0
追加
- 追加 a table-aware text extraction mode:
GetPageTextoption 10 clusters the left edges of the page's text blocks into global column positions and emits tab-separated rows, so tabular layouts extract as ready-to-import TSV with vertically aligned cells staying aligned across rows
Version 3.115.0
追加
- 追加 page imposition:
ImposePagesNUplays every page of the document out on new sheets in an n-up grid (2-up, 4-up, 9-up or any Columns x Rows arrangement) with each page aspect-fit and centred in its cell as live vector content, or — with the booklet option — produces saddle-stitch sheets whose page pairing folds into a booklet when printed duplex and stacked
Version 3.114.0
追加
- 型付きアクションリーダー
GetAnnotActionInfoおよびGetOutlineActionInfoを 4 つの追加のアクションタイプ (Hide (隠しターゲットの数と hide/show フラグ)、SubmitForm (送信 URL とフィールド数)、ResetForm (フィールド数)、および ImportData (ソースファイル)) に拡張し、名前付きアクション (NextPageなど) の名前のペイロードを公開するようにしました。両方のリーダーが 1 つのパーサーを共有するようになったため、注釈リンクとブックマークは同じ情報を報告します
Version 3.113.0
追加
- 追加 form-field formatting helpers:
SetFormFieldNumberFormat(decimal places, separator style, negative style and currency placement),SetFormFieldPercentFormatandSetFormFieldDateFormat(Acrobat date picture strings such asmm/dd/yyyy) each write the standard Acrobat formatting JavaScript pair onto the field's additional actions — a keystroke filter plus a display formatter — so conforming viewers validate input and render formatted values without hand-written JavaScript
Version 3.112.0
追加
- 追加 Sound annotation creation:
AddSoundAnnotationFromFilereads an uncompressed PCM WAV file (8 or 16 bit, mono or stereo) and embeds its samples behind a speaker-icon annotation as a/Soundstream in the signed encoding the PDF sound machinery expects, completing the round trip with the existingGetAnnotSoundToFile/GetAnnotSoundToStringreaders
Version 3.111.0
追加
- 追加 threaded annotation replies (ISO 32000-1 §12.5.6.3):
AddAnnotationReplyappends a reply to any existing annotation as a hidden Text annotation whose/IRTreferences the target with the/RTreply relationship, so Acrobat and other viewers show it threaded under the target in the comment panel; combine withAddAnnotationStateand the FDF comment interchange for complete collaborative-review round trips
Version 3.110.0
追加
- 追加 mesh and function-based shading rendering, completing coverage of all seven PDF shading types: free-form Gouraud triangle meshes (type 4), lattice-form Gouraud meshes (type 5), Coons patch meshes (type 6) and tensor-product patch meshes (type 7) are decoded from their bit-packed data streams — including shared-edge patch flags,
/Decodevalue mapping and optional colour/Functionramps — and painted through the Cairo engine's native mesh gradients; function-based shadings (type 1) are approximated by sampling the shading function over its domain into a fine patch grid; supported colour spaces cover DeviceRGB, DeviceGray, DeviceCMYK and ICCBased alternates (the GDI+ engine has no mesh gradient primitive and leaves mesh-shaded areas unpainted)
Version 3.109.0
追加
- コンテンツ編集フレームワーク (フェーズ 4) にテキストレベルの編集を完了して追加しました:
TPDFContentProgram.GetTextRunsは、ページのテキスト表示命令を、それぞれでアクティブなフォントリソースとサイズとともに列挙し (save/restore のネストを通じてフォントの状態を追跡します)、ReplaceTextRunは表示されたテキストをインプレースで置き換えます。これは、古いテキストをマスクしてその上に再描画するオーバーレイベースのアプローチとは異なり、元の位置、フォント、および色を維持する真のコンテンツストリームの置換です
Version 3.108.0
追加
- 追加 an object model for page geometry to the content editing framework (phase 3):
TPDFContentProgram.LiftPathraises a path object (move/line/curve/rectangle construction operators plus the clipping and painting operators that end it) into an editableTPDFPathof subpaths and segments;TPDFPath.Transformapplies an affine matrix to every point (move, scale, rotate or skew existing artwork);LowerPathwrites the modified geometry back over the original instructions, ready forWritePageContentLayer
Version 3.107.0
追加
- コンテンツ編集フレームワーク (フェーズ 2) を拡張し、
TPDFContentProgramの命令レベルの利便性を追加しました:InsertFromSourceはコンテンツのスニペットを解析し、その命令を任意の位置にスプライスします。SetOperandはソース構文から単一のオペランドを書き換えます (座標の番号の付け替え、塗りつぶしの色の変更)。OperandTextはオペランドを読み戻します。InstructionGroup、FindNextOp、およびFindNextGroupは、オペレーターまたは ISO 32000-1 オペレーターカテゴリごとに命令リストをナビゲートします
Version 3.106.0
追加
- 追加 the first phase of the structured content editing framework:
ParsePageContentLayerdecodes a page content layer into an editableTPDFContentProgram— a list of instructions, each one PDF content operator (all 73 operators of ISO 32000-1 Table 51) with its decoded operand objects — andWritePageContentLayerserialises the program back into the page, so callers can parse, inspect, delete or reorder drawing instructions and rewrite the page;GetPageContentLayerCountreports the number of content layers, which are edited independently; the emitter is behaviour-preserving (an unmodified round trip renders pixel-identically), unknown operators survive unchanged and inline images are carried verbatim
Version 3.105.0
追加
- 追加 a reading-order text extraction mode:
GetPageTextoption 9 returns the page text in visual reading order using recursive whitespace analysis (XY-cut), so multi-column layouts come out column by column — a full-width heading first, then the whole left column, then the right column — instead of interleaving the columns line by line as the geometric top-then-left orderings do
Version 3.104.0
追加
- 追加 signer-certificate introspection to the signature verifier:
GetSignerCertificatedecodes the PKCS#7 payload of the first signature field and returns a typed summary of the embedded signer certificate — subject and issuer display names, the serial number in conventional hex form, the UTC validity window (NotBefore/NotAfter) and a convenience flag reporting whether the certificate is currently within that window; the signer is matched among the embedded certificates by issuer and serial number
Version 3.103.0
追加
- 追加
NewRGBRadialShader, the radial counterpart ofNewRGBAxialShader: registers a named two-circle radial gradient (ShadingType 3, ISO 32000-1 §8.7.4.5.3) blending between two RGB colours, with optional colour extension beyond the circles; select it with the existingSetFillShader,SetLineShaderorSetTextShaderto paint circular “glow” fills, strokes and text
Version 3.102.0
追加
- 追加 radial (ShadingType 3) gradient rendering (ISO 32000-1 §8.7.4.5.4): the page renderer now paints two-circle radial shadings used by
shoperators and shading-pattern fills, in addition to the previously supported axial (ShadingType 2) gradients; supported through both the GDI+ and Cairo raster engines with multi-stop colour functions, DeviceRGB/DeviceCMYK/DeviceN/Separation/ICCBased colour spaces and/Extendhandling
Version 3.101.0
追加
- 追加 cloudy border effects (ISO 32000-1 §12.5.4):
SetAnnotCloudyEffectturns the border of a Square, Circle, Polygon or FreeText annotation into a “revision cloud” of connected semicircles by writing the/BEborder effect dictionary, with intensity 1 or 2 matching Acrobat's Cloudy styles and 0 removing the effect again;GetAnnotCloudyEffectreads the setting back (0 = no cloud, else the 1..2 intensity)
Version 3.100.0
追加
- 追加 annotation review states (ISO 32000-1 §12.5.6.3):
AddAnnotationStaterecords a review status change for an existing annotation by appending a hidden Text annotation whose/IRTpoints at the target and whose/State+/StateModelcarry the status, supporting theReviewmodel (None/Accepted/Rejected/Cancelled/Completed) and theMarkedmodel (Unmarked/Marked) used by Acrobat's comment-review workflow;GetAnnotStateandGetAnnotStateModelread the recorded strings back from any annotation (empty when absent)
修正
- 修正 a load-time failure that prevented applications built with recent development versions from starting (a Windows certificate-name lookup was bound to a non-existent DLL entry point), and repaired compile regressions in the FDF comment import, page-range rotation and signature-flag paths
Version 3.99.0
追加
- ドキュメントのフィンガープリントとページ遷移の読み取り API を追加しました:
GetDocumentFileIDは、トレーラの/ID配列(16進エンコードされた最初の要素)から永続的なドキュメント識別子を返し、安定したキャッシュキーやドキュメントのフィンガープリントとして機能します;GetPageTransitionはSetPageTransitionの読み取り側の対応機能であり、保存されている/Transの/S、/Dm、および/Mエントリを逆マッピングすることで、トランジションスタイルを型指定されたTPDFlibPageTransition値として返し、さらに表示時間とトランジション時間を返します
Version 3.98.0
追加
- ページ範囲の回転とサムネイルのイントロスペクションを追加しました:
RotatePageRangeは、指定された範囲の各ページに 0/90/180/270 度の回転を適用します(既存の単一ページ用のRotatePageをラップしているため、呼び出し元でページごとのループが不要になります);HasPageThumbnailは、ページが/Thumbエントリを保持しているかどうかを報告します;GetPageThumbnailInfoは、サムネイル画像の XObject の幅、高さ、およびコンポーネントごとのビット数(bits-per-component)を読み取ります
Version 3.97.0
追加
- 拡張注釈プロパティの読み取り機能を追加しました:
GetAnnotColorは/Cカラー配列(0..1 RGB、「明示的な色なし」と「明示的な黒」を区別する HasColor フラグ付き)を読み取ります;GetAnnotBorderWidthは/BS /Wを読み取り、フォールバックとして従来の/Border配列を使用します;GetAnnotOpacityは/CAストロークのアルファ値(デフォルト 1.0)を読み取ります;GetAnnotCreationDateは/CreationDateタイムスタンプを読み取ります;GetAnnotFlagsは/Fの可視性/印刷フラグのバイトを読み取ります
Version 3.96.0
追加
- 読み取り側のセキュリティイントロスペクション API を追加しました:
IsEncryptedは、ロードされたドキュメントが/Encrypt辞書を保持しているかどうかを報告します;GetEncryptionLevelは、書き込み側の暗号化オプションに一致する型指定された強度(0=なし, 1=RC4-40, 2=RC4-128, 3=AES-128, 4=AES-256, 5=AES-256 Acrobat X)を返します;GetUserPermissionsは、直接ビットテストを行うために生の/P権限ワードを返します;IsOwnerPasswordは、ドキュメントが所有者クレデンシャルで開かれたかどうかを報告します
Version 3.95.0
追加
- 高度な印刷およびテキスト置換を追加しました:
PrintDocumentAdvancedは、部数/部単位の印刷(collation)に加えて、型指定されたTPDFlibPrintSettingsレコードを通じてプリンターの完全な DEVMODE(両面印刷、向き、カラー、印刷品質、用紙サイズ、給紙トレイ)を制御し、既存のカスタムプリンタープロファイルメカニズムを介して非デフォルトの各フィールドを適用します;SearchAndReplaceTextは、ページ範囲全体で検索を実行し、一致するごとに元のテキストブロックを不透明な白い長方形でマスクし、PDFtoolkit の SearchAndReplace のオーバーレイ置換動作をミラーリングして、呼び出し元が選択したフォントでブロックの原点に置換テキストを再描画します
Version 3.94.0
追加
- 注釈の FDF インターチェンジ(Acrobat の「コメントのデータ書き出し/データ取り込み」)を追加しました:
ExportAnnotationsToFDFStringおよびExportAnnotationsToFDFは、各ページの/Annotsをたどり、各注釈を FDF の/Annots配列内の/Type /Annotエントリとしてシリアライズし、/Subtype、/Contents、/Rect、/T作成者ラベル、/Subj、および 0 ベースの/Pageインデックスを保持します;ImportAnnotationsFromFDFStringおよびImportAnnotationsFromFDFは、小さなステートマシンを使用してこのような FDF を解析し、一致するページに新しい注釈として各エントリを再作成し、付箋に縮小するのではなく、完全な注釈辞書を保持します