HotPDF Release Notes
HotPDF のユーザーに見える機能、修正、互換性更新、ドキュメント変更のバージョン履歴
注意: 変更記録は最新 800 件のみ保持されます
Last release
- 最新バージョン: 2.974.0; リリース日: 2026-10-11
Version 2.974.0
Added
- 正確なページと Unicode 名による注釈の削除を、popup と返信の連鎖を含めて、認証済み権限と公開ロールバック付きの境界付きネイティブ API、Windows トランザクション、JSON ジョブ、バージョン付きコールバックを通じて提供
Version 2.973.0
Added
- 外観リソース、共有オブジェクトグラフ、ローカルアクション宛先を保持するバイナリ FDF 注釈交換を、ネイティブ API、Windows 交換、バージョン付きコールバックを通じて提供
Version 2.972.0
Added
- テキスト状態の保持、自動フィット、リッチテキスト スペーシング、テキストクリッピング(レンダリングモード 4~7 を含む)を備えた注釈デフォルト外観のレンダリングを提供
Version 2.971.1
Fixed
- FPC 3.3.1 Windows ビルドの公開 shaped-run キャッシュにおける範囲チェック失敗を、明示的な 32 ビット法ハッシュ乗算、正確なキャッシュキー分離、LRU 退避の保持によって防止
Version 2.971.0
Added
- ルートの :scope を一致させ、非アクティブな操作状態つきで静的な hover・active・focus 疑似クラスを許可するようにしました。否定、論理セレクタ・相対セレクタ、サポート照会、保存済み FDF/XFDF 外観を保持します
Version 2.970.0
Added
- サポートされる宣言・セレクタ照会、上限付きネスト条件、名前空間を考慮するプローブ、キャンセル復元、計算済みの保存済み FDF/XFDF 外観つきで、ネイティブリッチテキストの @supports グループと supports() インポートを評価するようにしました
Version 2.969.0
Added
- 有限の calc・min・max・clamp 式、ルート相対・明示的ビューポート長、最終フォントの行・スペーシングメトリクスを、ネイティブリッチテキストのデコード、保存済みフィールド外観、リッチ FDF/XFDF インポートで評価するようにしました
Fixed
- サポートされる境界未満の値を引き続き拒否しつつ、コンパイラターゲット全体で一貫して、正確な最小メディア寸法、解像度、初期フォントサイズを許可するようにしました
Version 2.968.0
Added
- カラースキーム、モーション軽減、透明度、データの設定、コントラスト、強制色・反転色、スクリプティング可用性の明示的なリッチテキスト設定を評価するようにしました。未知の省略された設定と計算済みの保存済み外観は保持します
Version 2.967.0
Added
- 共有された優先・代替タイトル集合、上限付き URI・ドキュメントベース解決、ネイティブ・Windows・Linux のトランザクション的 FDF/XFDF 公開つきで、呼び出し側が供給したリンク・インポート済みリッチテキストスタイルシートを適用するようにしました
Version 2.966.0
Added
- 明示的な print/screen プロファイル、ネスト条件、上限付き機能範囲つきで、ネイティブリッチテキストのメディアクエリを評価するようにしました。計算済みスタイルは保存済み外観とトランザクション的 FDF/XFDF インポートに保持されます
Version 2.965.0
Added
- 生き残ったノード ID、イベントロールバック、サポートされる空マージ出現、記述されたテンプレートとは独立に保存されるフォームパケットを保持しながら、ネイティブ XFA フォームツリーをトランザクション的に作成・クローン・編集できるようにしました
Version 2.964.0
Added
- デフォルトのバリエーション座標にある完全な OpenType CFF2 フォントから、ネイティブの plain・rich・shaped・family 外観を生成するようにしました。上限付き静的 CID-keyed CFF 1 出力で、グリフ ID、Unicode、widths、埋め込み権限を保持します
Version 2.963.0
Added
- スコープ付き CSS 名前空間宣言と修飾セレクタを、ネイティブリッチテキストフィールドと Windows/Linux フォームトランザクションに適用するようにしました。計算済み外観、上限付き名前空間検索、正確な no-op 公開、checked ビルド互換を保持します
Version 2.962.0
Added
- 生成された生フォント注釈テキストを、スタイル run にまたがるスペース・ハイフン境界で折り返すようにしました。完全なエンコード文字、ハード改行、自動サイズ調整、上限付きキャンセルを保持します
Version 2.961.0
Added
- 欠落した注釈テキスト外観を、元の Type1C・CIDFontType0C・素の Type1 フォントプログラムでレンダリングするようにしました。Unicode マッピング、自動サイズ調整、スペーシング、行の高さ、上限付き不変リソースを保持します
Version 2.960.0
Added
- 標準 XFDF スタンプの normal・rollover・down Form 外観を、埋め込みフォント・画像リソース、上限付き非巡回グラフ、認証済みネイティブトランザクション、既存 Windows/Linux コールバックつきで転送するようにしました
Version 2.959.0
Added
- 複雑な not リスト、フォージビングな is・where リスト、アンカーされた has 関係、フィルタ付き nth-child 位置を、ネイティブ内部リッチテキストスタイルシートに適用するようにしました。セレクタ詳細度、計算値、フォント、トランザクション的 FDF/XFDF 外観を保持します
Version 2.958.0
Added
- JavaScript と FormCalc で、読み取り専用の数値インデックスを通じて、生きているネイティブ Data DOM の子コレクションにアクセスできるようにしました。現在の子順、保持されたスクリプトオブジェクト参照、独立クローン、保存値、PDF 外観を保持します
Fixed
- 現在のコレクション上でも、保持された字句スクリプトオブジェクト内でも、数値の代入・削除・プロパティ定義を拒否するようにしました。上限付きイベントロールバックと再試行が伴います
Version 2.957.0
Added
- 属性セレクタ、兄弟コンビネータ、構造・位置指定疑似クラス、継承された言語マッチング、複合否定を、ネイティブ内部リッチテキストスタイルシートに適用するようにしました。実際に計算された値、フォント、保存済み外観、トランザクション的 FDF/XFDF インポートを保持します
Version 2.956.1
Fixed
- FormCalc の nodes 子リストパスを、実際のイベントコンパイラを通じて解決するようにしました。生きたフォーム・プロパティコレクション、Data DOM 項目アクセス、上限付きリプレイ、保存済みネイティブ値、PDF 外観を保持します
Version 2.956.0
Added
- 完全な OpenType CFF フォントから、ネイティブの plain・rich・shaped フィールド外観を生成するようにしました。name-keyed グリフ ID、実際の CID-keyed charset、Unicode マッピング、埋め込み権限、共有フォントリソースを保持し、埋め込み OpenType デフォルトで欠落した FreeText 外観をレンダリングします
Fixed
- CFF パースとグリフメトリクスを上限付きにし、キャンセルとスタイルごとの不変リーダを保持し、6 つのネイティブコンパイラターゲットで TrueType 動作を保持するようにしました
Version 2.955.1
Security
- 正準なバイトシリアライズの後に、すべてゼロの X25519・X448 共有秘密を拒否するようにしました。フィールドリムが非ゼロの低次数入力も含み、合意結果は空の秘密と新しい診断つきで false のままになります
Fixed
- 整数オーバーフローと範囲チェックが有効なとき、ポータブルな SHA3/SHAKE 定数と、意図的な mod 2^64 の鍵合意演算を保持するようにしました。32 ビット Free Pascal でのフル幅 P-256・P-384・P-521 交換を含みます
Version 2.955.0
Added
- length、インデックス読み取り、item、namedItem、反復、独立クローンを持つ、生きている JavaScript のフォーム・プロパティ子コレクションを追加しました。イベントをまたぐ所有者 ID、繰り返しインスタンス編集、暗黙のプロパティ作成を保持し、保存済みネイティブ値と PDF 外観が伴います
Fixed
- 保持された生きているリストを現在のイベント所有者に付けたままにし、削除された所有者を別インスタンスへの付け替えなしで拒否し、コレクション割り当て・操作・期限の失敗時にもネイティブ値、保持状態、ジャーナルロールバックを保持するようにしました
Version 2.954.0
Added
- タイプ・クラス・ID セレクタ、子孫・子コンビネータ、グループ化セレクタ、Unicode 識別子エスケープ、詳細度、重要度、ソース順つきで、内部 XHTML スタイルシートをネイティブリッチテキストフィールドと FDF/XFDF インポートに適用するようにしました
Fixed
- 計算済みスタイルを実際の保存値とウィジェット外観に保持するようにしました。上限付きスキャンとマッチング、キャンセル、正確なコミット済み no-op バイト、トランザクション的なコールバックロールバックが伴います
Version 2.953.0
Added
- all、classAll、classIndex、clone、メンバーシップ操作、安定した保持参照、上限付きトランザクションリプレイ、ネイティブ保存 PDF 消費を持つ、独立した XFA クエリノードコレクションを追加しました
Fixed
- 保持されたクエリ済みインスタンスマネージャを現在のイベントグラフに付けたままにし、通常の SOM パスと述語を元のデフォルトスタック・操作上限内で評価するようにしました
Version 2.952.0
Added
- ネイティブ、通常 Windows、バージョン付きコールバックの XFDF 交換を通じて、リモート GoToR 注釈宛先を保持するようにしました。正確な座標、Unicode ファイル指定、オプションのウィンドウ動作を含みます
Fixed
- 通常のロード済みドキュメント注釈インポートを、元の暗号化権限・署名・フィールドロックに対して認証するようにしました。許可された呼び出し側編集と独立したソース生存期間を保持します。署名 ByteRange 整数を Single 丸めなしで読み、暗号化前に共有 RC4 文字列ストレージを分離します
Version 2.951.0
Added
- 通常外観のない Square・Circle・Polygon・FreeText 注釈に、上限付きの雲形境界をレンダリングするようにしました。width、ダッシュ、不透明度、ソースグラフを保持します。FreeText ビュー間で、パース予算とキャンセルを保持したまま、不変な生成フォントバイトを共有し、デコードバイトの重複課金を避けます
Version 2.950.0
Added
- 上限付き所有権、継承名前空間、安定したインポート参照、バインディング更新、完全なイベントロールバックつきで、ネイティブ XFA Data DOM ノードの作成・クローン・名前変更・挿入・削除ができるようにしました。UTF-8 属性と保持された FormCalc 参照を、保存された XML とネイティブ PDF コンシューマを通じて保持します
Version 2.949.0
Added
- ネイティブ・Windows・Linux の XFDF 交換を通じて、選択された選択オプションなしと空のエクスポート値が選択された状態の区別を保持するようにしました。正確な no-op 公開、上限付き検証、チェック付き暗号化ドキュメントロードが伴います
Version 2.948.0
Fixed
- PDF パス、パターン、アルファ、ブレンド演算子を保持したまま、捕捉された分数クリップカバレッジで塗りつぶしグリフマスクをレンダリングし、割り当て前にラスタ作業メモリ容量を検査するようにしました
Version 2.947.1
Fixed
- XFA パースとシリアライズ中に、明示的な空デフォルト XML 名前空間宣言を保持するようにしました。保存・再ロードの後に、修飾されていないデータサブツリーが祖先の名前空間を継承するのを防ぎます
Version 2.947.0
Added
- beveled と inset の矩形注釈境界と、計測された Unicode・リッチ行キャプションをレンダリングするようにしました。不透明度、終点オフセット、既存外観、上限付きフォントリソース、注釈クリッピングを保持します
Version 2.946.3
Fixed
- xfa.host.resetData を、データ XML インポートと誤解せずネイティブイベントを通じて適用するようにしました。テンプレートデフォルト、バインド値、繰り返しスコープ、保留編集、トランザクションロールバックを保持します
Version 2.946.2
Fixed
- コンパイラの範囲・オーバーフローチェック有効時に、SHA-1・SHA-256・SHA-384・SHA-512 のワード演算を修正するようにしました。有効なダイジェストと AES-256 パスワード認証を保持し、公開インターフェイスは変えません
Version 2.946.1
Fixed
- 存在する空の XFA 属性と、UTF-8 の名前・値・名前空間・インデックス付き照会を、ネイティブ XML シリアライズ、永続プロパティデフォルト、繰り返しスクリプトイベント、トランザクションロールバックを通じて保持するようにしました
Version 2.946.0
Added
- 明示的な読み取り専用 Preview/Print フォント権限と変更なしの完全フォントバイトで、一時的なリッチ注釈テキストをレンダリングするようにしました。編集可能な埋め込みポリシーと既存 Screen 外観を保持し、暗黙のメディアプレースホルダはありません
Version 2.945.0
Added
- ネイティブ・レガシー XFDF 交換を通じて、ローカル注釈ページと名前付き宛先を保持するようにしました。正確で上限付きの 10 進トークン、修飾済み Adobe XML、重複属性検証、トランザクション的な Windows/Linux コールバック公開が伴います
Version 2.944.0
Added
- JavaScript と FormCalc を通じて、生きている XFA 選択の表示・エクスポート項目を管理するようにしました。生き残ったエイリアス、正確な重複・空選択、インスタンスごとのネイティブリスト、上限付き変更制限の下で保存されたネイティブ・レガシー PDF 外観を保持します
Version 2.943.1
Fixed
- ネイティブ混合スカラー・型付きリッチテキストトランザクションや空バッチが変更を行わないとき、ロード済み PDF の正確なバイトを保持するようにしました。保留グラフ編集、認証済み署名・暗号化ポリシー、リソース上限、アトミック公開を保持します
Version 2.943.0
Added
- Windows ファイルジョブと元の V1 コールバックを通じて、認証済み追加トランザクション、上限付きバイナリ・Unicode データ、正確な no-op バイト、アトミック公開つきで、マップ済み注釈 XFDF を交換するようにしました
Version 2.942.0
Added
- 通常外観のないサポート対象注釈を、上限付き一時ジオメトリ、線端、アイコン、Unicode FreeText でレンダリングするようにしました。ソースリソース、リッチテキスト、view/print フラグ、キャンセルを保持します
Version 2.941.1
Fixed
- 上限付きキャンセル可能ソートで、ネイティブ XFA 選択の一意性を検証するようにしました。大文字小文字を区別する正確なエクスポート値、元の選択順、トランザクション的失敗動作を保持します
Version 2.941.0
Added
- 独立してカスケードされるネイティブ CSS と元の型付き字間・語間を、シェーピングされた run、物理行、フィッティング、保存済み外観に適用するようにしました。計算済みポイントシリアライズ、正確な 10 進丸め、トランザクション的な Windows/Linux JSON 公開が伴います
Version 2.940.0
Added
- 上限付きネイティブ XFDF と Linux V1 JSON 操作を通じて 18 種類のマップ済み注釈タイプを交換するようにしました。Unicode リッチコンテンツ、コールアウト、透明色、バイナリ添付、ポップアップ・前方応答リンク、認証済み権限、トランザクション的な追加公開を保持します
Version 2.939.0
Added
- 正確な繰り返しインスタンス エクスポート、表示ラベル、選択インデックス、スクロール位置、スタイル付き Unicode 外観つきで、レガシー XFA の combo・list フィールドを作成するようにしました。高いフィールドフラグとフィールドごとのロールバックを、供給フォントの分離選択ファクトリとメタデータのみモードで保持します
Version 2.938.0
Added
- グラフィックス状態、フォーム、画像、シェーディング、パターン、透過グループ全体で 4 つの標準カラーインテントをレンダリングするようにしました。画像ごとの上書き、未知の名前の相対フォールバック、上限付きキャンセル可能な ICC 変換キャッシュが伴います
Version 2.937.0
Added
- 実際の繰り返しインスタンス スコープから、独立したレガシー XFA ラジオグループを作成するようにしました。正確なエクスポート、選択状態、スタイル付き Unicode キャプションを保持し、グループ全体の採用ロールバックと、供給フォントの分離ネイティブメンバー外観 API が伴います
Version 2.936.1
Added
- FNV ハッシュ乗算の下位 32 ビットを明示的に保持することで、算術オーバーフローチェックを有効にしたまま、有効な PDF ディクショナリとトレーラをパースするようにしました
Version 2.936.0
Added
- 明示的な型付き JSON リッチテキスト行高を、Windows と Linux の保存済み外観にバインドするようにしました。記述された run、供給された親メトリクス、上限付き合計プランニング、トランザクション的な混合フィールド更新を保持します
Version 2.935.1
Added
- ポータブル XFA パスワード外観で補助 Unicode 文字を 1 回だけ数え、元の値を保持し、スカラー粒度のキャンセルつきでマスクを割り当てる前にグリフ合計予算を適用するようにしました
Version 2.935.0
Added
- ネイティブレイアウト、保存済み外観、Windows ファイルジョブとコールバック、上限付きメトリクスフォントプランニングの Linux FDF/XFDF JSON インポート全体で、リッチテキスト行高、計算済み CSS 長、継承係数、親フォントメトリクスを保持するようにしました
Version 2.934.0
Added
- インスタンスごとの実効フォントファミリ・スタイル、編集可能な埋め込みフォントリソース、スカラーパスワードマスキング、トランザクション的なリソース採用つきで、実際の Unicode レガシー XFA テキスト・数値・日付・パスワード外観を作成するようにしました
Version 2.933.0
Added
- 既存の 4 ノードスカラー規約、短い次元の線形フォールバック、上限付きテンソル作業、キャンセル、変わりないスカラー補間つきで、多次元サンプリング 3 次カラー関数を評価するようにしました
Version 2.932.0
Added
- 最大 26 ビット精度の符号付き/符号なし JPEG 2000 コンポーネントを、混在精度、サブサンプリング、不透明度つきでデコードし、サンプルを上限内で正規化して、レンダリング前に JPX 画像の BitsPerComponent 宣言を無視するようにしました
Version 2.931.0
Added
- 旧来の XFA チェックボックスの on・off・中立の各エクスポート状態、スタイル付き Unicode キャプション、ネイティブ外観バンドルを保持し、特殊な PDF 名を一貫してエンコードし、ウィジェット取り込みがキャンセルされた後も直接ページリソースを復元するようにしました
Version 2.930.0
Added
- 明示的なズーム・言語・ユーザーコンテキスト、永続化されるネイティブの手動選択、上限付き Linux JSON 操作状態つきで、optional content の使用適用を自動評価するようにしました。ドキュメント変更後には借用済みレンダリングコンテキストを無効化します
Version 2.929.0
Added
- ネイティブセッター、Windows ジョブ、バージョン付き Windows/Linux コールバックの各経路で、順序付きの指定 regular フォントファミリーからスカラーテキスト、comb セル、選択ラベル、ボタンマークを構築するようにしました。通常のスカラーメタデータは保持し、空の選択と「空の値が選択された」エクスポートを区別します
Version 2.928.0
Added
- 上限付きの型付き PDF 配列スキャンで ExtGState のダッシュ配列と位相をレンダリングするようにしました。コメントの保持、厳密なオペランド検証、継承されたストローク幾何、キャンセル、通常テキスト配列への配慮を維持します
Version 2.927.0
Added
- Windows の ApplyXFAAsAcroForm によるプッシュボタンのスカラー/リッチキャプションを、実際にインストールされたファミリー/スタイルプログラム、インスタンスごとの永続オーバーライド、ネイティブの normal/down/rollover 外観バンドルで描画し、正規の AcroForm フォントリソースを登録するようにしました
Version 2.926.0
Added
- 上限付きのインライン CSS font ショートハンドを、サイズ・ウェイト・イタリック・指定ファミリーの各候補として独立にカスケード展開するようにしました。継承された相対サイズ、スタイル省略時のリセット、important 付きコンポーネントの優先順位、実際に保存されたフォント外観を保持します
Version 2.925.0
Added
- Windows ファイルジョブと V1 コールバックを通じて、スタイル付きリッチテキストの書記素全体に対し、呼び出し側が指定した順序付きフォントファミリーを選択するようにしました。CSS および型付き候補、正規の空値トランザクション、フォント全体のバジェットを保持します
Version 2.924.0
Added
- マーク付きページコンテンツ、フォーム XObject、アノテーション全体で、ドキュメント既定の optional content グループとメンバーシップ式をレンダリングし、非表示のグラフィックスやテキスト状態を保持するようにしました。明示的な view/print 使用用途はネイティブ Linux V1 JSON インターフェースから参照できます
Version 2.923.0
Added
- 順序付きリッチテキストのフォント候補リストをネイティブ外観と Linux V1 JSON の両方で保持し、スカラーと元の型付きランが混在するテキストを、正確な描画・指定スタイルプログラム・2 フェーズ公開つきで Windows ファイルジョブと変更なしの V1 コールバックに結び付けるようにしました
Version 2.922.0
Added
- PDF 2.0 の Invisible 規則に従ってネイティブアノテーションの view/print 可視性を選択し、RichMedia と Projection の静的外観、暗黙の Text 変換を認識するようにしました。上限付きでキャンセル可能な Windows PNG のアトミック置換と、実際の OS エラー診断も保持されます
Version 2.921.0
Added
- ネイティブ XFA プッシュボタンのスカラーおよび XHTML キャプションを、実際に指定されたファミリー/スタイルプログラム、保持されたインライン区切り文字、作成時のパディング、正規の normal/down/rollover 外観、キャプション可視性、繰り返しインスタンスごとの永続オーバーライドつきでレンダリングするようにしました
Version 2.920.1
Fixed
- 成功したネイティブ Linux C ABI の PDF 変更をコミット済みソーススナップショットと一致させるようにしました。これにより、後続の同値 FDF/XFDF インポートでは、古い入力バイトを復元する代わりに、実際に公開されたフォーム値・型付き外観・描画テキスト・インポート済みページが正確に保持されます
Version 2.920.0
Added
- スカラーと元の型付きリッチテキストランが混在するフィールドを、1 つの独立したアトミックなドキュメントトランザクションとして保存するようにしました。正確な外観値と指定フォントプログラムを維持し、検証済みポリシーと現在のグラフ編集を保持し、正規の読み取り専用外観 no-op を認識します
Version 2.919.0
Added
- スタイル付き Unicode 書記素全体を、明示的に指定された候補フォントファミリーで解決するようにしました。作成時の値と正確な外観スタイルを保持し、オプトインのネイティブ Linux JSON フォールバックを変更なしの V1 コールバック経由で公開し、設定済みプログラムのロード中も実際のフォント合計枠を維持します
Version 2.918.0
Added
- ネイティブ XFA の Boolean キャプションを、実効 XHTML と指定された名前付きスタイルフォントからレンダリングするようにしました。繰り返しインスタンスのオーバーレイと保存済みランタイム XML を保持し、自動キャプション予約領域は最終的な論理テキスト行の範囲で計測します
Version 2.917.0
Added
- Windows の FDF/XFDF インポートに対し、ネストされたファイルパスまたは既存のバージョン付きフォントコールバックを通じて、正規の名前付きファミリー/スタイルプログラムを選択するようにしました。同期されたランダムソース読み出しを、逐次トランザクション公開から分離します
Version 2.916.0
Added
- 1〜4 バイトコード、正確な親/子書字方向、Unicode マッピング、決定論的な不正コード復帰、キャンセル可能な継承、同梱の再配布告知つきで、内蔵の 182 種のレガシー CMap をデコード・レンダリングできるようにしました
Version 2.915.0
Added
- フォントメトリクスに基づく選択ウィンドウと永続化された先頭インデックスにより、選択中のネイティブ XFA リストオプションを表示し続けるようにしました。完全なオプション配列と値配列を保持し、繰り返しインスタンスのフォント変更とイベントロールバックを、上限付きの可視グリフ準備つきで維持します
Version 2.914.1
Fixed
- 実際のメモリ予約を取得した後、フォアグラウンドのメモリキャッシュヒットと協調的プリフェッチのキャンセルをオーバーラップさせるようにしました。操作キャッシュのテレメトリを保持し、キャッシュロックや予約待ちの後にもキャンセルを再確認します。厳密なミス順序とスレッド合流は維持されます
Version 2.914.0
Added
- 6 種のカスタムマーク、丸/四角ボーダー、マークの色とサイズ、5 種のキャプション配置、共有埋め込みキャプションフォントでネイティブ XFA の Boolean 外観を作成できるようにしました。可逆な Unicode エクスポートエイリアスと、イベント実行から保存済み PDF 再読み込みまで区別される法的中立状態を保持します
Version 2.913.2
Fixed
- 回転したマトリクスバーコードを分断されたフラグメントより先に完全にデコードし、QR のファインダーパターンが正確に一致しない場合はグリッド全体のサンプリング前に拒否するようにしました。より厳密なグルーピング、従来のリニアバーコード動作、アトミックなスキャンバジェット、変更なしの 2 秒デッドラインを維持します
Version 2.913.1
Added
- 既存の暗黙 XFA 値を、セレクター解析を繰り返してスクリプト操作枠を消費することなく、上限付きライブデータコンテキストで解決するようにしました。元のトランザクションデッドラインと明示的なバインディング動作を保持します
Version 2.913.0
Added
- 型付きフィルと FDF/XFDF インポートについて、変更なしの Linux V1 JSON コールバック経由で設定済みネイティブリッチフォントファミリーを選択し、実際に必要なファミリー/スタイルプログラムを合計バジェット内でロードするようにしました。実装済みの両リッチプロファイルを通知します
Version 2.912.0
Added
- 実際の FDF/XFDF を、所有権を持つ不変入力、未保存の現在グラフ準備、実際の 4 フォントリッチ外観、検証済み署名 AES ポリシーつきで、Windows ファイルジョブと V1 コールバック経由でインポート/エクスポートするようにしました。コンテキストのコミットは両出力コールバックの成功後のみ行われます
Version 2.911.0
Added
- ネイティブ XFA の矩形・線・円弧の描画とインライン PNG/JPEG 画像を、実際のサンプルデコード、アルファマスク、調整済みアスペクト比、回転配置、上限付き準備、キャンセル下でのトランザクション所有権つきで作成できるようにしました
Version 2.910.0
Added
- NoZoom と NoRotate のアノテーション外観を、変換後の左上矩形アンカーを基準にフィットさせるようにしました。UserUnit、フィット済みフォーム幾何、不透明度、実際のページクリップを、スケールと回転を通じて保持します
Version 2.909.0
Added
- リッチランごと、および上限付き XHTML font-family 宣言に対して、実際に指定された名前付き TrueType ファミリーを選択するようにしました。ファミリーごとのスタイルメトリクスとマークキャッシュを保持し、実際の FDF/XFDF リッチ値はファミリーを考慮した正規化比較つきでインポートします
Version 2.908.1
Fixed
- 有効なインラインリッチテキスト宣言を、独立した important 優先度、外側の計算済み font-size ベース、明示的な継承プロパティつきで適用するようにしました。CSS コメントや引用符/関数形式宣言の境界は保持されます
Version 2.908.0
Added
- 保存済みランタイムデータから、正規のネイティブ XFA コンボボックス、リストボックス、複数選択フィールド、チェックボックス、構造スコープのラジオグループを直接作成できるようにしました。表示/エクスポート対ラベル、インスタンスごとの項目、アクセスフラグ、独立したネイティブ外観状態を備えます
Version 2.907.1
Fixed
- 名前値および継承フォームフィールド内の実際の PDF 16 進エスケープと UTF-8 バイトをデコードするようにしました。空白・句読点・Unicode を含むボタンエクスポート状態を、ネイティブの保存ドキュメント再読み込みを通じて保持します
Version 2.907.0
Added
- 実際のフォント CID-to-GID マッピングを通じて、CID キー付き CFF の正規グリフ ID と上限付き notdef 置換をレンダリングするようにしました。エスケープ付き CMap 解析全体を通じて、独立したテキスト抽出とキャンセルチェックを保持します
Version 2.906.0
Added
- アタッチメントアンカーが存在しない場合、実際に選択されたグリフ境界と正規結合クラスを使ってスタイル跨ぎの結合記号を配置するようにしました。独立したフォントスケール、同側スタッキング、二重記号向けの実解決アイテム方向を備えます
Version 2.905.1
Fixed
- エスケープされた predictor パラメータを実際の DecodeParms 辞書内で解決し、バランスの取れた外側辞書構文の後に実際のストリームトークンを特定するようにしました。通常の Windows ロードでは、空白値のバイナリ xref ペイロードを保持します
Version 2.905.0
Added
- Linux と Windows で、XDP と保存済みランタイム値から、ネイティブ PDF ページツリー、繰り返し編集可能フィールド、プッシュボタン、Unicode 静的テキストを直接作成できるようにしました。正規の埋め込み外観と、呼び出し側出力前の上限付き候補準備を備えます
Version 2.904.2
Fixed
- ネストされた暗号化設定と混同せずに実際の外側クロスリファレンスストリーム辞書を読み、エスケープされたエントリ名を解決し、通常の Windows インクリメンタル改訂で直接暗号化辞書を保持するようにしました
Version 2.904.1
Fixed
- 自動スタンドアロンシェーピングとプレーンな複数行フィールド折り返しを通じて、段落方向制御と対括弧を完全に保持するようにしました。物理行の結合コンテキスト、不変の段落キャッシュ、上限付き総グリフ出力を備えます
Version 2.904.0
Added
- ネイティブ XFA の JavaScript、イベントジャーナル、Data DOM、XML、FormCalc、ICU ロケールランタイムを、Linux 上で所有権付き共有モジュールリースと実際のモノトニッククロックとともに実行するようにしました。既存の Windows Unicode 初期化はそのまま維持されます
Version 2.903.1
Fixed
- 方向制御のみの Unicode シェーピングクラスタの字間送りをゼロに保つようにしました。論理制御文字、グリフ ID、通常の可視クラスタ間隔と単語間隔は維持されます
Version 2.903.0
Added
- 折り返されるリッチスタイル行全体で、方向埋め込み、オーバーライド、アイソレート、対括弧の段落コンテキストを保持するようにしました。段落由来かつキャッシュされた物理行順序 API を上限付きで公開し、解決済みレベルとスクリプトつきで実際の行アイテムをシェーピングします
Version 2.902.0
Added
- スタイル付き FDF/XFDF を実際の Linux JSON C ABI コールバック経由でインポート/エクスポートし、設定された正規フォントフェイスを埋め込むようにしました。署名ポリシーと no-op インポート時の正確な元ソースバイトを保持し、現在のドキュメント状態は両コールバック出力の成功後にのみ公開します
Version 2.901.0
Added
- Coons パッチとテンソルパッチのメッシュシェーディングを、上限付き三次ベジェジオメトリ、ソース空間での色補間、連続エッジ、折り返し処理、トランザクション式リソース/キャンセル制限つきでレンダリングするようにしました
Version 2.900.0
Added
- 名前空間を認識するネイティブ XFA Data DOM XML をトランザクション的にロード/保存するようにしました。順序付き混合コンテンツとデータバインディング ID を保持し、ホスト値の引用符付けを線形時間で行い、上限付きエンジンリプレイを通じてセッションごとの JavaScript モジュールリースを正確に維持します
Version 2.899.0
Added
- スタイル付き結合記号を、独立フォントスケールつきで実際の GPOS ベース・合字・マークアンカーにアタッチするようにしました。リッチウィジェットのクリップ内で負原点のグリフアウトラインを保持し、可視の積み重ね記号に合わせた行範囲を予約します
Version 2.898.0
Added
- 上限付きの FDF/XFDF リッチテキストを読み書きし、ネイティブ XHTML スタイルスパンを 4 種の正規埋め込みフォントスタイルにデコードして、実際の外観を署名済み/暗号化 PDF へトランザクション的にインポートするようにしました。既存の読み取り専用リッチ値の正規化比較も含みます
Version 2.897.0
Added
- 選択された Unicode スタイルスパンを、正規の前後 HarfBuzz コンテキストつきでシェーピングするようにしました。ネイティブの段落順序/方向 API を公開し、論理スタイルとオブジェクト所有権を保持したまま、型付きリッチアイテムを実際の折り返し物理行内に配置します
Version 2.896.0
Added
- ネイティブ XFA バインディング SOM を、上限付き子孫走査、エスケープ名、Unicode マッチング、インスタンスごとの欠落リーフフォールバック、トランザクション的なランタイム値同期つきの繰り返しデータスコープで解決するようにしました
Version 2.895.1
Fixed
- 静的なネイティブ XFA イベントサポートを所有 JavaScript エンジンごとに 1 回コンパイルし、完全かつコンパクトな動的イベント引数をリプレイするようにしました。クロージャ、記録済みホスト応答、インスタンス分離、元のジャーナルバジェット、ロールバック時のトランザクションデッドラインを保持します
Version 2.895.0
Added
- 実際の FDF/XFDF バイトを既存のバージョン付きネイティブ Linux JSON コールバック経由でインポート/エクスポートするようにしました。Unicode フィールド値、AES セキュリティ、検証済み署名ポリシーを保持し、出力や結果公開が失敗した場合は現在のドキュメントをロールバックします
Version 2.894.0
Fixed
- 幅超過の型付きリッチテキストを、フォント/色スタイルを跨ぐ完全な Unicode 書記素境界で折り返すようにしました。行割り当て前に実際のスタイル範囲を計測し、分割不可能な特大クラスタ、混在ポイントサイズ、明示的な字間を保持します
Version 2.893.1
Security
- 署名ポリシーで保護されたフォーム更新を受け入れる前に、正規の RFC3161 ドキュメントタイムスタンプ内で必須の Adobe 署名付き CRL/OCSP 証拠を検証するようにしました。欠落・失効・期限切れ・不信任の証拠に対するトランザクション拒否はそのまま維持されます
Version 2.893.0
Added
- 上限付きのネイティブ FDF/XFDF スカラーフィールドデータを読み書きし、実際の Unicode・選択・ボタン外観を独立公開された PDF へトランザクション的にインポートするようにしました。検証済み署名ポリシーと AES 暗号化は保持されます
Version 2.892.0
Added
- フリーフォームおよびラティスタイプの三角メッシュシェーディングを、正規の座標・フラグ・関数・色・透過セマンティクスつきで上限付きレンダリングし、16 進 Indexed パレットストリームは正確に 1 回だけデコードするようにしました
Version 2.891.0
Added
- 順序付きネイティブ XFA の XML コメントと処理命令を、イベントインポート、シリアライズ、クローン、トランザクションロールバックを通じて保持するようにしました。スカラーテキスト、リッチテキスト、SOM 要素選択からは除外されます
Version 2.890.1
Fixed
- 一時的な Windows アトミック公開ロックを、最大 8 回までのキャンセル可能な置換試行で回復するようにしました。正確なターゲット、準備済みバイト、恒久的な OS エラー、所有権付きステージング後片付けは保持されます
Version 2.890.0
Added
- 法的に意味を持つ Unicode の単語、ノーブレークスペース、句読点、数値グループを型付きリッチスタイルラン全体で保持するようにしました。グループ全体を実際のスタイル付きフォント送りでフィットさせ、混在サイズのベースラインを維持し、スタイル境界を跨ぐ CRLF を結合します
Version 2.889.0
Added
- 可視フィールドのコミット後に、実体化された hidden/invisible XFA スカラーエイリアスを同期するようにしました。ネイティブの繰り返しデータスコープ、明示的な空値、正確なトランザクションロールバックを保持します
Version 2.888.0
Added
- 完全な Unicode 17 プロパティと文脈依存の行分割を既存ドキュメント API 経由で適用するようにしました。raw または LB1 解決のポータブルなプロパティ照会を公開し、確立済み enum 序数とテーラリング契約を保持し、ソフトハイフン禁止規則を尊重します
Version 2.887.0
Added
- 永続的なネイティブ XFA exData XML を、即時スクリプト読み取り、名前空間と混合コンテンツの保持、繰り返しインスタンス ID の維持、トランザクションロールバック、正規の保存 XHTML レンダリングつきでインポート/シリアライズするようにしました
Version 2.886.0
Added
- スタンドアロンの RFC3161 PDF ドキュメントタイムスタンプを、上限付きストリーミング、SHA256/SHA384/SHA512 インプリント、信頼済み TSA ID とノンス束縛、必須 ESIC 拡張宣言、検証済み certification/フィールドロック例外つきで作成・検証できるようにしました
Version 2.885.0
Added
- Unicode 17 の既定改行機会を公開し、実際のネイティブリッチフィールドで消費するようにしました。ノーブレークスペース、ハイフン、句読点グループ、Unicode 明示的セパレータを保持し、元の V/RV 値を正確に維持します
Version 2.884.0
Added
- ポータブルな Unicode 17 既定拡張書記素境界を公開し、幅超過のリッチ語を完全なクラスタ境界で折り返すようにしました。実際の Unicode 外観コンテンツを保持し、部分文字列シェーピング後の結合形の幅変化を補正します
Version 2.883.0
Added
- 永続的なネイティブ XFA の画像/幾何 value 子要素を作成し、実際の PNG アルファ、画像 DPI、アスペクトジオメトリをレンダリングするようにしました。繰り返しインスタンスの分離とトランザクションロールバックを保持します。従来黒くレンダリングされていた FPC の画像ピクセルを修正しました
Version 2.882.0
Added
- Form、Type3、Pattern の各レンダリングで、実際の子ストリームフォントリソースと PDF テキストパラメータを継承するようにしました。グラフィックス状態のテキスト保存を保持し、不可視 Type3 テキストを尊重し、独立したアノテーション外観既定値をリセットします
Version 2.881.0
Added
- 標準的なデタッチド CAdES 署名を必須の署名証明書束縛つきで自動検証し、正規の 16 進またはエスケープされたリテラル Contents 文字列を、署名検証・許可済みフォーム更新・長期検証証拠について一貫して読み取るようにしました
Version 2.880.2
Fixed
- 空の先頭ラン、インラインスタイル変更、明示的な改行を跨いでもリッチ段落の整列を維持するようにしました。要求された矩形/円ボーダーと計測済みハイライト行を、黙って省略するのではなく描画します
Version 2.880.1
Fixed
- ページレンダラー割り当て前、コンテキストインストール前、初期化中にキャンセルを観測するようにしました。構築が最初に拒否された場合は有効な呼び出し側カラーコンテキストを保持し、部分的なビットマップを公開せずに借用ディスプレイリストを解放します
Version 2.880.0
Added
- スクリプト作成後に、実際のネイティブ XFA スカラー draw およびキャプション値をレンダリングするようにしました。明示的な空値と繰り返しインスタンス分離を保持し、後続ネイティブ描画がバジェットを使い切った場合も正確なロールバックを維持します
Version 2.879.0
Added
- 永続的なネイティブ XFA スカラー value 子要素を、即時のフィールド/データ/共有エイリアス同期、型付きフォーム永続化、ウィジェットコミット、繰り返しインスタンス分離、正確なトランザクションロールバックつきで作成できるようにしました
Version 2.878.0
Added
- 結合/分離ウィジェット、回転、暗号化、認証ワークフロー向けに、埋め込み Unicode フォントによる実際の Windows 署名外観プロファイルを生成するようにしました。必須の AppearanceFilter を、実際に生成されたプロファイルに対して強制します
Version 2.877.0
Added
- 彩色/無彩色を問わず PDF のタイリングパターンとシェーディングパターンを、継承されたパターン原点、ネストされたセル、重なり、ストローク/ステンシル描画、透過、上限付きキャンセルつきで、ネイティブ Linux/Windows ターゲット上でレンダリングするようにしました
Version 2.876.1
Fixed
- 欠落インスタンスのフォーム/テンプレート既定値を適用する際も、完全な XFA SOM バインディングと実際の emit 対象インスタンスデータ選択を保持するようにしました。別の繰り返しオカレンスから値を借りることはしません
Version 2.876.0
Added
- 検証済み CRL/OCSP 証拠を署名済み Windows Adobe RevocationInfoArchival 属性に埋め込み、実際のシードポリシーを強制し、署名公開前に信頼ステータス、応答認可、鮮度を検証するようにしました
Version 2.875.0
Added
- 読み取り時にデータを捏造せずに実際の XFA フィールド既定値を解決し、明示的な空インスタンス値を保持するようにしました。編集は共有テンプレートを変更せず、独立したインスタンスデータに書き込まれます
Version 2.874.0
Added
- ネイティブリッチテキストフィールドを、型付き Unicode スタイルラン、実際に埋め込まれた regular/bold/italic/bold-italic フォント、計測済み混在サイズ外観ベースライン、装飾、ウィジェット間および暗号化出力での同期済み V/RV 値つきで編集できるようにしました
Version 2.873.0
Added
- ネイティブスクリプトを通じてインスタンスごとの永続 XFA UI 選択を作成し、実際の text/password/choice ウィジェットを、複数行と計測済み長語外観つきで利用できるようにしました
Version 2.872.0
Added
- P1/P2/P3 権限と検証済み Unicode 法的表明つきで、実際の Windows DocMDP 認証署名を作成するようにしました。必須シードポリシーと FieldMDP ロックを尊重し、後続署名は署名済みポリシーが許可する場合にのみ許可します
Version 2.871.1
Fixed
- XFA イベント本体を固有のレキシカルかつ strict なスコープで実行するようにしました。外側スコープのフィールドエイリアス、イベントの this 値、明示的な return、正確な失敗ロールバックを保持します
Version 2.871.0
Added
- 欠落している XFA の font/paragraph/fill/color/border/edge/corner プロパティを実際のネイティブイベントスクリプトで作成し、正確なロールバックつきで安定したインスタンスごとのフォームバインディングを永続化するようにしました。実効的なスタイル変更後にはオプションのウィジェット外観を再生成します
Version 2.870.0
Added
- 明示的な GDI 標準フォントアウトラインと正しい Win32 OpenJPEG 呼び出し規約で、実際のネイティブ Windows Cairo 出力をレンダリングするようにしました。再現可能なピン留めネイティブ依存と独立した出力検証を使用します
Version 2.869.0
Added
- 実際の同期 C ABI RFC 3161 トランスポートコールバックと SHA256/SHA384/SHA512 インプリント、検証済み TSA 信頼と CRL チェック、必須タイムスタンプシード制約、上限付きトランザクション公開つきで Windows ドキュメントに署名できるようにしました
Version 2.868.0
Added
- マスク付きパスワードおよびリテラルファイル選択フィールドの外観を、保持された Unicode 値と AES-256 ポリシーつきで生成するようにしました。エスケープされた補助 Unicode をネイティブ JSON ABI 経由で運び、サブノーマルな PDF 10 進ソーストークンを保持し、スクリーン DC なしで RGB プリフェッチバッファを作成します
Version 2.867.0
Added
- XFA リッチテキストをインラインスタイル間で、計測済み語境界、明示的な改行、共有行ベースラインと整列、実際の両端揃え語間ギャップ、フラグメントリンクジオメトリつきで折り返すようにしました。ネイティブの繰り返しインスタンス XDP 永続化を保持します
Version 2.866.1
Added
- 生署名の RFC 3161 トークンを、実際にサポートされている SHA256/SHA384/SHA512 メッセージインプリントアルゴリズムで検証するようにしました。既存の SHA256 リクエスト既定値と完全なトークン信頼/失効チェックは維持されます
Version 2.866.0
Added
- 混在サイズの XFA リッチテキストランを共通の保存 PDF ベースラインに揃え、呼び出し側のテキスト位置モードを保持するようにしました。空段落の遷移を含め、隣接段落マージンの大きい方を適用します
Version 2.865.0
Added
- 明示的な SHA256/SHA384/SHA512 メッセージインプリントについて、インプリントを再ハッシュせずに RFC 3161 タイムスタンプを要求・検証するようにしました。厳密なダイジェスト長、新しいノンス、上限付きトランスポート、信頼チェーン、失効検証を保持します
Version 2.864.0
Fixed
- 完全なリニアラスタとクワイエットゾーン候補グループを優先して元のバーコードスキャンデッドラインを維持するようにしました。DataMatrix の投影ファインダーボーダーが不正な場合は、ファインダー許容値を変えずに内部モジュールのサンプリング前に拒否します
Version 2.863.0
Added
- 有効な継承 Windows 署名シードと証明書制約を、実際のダイジェスト/CAdES 選択、Unicode 署名情報、正規化された間接フィールドロック、検証済み履歴ロック権限、許可済み第二署名、暗号化フォームポリシーつきで尊重するようにしました
Version 2.862.0
Added
- function・axial・radial の各 PDF シェーディングを、上限付きジオメトリ/関数評価、継承クリッピング、Domain/Matrix/Extend/BBox セマンティクス、較正色と特殊色、透過、ソフトマスク、ブレンディング、ノックアウトグループつきでネイティブにレンダリングするようにしました
Version 2.861.0
Added
- 実際のネイティブ注釈付き契約レビュー PDF と、可視 normal 外観つきの明示的な Unicode ハイライトをエクスポートするようにしました。ソースコンテンツとインクリメンタル署名改訂を保持し、検証済み P3 アノテーション権限と暗号化ユーザー権限を強制し、コールバック公開前に上限付き出力を準備します
Version 2.860.0
Added
- ネイティブ Linux の署名/検証オプションを、実際のダイジェスト選択、Unicode 署名メタデータ、名前付き外観プロファイル、明示的な信頼バイト、タイムスタンプトランスポート ID、検証済み失効証拠に束縛するようにしました。公開前の秘密鍵準備はバジェット内で行われます
Version 2.859.0
Added
- インスタンスごとのライブ XFA フォント/段落/スカラー本文オーバーライドを、実際のリッチテキスト描画と計測に適用するようにしました。インライン CSS の優先順位と明示的な空コンテンツをネイティブ XDP 永続化を通じて保持し、正確なトランザクションロールバックを維持します
Version 2.858.0
Added
- エスケープされた PDF のフォント/エンコーディング/グリフ/色/リソース名を、ネイティブレンダリングと共有テキスト抽出で正確に 1 回デコードするようにしました。リテラルなハッシュリソースキーを保持し、等価な名前を実際のアウトラインとグリフメトリクスに一致させます
Version 2.857.0
Added
- ネイティブドキュメントを、ページ/オブジェクト数、Unicode テキスト、正規化構造グラフ、実際にレンダリングした RGB/輝度ピクセルで比較できるようにしました。セマンティックなストリーム等価性、検証済み暗号化入力、コールバック公開前の上限付き準備を備えます
Version 2.856.0
Added
- 登録済みプロファイル名で実際のネイティブ署名外観プリセットを選択し、承認/認証/コンパクトの各レイアウトを区別して生成するようにしました。検証済みプロファイルメタデータと暗号化ポリシーを保持し、未知のプロファイルは公開前に拒否します
Version 2.855.0
Added
- ネイティブ XFA プロパティスキーマの既定値を適用し、明示的な空値、インスタンスごとのスタイル、小数ポイントのフォント/ボーダー/描画計測を、実際の AcroForm とフラット化 PDF 出力を通じて保持するようにしました
Version 2.854.0
Added
- ネイティブ XFA のプロパティ/属性オブジェクトを、永続的なインスタンスごとのフォームバインディング、同期された value/data 書き込み、実際のフォント/ボーダー/段落/UI レイアウト効果つきで公開するようにしました。トランザクションロールバックとスクリプトなしフォーカス枠を保持します
Version 2.853.0
Added
- 正規の Adobe 失効証拠を検証済み CMS 署名属性として埋め込み、公開前に完全な証明書/タイムスタンプチェーンを明示的な信頼と最新の CRL/OCSP 証拠に対して検証し、必須の署名シード失効埋め込みを強制するようにしました
Version 2.852.0
Added
- 認証署名に検証済みの Unicode 法的表明を書き込み、認証 (certification) 専用の Legal シード要件を尊重するようにしました。既存の法的統計とカタログ権限を保持し、暗号化文字列ポリシーを維持します
Version 2.851.0
Added
- 物理的な Lab ICC ソース色と上限付き XYZ 互換入力を、パス、テキスト、パック画像、Indexed パレットでレンダリングするようにしました。較正済み/ICC の代替チントを RGB/CMYK グループを通じて保持し、個別または関連アルファつきの埋め込み JPX プロファイルを適用します
Version 2.850.0
Added
- フォント欠落の互換ドキュメントを、明示的にバジェット制限した Ghostscript フォント埋め込み、正規の veraPDF 検証、アトミック公開つきで、検索可能テキストとベクターの PDF/A-4 に変換するようにしました。ネイティブ Unicode TrueType フォントをディストリビューションを跨いで一貫して選択します
Version 2.849.0
Added
- 埋め込み simple Type1/Type1C フォントを、宣言済みまたは内蔵の正確な Adobe グリフエンコーディングでレンダリングするようにしました。ToUnicode 抽出を表示アウトラインから分離し、検証済みの中立 stroke-adjustment と相対色計測グラフィックス状態を受け入れます
Version 2.848.0
Added
- 各ワイルドカードコンテキスト内で完全な XFA 子孫パス接尾辞を解決し、ローカルなオカレンス境界を保持するようにしました。述語は現在のイベントスコープで、正確なトランザクションロールバックつきで実行します
Version 2.847.0
Added
- 継承されたネイティブ署名シードと証明書制約を、実際の発行者チェーン、subject/key usage ポリシー、選択可能な CMS ダイジェスト、暗号化 Unicode 署名メタデータ、ロック済みドキュメント変換つきで強制するようにしました
Version 2.846.0
Added
- ネイティブ XFA の datasets とデータノードを、双方向フォームバインディング、動的インスタンスデータミラーリング、安定した保持参照、独立した非バインドフォーム値、トランザクション的スクリプトリプレイつきで公開するようにしました
Version 2.845.0
Added
- 既存または継承された署名フィールドロックから検証済み FieldMDP 参照を出力し、暗号化 Unicode フィールド名と認証参照を保持するようにしました。ロック権限レベルを、元の署名済みポリシーを弱めることなく適用します
Version 2.844.0
Added
- Separation と DeviceN の代替チントを、上限付きベクター関数、パック画像、CMYK グループブレンディングつきでレンダリングするようにしました。None のノックアウトジオメトリを保持し、All のレジストレーション色を一貫してマッピングします
Version 2.843.0
Added
- 動的 XFA SOM パスを、推論/相対オカレンス、スコープ付き述語、クラス/子孫セレクター、ワイルドカードコレクション、トランザクション的なスクリプトオブジェクトプロパティ代入つきで解決するようにしました
Version 2.842.0
Added
- 共有ポータブルコアを通じて、ネイティブな 2 ドキュメント C ABI/Pascal セマンティック契約比較を提供するようにしました。ソースグリフジオメトリ、暗号化/ネストコンテンツ入力、準備済み JSON/HTML レビュー出力、安定した並行ロック順序を備えます
Version 2.841.0
Added
- ネイティブフォーム更新の前に元の CMS/CAdES 改訂を検証し、元の DocMDP/FieldMDP 権限とロック済みフィールドを強制するようにしました。署名済みコンテンツとリソースを保持し、プッシュボタンキャプションメタデータをアトミックに同期します
Version 2.840.0
Added
- 較正済み CalGray/CalRGB/Lab ソース色、較正済みグループ/ページブレンディング、Indexed ベース、16 ビット画像サンプル、XYZ 輝度ソフトマスクを、上限付き変換と安全なガンマ評価つきでレンダリングするようにしました
Version 2.839.0
Added
- FormCalc の値コピーと安定ノード参照を、参照経由の代入、再バインドと null 切り離し、数値同一性比較、保持ハンドル、トランザクションロールバックつきで実装しました
Version 2.838.0
Added
- ランタイム生成の FormCalc Eval プログラムを、分離された計算スコープ、ネストされた評価、Unicode ソース、上限付きコンパイルリトライ、トランザクション的ホスト応答リプレイつきで実行するようにしました
Version 2.837.0
Added
- ネイティブ Linux JSON フォーム入力を通じて、text/choice/multiselect フィールド、チェックボックス/ラジオ状態、プッシュボタンキャプションの埋め込み Unicode 外観を生成するようにしました。トランザクション的公開と暗号化は維持されます
Version 2.836.0
Added
- 互換性のある拡張ネイティブ署名操作レコードを通じて、同期 RFC 3161 タイムスタンプトランスポートを提供するようにしました。上限付き応答、共有キャンセル、明示的な TSA 信頼/失効検証を備えます
Version 2.835.0
Added
- トランザクション的な XFA ホスト状態、ページ/ライフサイクルフラグ、インスタンスごとのフォーカス変更、未保存編集の検証、リセット操作を、安定した ID とレキシカル状態リプレイつきで実行するようにしました
Version 2.834.0
Added
- CAdES 署名証明書 ID を、オプションの証明書信頼とは独立に実際の署名者に対して検証するようにしました。埋め込み Encoding CMap ストリームはネイティブフォントアダプタで解決します
Version 2.833.0
Added
- 縦書き Identity-V と Unicode 事前定義 CMap を、実際の W2/DW2 原点、マトリクス、テキスト移動、クリッピングつきでレンダリングし、埋め込み Encoding CMap ストリームを正しくデコードするようにしました
Version 2.832.0
Added
- ネイティブ Linux コールバック ABI を通じて、PEM または上限付き PFX アイデンティティ、新しい Unicode 外観フィールド、認証 (certification) つきで署名するようにしました。公開成功後は準備済み署名ドキュメントを現在のコンテキストとして保持します
Version 2.831.0
Fixed
- 署名シード、ロック、読み取り専用の各制約をエンコード済み PDF 名に一貫して適用し、意味的に重複するキーを拒否し、継承されたポリシー辞書を検証するようにしました
Version 2.830.0
Added
- 高度な XFA の数値/暦/テキスト/複合 picture 句を実際のフォームイベントで実行するようにしました。入力精度、ロケールセマンティクス、トランザクション的スクリプトリプレイを保持します
Version 2.829.0
Added
- ネイティブのページリソースグラフと変換済みアノテーション外観を、プレーン/暗号化ドキュメントへインポートし、互換入力をアトミック公開前の正規検証つきで検索可能テキストとベクター PDF/A-4 に変換するようにしました
Version 2.828.0
Added
- 4 コンポーネント CMYK と ICC の透過グループ/ページグループを、全ブレンドモード、ネストされたノックアウトジオメトリ、共有カラープロファイルバジェットつきでレンダリングするようにしました
Version 2.827.0
Added
- ロケール対応の XFA 日付/時刻/数値/テキスト picture を、埋め込みロケールセット、上限付きトランザクション的ロケール照会、保護された JavaScript IEEE 演算つきで実行するようにしました
Version 2.826.0
Added
- Unicode の配列値 choice 選択を読み書きし、ソート済みオプションインデックスを維持し、可視/スクロール状態のリストボックス選択に一致する外観を生成するようにしました
Version 2.825.0
Added
- Windows の JSON/C ABI ジョブを通じて暗号化ドキュメントに署名するようにしました。元の改訂、AES セキュリティ設定、ドキュメント ID、署名権限は保持されます
Version 2.824.0
Added
- ネイティブ Linux HTML ドキュメントを作成し、可視またはフィット済みの検索可能 Unicode テキストを挿入し、上限付きキャンセル可能な Tesseract OCR を実行し、Pascal/コールバック API 経由で独立検証済みラスタ PDF/A-4 出力を作成できるようにしました
- グラフィックス状態の Alpha/Luminosity マスク、上限付き transfer function、加算透過とページグループ、ノックアウト形状、拡張 JPEG 2000 サンプル、埋め込みカラーとアルファをレンダリングするようにしました
- インクリメンタル DSS/VRI 公開の前に指定された証明書/OCSP/CRL 証拠を検証するようにしました。既存の署名と AES 暗号化は保持されます
- 明示的に型付けされた XFA ホスト/FormCalc トランスポートコールバックを、上限付きリクエスト、記録済み応答、トランザクション的リプレイつきで実行するようにしました
Fixed
- Free Pascal QuickJS API が返す Unicode 値と例外診断を保持するようにしました
Version 2.823.0
Added
- ヘッドレス CMS 署名に検証済み RFC 3161 タイムスタンプを埋め込むようにしました。メッセージインプリント、ノンス、TSA 認可、信頼、指定失効証拠のチェックを備え、必須タイムスタンプが失敗した場合は出力先ファイルを保持します
- XFA スクリプトオブジェクトのレキシカル状態、ネストされたクロージャ、独立した繰り返しインスタンスモジュールを、決定論的かつ上限付きのトランザクション的リプレイで保持するようにしました
- 明示的な字間/語間を、計測および生成されたヘッドレス Unicode テキスト外観に適用するようにしました
Fixed
- FormCalc の At 関数で仕様に正しい source/search 引数順を使い、空の検索文字列には先頭位置を返すようにしました
Version 2.822.0
Added
- 汎用 QuickJS とコンパイル済み FormCalc の XFA イベントを、ライブな繰り返しインスタンス DOM 操作、トランザクション的な標準フォームパケット永続化、自動 initialize/calculate/validate/ready ライフサイクル、上限付き実行とキャンセルつきで実行するようにしました
Fixed
- XFA 財務関数のパラメータとキャッシュフロー計算式、グレゴリオ暦の日付原点、負の剰余動作を仕様に沿って適用するようにしました。Delphi と Free Pascal の双方で倍精度を保持します
Version 2.821.0
Added
- バージョン付き Linux C ABI、実際のコールバックベースの text/form/render/sign 操作、上限付きキャンセルと失敗ロールバック、HarfBuzz/FriBidi シェーピングによる multiline/comb/回転/choice/button 外観、PFX アイデンティティ、新しい可視署名フィールド、DocMDP 認証 (certification) で、ネイティブヘッドレスドキュメントワークフローを拡張しました
- 上限付きイメージマスク、ソフトマスク、Indexed/ICC カラー、PDF ブレンドモード、分離 RGB 透過グループ、Type3 グリフ、テキストクリッピングをレンダリングし、検証済みネイティブドキュメントパス経由で JPEG/JPEG 2000/CCITT/JBIG2/RunLength 画像ストリームをデコードするようにしました
Version 2.820.0
Added
- サポート対象のネイティブヘッドレス単一行 Unicode AcroForm フィールドを、正規の埋め込み TrueType 外観、正確なグリフ幅、CIDToGID/ToUnicode マッピング、トランザクション的な複数ウィジェット更新、保持された AES セキュリティ、制御されたフォント埋め込み、Linux/Windows 上の上限付きアトミック保存つきで入力できるようにしました
Version 2.819.0
Added
- サポート対象の PDF パス、横書きテキスト、画像、Form、既存アノテーション外観を、Linux 上のネイティブ Cairo/FreeType CPU サーフェスで PNG にレンダリングするようにしました。上限付き作業量とキャンセルを強制し、ソースを保持し、PNG ファイルをアトミックに公開します
Fixed
- PDF 幅が存在しない場合、12 種の標準 Helvetica/Times/Courier スタイルに正規の Adobe AFM 送り幅を使うようにしました。代替フォントメトリクスによる累積テキスト位置ずれを防ぎつつ、明示的/埋め込みフォント幅は保持します
Version 2.818.0
Added
- 既存の未署名フィールドと明示的な PEM 資格情報を使い、正規のネイティブヘッドレスインクリメンタル CMS/CAdES PDF 署名を Linux/Windows 上で公開するようにしました。以前の改訂と AES-256 セキュリティを保持し、正確な署名バイトを検証し、既存の出力先を上限付きアトミック公開で保護します
Version 2.817.0
Added
- 検証済みインクリメンタル PFX 署名、既存署名フィールド、2 ドキュメント比較、6 種のネイティブ比較モード、両面契約 JSON/HTML/注釈付き PDF レビューを備えた、上限付き JSON/C ABI ドキュメントジョブを完成させました。協調的キャンセル、リソース制限、アトミックなファイル公開を含みます
Version 2.816.0
Added
- ネイティブヘッドレス PDF 署名を、正確な ByteRange/Contents 束縛とストリーミング OpenSSL 3 で検証し、明示的な PEM 資格情報から正規のデタッチド CMS/CAdES 署名を生成するようにしました。Linux/Windows で、証明書の信頼を完全性と分けて報告します
Version 2.815.0
Added
- 上限付き XFA インスタンス表示ヘルパーを、条件付きイベント、明示的な繰り返しバインディング、独立したインスタンス存在/アクセス、安定した永続 ID、トランザクション的リフロー、ホストキャンバス描画、アクセシビリティレコードに使用するようにしました
Version 2.814.0
Added
- ネイティブヘッドレスの AES-256 R5/R6 ドキュメントを Linux/Windows 上で開き、owner/user 権限を検証し、暗号化圧縮オブジェクトをデコードするようにしました。暗号化インクリメンタルフォーム値を、正確なソース先頭部保持と上限付きアトミック出力つきで保存します
Version 2.813.0
Added
- 上限付きページ矩形内で、ベースラインと選択された共有 Form 呼び出しを跨いでテキストをリフローするようにしました。フォントと幅を変更し、保守的な衝突レポートを確認でき、シールド済みプレビューをトランザクション的コミット/ロールバック付きで使用します
Fixed
- オブジェクト直列化後の繰り返し保存でも、読み込み済みドキュメントへの編集を保持するようにしました。ストリームからファイルへの保存や、出力失敗後のリトライも含みます
Version 2.812.0
Added
- 互換性のある読み込み済みドキュメントを、元のテキスト/ベクター/画像/埋め込みリソースを保持したまま PDF/A-4 に変換するようにしました。可視アノテーション/ウィジェット外観を合成し、検索可能 OCR を維持または追加し、明示的な損失を報告し、アトミックなファイル公開前に保持結果を検証します
Version 2.811.0
Added
- クロスリファレンスストリーム、ハイブリッドリファレンスセクション、圧縮オブジェクトストリームをネイティブヘッドレスドキュメント API で読み込むようにしました。上限付きメンバーインデックスと改訂優先順位を検証し、正確な広桁数値ソース値を保持し、Linux/Windows でソース保持の独立インクリメンタル出力を保存します
Version 2.810.0
Added
- スキャンの向き、連続角度の傾き、影、ボーダー、明示的な透視四角形を、上限付き可逆ジオメトリで補正するようにしました。信頼できる Tesseract 向き証拠を使用し、OCR の単語、ベースライン、ページ四角形、セマンティックレイアウトを元のスキャンにマッピングして、編集可能な構造化出力を得られます
Version 2.809.0
Added
- ローカル Tesseract と RapidOCR の CLI/DLL エンジンを、JSON/C ABI OCR ジョブで設定できるようにしました。Unicode 検索可能テキストとスキャンピクセルを保持し、サポート対象アダプタを検出し、明示的な設定を検証し、レンダリング/認識バジェットをアトミック出力と公開失敗ロールバックつきで強制します
Version 2.808.0
Added
- クラシック xref の PDF をネイティブ Linux コンソールアプリケーションで読み込み、継承リソースつきで Unicode のページ/ネスト Form テキストを抽出し、AcroForm テキスト値を確認・入力できるようにしました。型付き診断、キャンセル、リソースバジェット、アトミック置換つきで、ソース保持のインクリメンタル出力を公開します
Version 2.807.0
Added
- 1 つのラスタ内の複数の分離ネイティブバーコードを検出し、異なる位置の繰り返しペイロードを保持し、4 隅ジオメトリつきで回転/投影された ECC 200 Data Matrix シンボルをデコードするようにしました。キャンセルとアトミックな結果公開つきで合計スキャンバジェットを強制します
Version 2.806.0
Added
- 契約書の段落比較と、単語・文レベルの編集差分検出に対応しました。挿入・削除・置換・移動の記録、新旧両側のページ位置、繰り返し条項の保持、明示的に指定した定型条項の除外、上限付き HTML レビュー、原文照合済みの注釈付き PDF 出力を備えています
Version 2.805.0
Added
- ネストされた flex/grid パネル、折り返し行、grid 列スパン、並列ボックスに配置した画像やフォームコントロールを含む HTML 業務テンプレートを読み込めるようになりました。明示的に指定された font-face リソースは遅延埋め込みを経ても保持され、デコード済み画像用には独立したキャッシュバジェットが割り当てられます
Version 2.804.0
Added
- 共有 PDF オブジェクト、Direct File I/O、コンテンツとフォントのデコード、圧縮、暗号化、writer コアを、POSIX のマッピングと同期を備えたネイティブ Linux コードとしてビルドするようにしました。Windows API を維持しつつ、従来形式の xref エントリを正しくシリアライズします
Version 2.803.0
Added
- バージョン管理された請求書プロファイルと国別ルールレイヤーを登録し、明示的な CII XML またはハイブリッド請求書を、スコープを認識するレポート付きで検証できるようになりました。公式の XRechnung 3.0.2 とフランス CTC 請求書ルールは、明示的に構成した Saxon エンジンで実行し、公開プロファイルの選択と、失敗時に確実に閉じる(failure-closed)診断を備えています
Version 2.802.0
Added
- 型付きテーブルを、ネイティブ API、JSON ジョブ、C ABI 経由で Office に依存しない XLSX ワークブックへ書き出せるようになりました。値の型、通貨とパーセントの書式、結合セル、大きな整数の正確な値、オプションのソースメタデータを保持し、上限付きステージングとフェイルセーフな公開処理で動作します
Version 2.801.0
Added
- JSON ジョブと C ABI で、読み込み済みページの選択範囲をセマンティック HTML、XHTML、XML、JSON として、型付きテーブルを CSV または JSON として書き出せます。ネイティブオプション、上限付きステージング、キャンセル、署名フィールドとの互換、ソース状態の保持、アトミックなファイル公開を備えます
Version 2.800.2
Fixed
- グラフのロールバック前に読み込み済みフォームリレーションシップキャッシュを無効化するようにしました。署名ジョブや失敗したドキュメント編集の後でも、元のドキュメントを安全に照会・再利用できます
Version 2.800.1
Fixed
- 順序付き並列レンダリングがメモリ予約を入力順に受け入れるようになりました。先行ページの納品待ちの間に後続ページがバジェットを使い果たすことがなく、Delphi と FPC でキャンセルと上限付き出力の挙動を維持します
Version 2.800.0
Changed
- SVG テキスト、読み込み済み FreeText 外観、読み込み済みテキスト置換が、ドキュメントのシェーピング機能、スクリプト自動シェーピングフラグ、GSUB のスクリプトと言語選択を保持するようになりました。選択した各フォントの OpenType データを使用し、フォントを切り替えても Unicode マッピングを維持します
Version 2.799.0
Changed
- SVG ベクター取り込みで、ソリッドおよびグラデーションストロークの継承されたダッシュ配列、ダッシュオフセット、マイターリミットを保持するようになりました。ネイティブ描画では、位相のずれたダッシュパターンと長さゼロのダッシュパターンも再現します
Version 2.798.0
Changed
- スタイル付き Unicode テキストが、フォールバックレイアウトを経てもボールドとイタリックのフォントを保持するようになりました。スタイル対応の
ResolveFontForCodePointとAnalyzeUnresolvedGlyphsオーバーロードでプリフライトと出力の結果が一致し、FPC の XML 文字参照はテキストを壊す代わりに Unicode スカラー値を保持します
Version 2.797.0
Fixed
- SVG 取り込みが、オブジェクトとグループの不透明度を分離したベクター透明 Form 経由で合成するようになりました。塗りとストロークのアルファを独立して保持し、明示的なバジェットのもとでネストされたリソース、クリップ、マスク、リンクの挙動を維持します
Version 2.796.0
Added
- 上限付きの PDF/A-4 ラスターアーカイブ変換を、JSON ジョブと C ABI 経由で利用できるようになりました。情報損失の明示的な受諾、構造化されたバジェットエラー、協調キャンセル、ソース状態の復元、アトミックなファイル出力を備えます
Version 2.795.0
Added
- 読み込み済み PDF を、検証済みの PDF/A-4 ラスタードキュメントへ正規化できるようになりました。厳密なネイティブ描画、検証済み sRGB カラー、上限付きデコードとラスターリソース、キャンセル、ソースエイリアス保護、アトミックなファイル公開を備えます。変換レポートには、意図的に除去したインタラクティブコンテンツと添付コンテンツが示されます
Version 2.794.0
Changed
- HTML5 取り込みが、実測に基づく混在方向テキスト行、ウィドウ・オーファンを考慮したページ割り、オプションのハイフネーション、上限付き flex と grid レイアウト、観測可能な CSS 診断を使うようになりました。FPC のネイティブビットマップは、直接 GDI 描画と LCL イメージキャッシュを同期します
Version 2.793.0
Changed
- 上限付きの動的 XFA instance-manager 追加・削除とテンプレート存在イベントを追加しました。レイアウトの再バインド、編集状態の保持、アトミックなロールバック、リソース制限、永続的な XDP 出力を備えます
Version 2.792.0
Changed
- SVG 取り込みを拡張し、実測に基づく埋め込み Unicode フォント、PNG/JPEG リソース、グラデーションストローク、真の Alpha および Luminosity ソフトマスクに対応しました。ネイティブのグループアルファと FPC ビットマップサーフェスの合成も修正しています
Version 2.791.0
Changed
- プレビュー可能な読み込み済み Unicode テキスト置換を追加しました。埋め込みフォント、折り返しと幅のポリシー、マッチごとの診断、古くなったプランの検出、リソース上限、アトミックなコミットを備え、JSON と C ABI からプレビュー・適用の各操作を実行できます
Version 2.790.0
Changed
- グリフレンダリングに標準の CFF Type 2 スタック操作と transient 配列操作を実装し、フォントサブセット化の際に演算で導出されたローカル・グローバルサブルーチンの依存関係を保持するようにしました
Version 2.789.0
Changed
- 内蔵バーコードのデコード対応を拡張し、Code 128、EAN/UPC、透視歪みを考慮した QR 復元、Data Matrix ECC 200、Reed-Solomon 訂正と上限付きペイロードデコードを備えた PDF417 を扱えるようになりました
Version 2.788.0
Changed
- Windows FPC が、ABI 検証済みコーデックブリッジ経由でネイティブの TIFF、JPEG/JPX、ICC 変換、JBIG2、Zopfli に対応しました。ページ、順序付きページ、タイル、バンド、JPEG 2000 タイルの各レンダリングを実際のワーカースレッドで実行し、バジェット、順序付きコールバック、キャンセル、決定論的なピクセル出力を備えます
Version 2.787.0
Changed
- C ABI と JSON ジョブプロセッサが、ケイパビリティ、描画、Unicode テキストとフォーム、OCR レイヤー、墨消し、PFX 署名のためのスキーマバージョン付きドキュメント操作を共有するようになりました。明示的なリソースバジェット、コールバック失敗時のロールバック、アトミックなファイル出力を備え、複数ページのコールバック入力も正しく読み込まれます
Version 2.786.0
Changed
- 読み込み済み FreeText の編集が、埋め込み Unicode とリッチテキスト外観をアトミックに再構築するようになりました。折り返し、配置、不透明度、回転、コールアウト、インセット、明示的なオーバーフローポリシーに対応します。書き換えたストリームペイロードは変更前に保存されるため、トランザクションのロールバックで元のテキストを復元できます
Version 2.785.0
Added
- SearchableOCR コンソールデモに、RapidOCR に加えて内蔵 OCR と Tesseract DLL / CLI エンジンを追加しました。3 ページのスキャンサンプルを生成し、ページ選択、信頼度フィルタリング、認識バジェット、詳細な変換統計を利用できます
Version 2.784.0
Changed
- FDF と XFDF のバッチ取り込みが、取り込み失敗時にそれまでのフィールドと注釈の更新をロールバックするようになりました。呼び出し側が所有するトランザクションを尊重し、失敗したインターチェンジの結果メタデータをクリアします
Version 2.782.0
Added
- ローカル Tesseract OCR アダプタが、THPDFTesseractOptions によるページセグメンテーション、認識エンジンモード、ピクセル上限、タイムアウトの設定を受け付けるようになりました。1 行、1 単語、スパーステキスト、縦書きブロックの各認識に対応します
Fixed
- ネイティブ Tesseract アダプタは、ベースラインが主に縦向きの場合にテキストボックスの交差方向の寸法を使うようになりました。縦書き単語の長さによって検索可能 PDF のテキストサイズが膨らむのを防ぎます
Version 2.781.0
Changed
- Delphi と C++Builder のデモコレクションに、業務ラベルを扱う複数ページのバーコードフィールドガイドと、階層ブックマーク、名前付きデスティネーション、実際に機能する関連ドキュメントリンクを備えたナビゲーションハンドブックを追加しました。最小構成の PDF/A レシピは Miscellaneous へ移動し、重複するアウトライン・メタデータのスタンドアロンプロジェクトは廃止しました
Version 2.780.1
Fixed
- Showcase の注釈ページで、コンテンツプレビューのキャプションと実際の FreeText およびスタンプ外観を分離しました。PDF リーダーでラベルが重なるのを防ぎつつ、注釈外観が非表示のときも各サンプルを識別できます
Version 2.780.0
Changed
- デモカタログは完全なワークフローを優先するようになり、最小構成・単一機能・レガシーな 17 個のサンプルを Miscellaneous サブフォルダーへ分離しました。重複していた ImageCompression と AddDelPages プロジェクトは削除しましたが、その機能はメインデモとリグレッションスイートに残っています
Version 2.779.0
Added
- Delphi と C++Builder の Showcase デモが、埋め込みプレビュー、検索ハイライト、パーソナライズした表紙、ワンクリックのレビュー透かし、検証付きページ書き出し、編集内容を保持する AES-256 R6 保護コピーを備えた全 10 章のドキュメントスタジオを開けるようになりました。両者とも同じドキュメントエンジンを使用し、ウィンドウを開かずに生成するコマンドにも対応しています
Version 2.778.1
Removed
- 重複していた Delphi と C++Builder の TestNumeric GUI デモを廃止しました。代わりに、非圧縮と Flate 圧縮の PDF を保存して再読み込みした後の小数ページ寸法と描画オペランドを検証する自動数値リグレッションテストを導入し、数値配列のカバレッジも永続化しています
Version 2.778.0
Changed
- ページ操作と顧客レポートのデモが実用的なワークフローを提供します。PageOperations は抽出・削除・移動・挿入・追加のコマンドで実際の PDF を、再読み込み検証付きで編集します。DBTable はテーブルエンジンで折り返し行、繰り返しヘッダー、自動ページ分割を実演し、データベース不要のデフォルトサンプルを同梱します
Version 2.777.1
Fixed
- OCR が、不正な UTF-8、未対応の制御文字、非互換のネイティブ検出モデル出力をテキスト公開前に拒否するようになりました。ページをまたぐ単語上限を強制する際には、破棄された認識結果も織り込みます
Version 2.777.0
Fixed
- 組み込み OCR は、白紙や認識不能なページを成功した空の結果として受け入れるため、スキャン文書のバッチ処理を続行できるようになりました。Windows FPC のビットマップピクセルを保持し、画像解析全体を通してキャンセルと時間制限をチェックします
- ネイティブ RapidOCR の角度分類は、短い行のアスペクト比を保持し、テキストクロップを回転する前に、上下逆であるという確度の高い予測を要求するようになりました
- ローカルの Python RapidOCR アダプタは、個々の文字を公開して意図しない空白が入り得る代わりに、認識した行間と句読点を保持するようになりました。Tesseract DLL アダプタは、テキスト公開の前に C1 制御文字を拒否します
Version 2.776.0
Added
- スキャン PDF のテキストレイヤーは、保存して再読み込みした後、マークを付けた HotPDF OCR ストリームをアトミックに置き換えられるようになりました。認識が失敗または空のときは既存のレイヤーを保持し、置き換えたページを報告します。変換にはネイティブの多言語 RapidOCR コンソールサンプルを使い、既存のファイルを上書きしません
Fixed
- 同一行内に単語間隔を持つ隣接するラテン文字・キリル文字の OCR 単語には、フレーズ検索とコピーを安定させるため明示的な Unicode スペースが与えられます。隣接する CJK 単語は分割されずに保たれます
- Windows FPC の JPEG スキャンレンダリングは、OCR ビットマップ形式へ変換するときデコード済みピクセルを保持するようになりました。LCL のピクセル形式変更による空白の認識入力を防ぎます
Version 2.775.0
Added
- ネイティブ RapidOCR に、簡体字中国語・繁体字中国語・英語・フランス語・ドイツ語・スペイン語・ポルトガル語・イタリア語・オランダ語・トルコ語・日本語・韓国語・ロシア語・アラビア語・ヒンディー語向けのローカルモデルプリセットが追加されました。対応する文字辞書、検証済みモデルインストール、水平読み順、多言語 Unicode 出力を備え、Delphi、C++Builder、Windows FPC/Lazarus で利用できます
Fixed
- ローカルプロセス OCR アダプタは、ワーカー終了後に診断ファイルが一時的にロックされたままのとき、一時出力のクリーンアップを再試行するようになりました
Version 2.774.0
Added
- ネイティブ RapidOCR DLL アダプタは、ローカルの ONNX モデルをプロセス内に保持し、Python なしでビットマップスナップショットを認識します。オプションの角度分類と Unicode 検索可能 PDF に対応し、協調キャンセル付きで出力バジェットを検証します。Delphi、C++Builder、Windows FPC/Lazarus の各ビルドで利用できます
Version 2.773.0
Added
- ローカル RapidOCR アダプタに、明示的な ONNX モデル設定、オプションの角度分類、ローカル文字辞書とフォント、CPU スレッド制御、オフラインプリフライト、Unicode 検索可能 PDF 向けの認識バジェットが追加されました。Delphi、C++Builder、FPC/Lazarus の各ビルドで利用できます
Version 2.772.1
Fixed
- Tesseract DLL アダプタと CLI アダプタが、Windows FPC/Lazarus の Win32 および Win64 ビルドで動作するようになりました。Unicode OCR 単語を保持し、検索可能 PDF テキストレイヤーのために現在の LCL 画像ピクセルを読み取ります
Version 2.772.0
Added
- オプションのネイティブ Tesseract DLL アダプタにより、多言語 OCR が追加されました。ページセグメンテーションとエンジンモードを設定可能で、Unicode 単語、confidence、単語境界、ベースラインを提供し、検索可能なスキャン PDF 向けに協調キャンセル、認識デッドライン、出力バジェットも備えます
Version 2.771.1
Changed
- 組み込み OCR が、明るい背景でも主に暗い背景でも、標準・ボールド・イタリック・ボールドイタリックの ASCII テキストを認識するようになりました。十分なグレースケールコントラストのある薄い文字も受け入れ、確度の低い保持グリフを含む単語は、文字を黙って落とす代わりに単語ごと省略します
Version 2.770.175
Fixed
- LoadedDocInspector と SignatureValidator は、読み込めない PDF に対して失敗の終了コードを返し、無効なコマンド引数を拒否するようになりました。以前は成功した空の検査として報告されていました
Version 2.770.174
Fixed
- LoadedImageExport は、ページをエクスポートする前にすべての画像出力先を検証するようになりました。パスの別名が入力 PDF や他の選択ページを上書きすることを防ぎ、サポートされない形式名を拒否します
Version 2.770.173
Fixed
- レンダリング済みページのディスクキャッシュは、リカバリ、参照、保存、無効化、追い出しの各処理で、リンクされたドキュメントフォルダをスキップするようになりました。キャッシュ外のファイルが保護されます
Version 2.770.172
Fixed
- JSON ジョブは、不正な構文、末尾の余分なコンテンツ、有限の Double 範囲外の数値、過度なネストを、操作を実行する前に拒否するようになりました。失敗時には部分的にパースされた値を解放します
Version 2.770.171
Fixed
- PreflightCLI は、書き込みの前にレポート出力計画全体をチェックするようになりました。ファイルの別名から入力 PDF を保護し、競合するレポート出力先を拒否します。再帰スキャンは循環を避けるため、リンクされた子ディレクトリをスキップします
Version 2.770.170
Fixed
- CopyPage は、エクスポートの前にファイルの同一性をチェックし、競合する出力別名を拒否するようになりました。ピリオドを含むディレクトリでも、拡張子のない入力に自動命名される出力が入力の隣に置かれます
Version 2.770.169
Fixed
- JSON ジョブの値は、エスケープされた null 文字を保持し、符号付き 64 ビット範囲外の有限数を整数オーバーフローなしでシリアライズするようになりました。範囲外の整数パラメータにはデフォルト値を返し、プロセスのロケールは変更しません
Version 2.770.168
Fixed
- 単純オブジェクトパーサのリカバリは、括弧なし配列本体の中の余分な閉じ括弧で終了するようになりました。不正な区切り文字の直後にある有効な数値と辞書キーは保持されます
Version 2.770.167
Fixed
- HotPDFCLI は、入力ファイルと同じになる出力パスを拒否し、バッチエクスポートを開始する前に生成されるすべてのパスをチェックするようになりました。コマンドがソースデータを切り詰めたり置き換えたりすることを防ぎます
Version 2.770.166
Fixed
- ExtractText サンプルは、出力がディレクトリジャンクションやハードリンクを使うときに入力 PDF を保護するようになりました。LoadedImageExport は、読み込めないドキュメントや不完全なページエクスポートに対して失敗を報告します
Version 2.770.165
Fixed
- ダイレクトファイル読み取りは、I/O 失敗後に不完全なキャッシュ再充填を無効化するようになりました。符号付き 64 ビットオフセット上限付近のリードアヘッド範囲も安全に境界付けられます
Version 2.770.164
Fixed
- RunLength デコードは、デコード後のペイロードサイズだけを確保し、出力を確保する前に不正なランを検証するようになりました。早期に終端を持つストリームへの過度なメモリ予約を避けられます
Version 2.770.163
Fixed
- Delphi と C++Builder のサンプルは、同梱の画像、メタファイル、カラープロファイル、オプションの署名フィクスチャを、プロジェクトフォルダとネストしたビルド出力ディレクトリの両方から見つけられるようになりました
Version 2.770.162
Fixed
- HugeFileBenchmark サンプルは、ベンチマークバッチを開始する前に、入力ドキュメントのいずれかと一致する生成 PDF パスを拒否するようになりました
- C++Builder サンプルは、生成 PDF のために相対入力サブディレクトリを保持するようになりました。同じ名前の再帰入力が 1 つの出力ファイルを共有することを防ぎます
- 失敗した操作、メモリ制限違反、無効な 0 ページ読み込みは、ベンチマークレポートを保持したまま非ゼロの終了コードを返すようになりました
Version 2.770.161
Fixed
- Delphi と C++Builder の Preflight CLI は、入力 PDF と一致するレポートおよび集約の出力パスを拒否するようになりました。レポートがソースドキュメントを上書きすることを防ぎます
Version 2.770.160
Fixed
- ASN.1 パースは、サポート対象の 32 ビットタグ範囲を超える high-tag-number エンコーディングを、ラップしたタグ番号を受け入れる代わりに拒否するようになりました
Version 2.770.159
Fixed
- C++Builder の Preflight CLI は、再帰レポートとダッシュボードリンクのために相対サブディレクトリを保持するようになりました。同じ名前の PDF が互いを上書きしなくなります
- Delphi と C++Builder の Preflight ダッシュボードは、特殊文字や非 ASCII ディレクトリ名を含むレポートリンクを正しくエンコードします
- C++Builder の標準検証の失敗は終了コード 3 を返すようになり、読み込みに失敗した入力を含むすべてのレポート形式で、ダッシュボードに無効として表示されます
Version 2.770.158
Fixed
- C++Builder の PDF 結合サンプルは、実行ファイルのディレクトリから相対入力パスを解決するようになりました。ファイルダイアログがワーキングディレクトリを変更しないようにもなっています
- 生成される各ブックマークは、自分の入力ドキュメントからコピーした最初のページを指すようになりました
Version 2.770.157
Fixed
- オブジェクトパーサは、PDF リテラル文字列内のエスケープされていない CR と CRLF の行末を、エスケープされた復帰コードと行継続を保持したまま LF に正規化するようになりました
Version 2.770.156
Fixed
- LZW ストリーム圧縮は、空の入力に対して実際に書き込まれたバイト数を報告するようになりました
- InitialCodeSize を 2 に設定しても、LZW の圧縮と展開が正しくラウンドトリップするようになりました。圧縮は、出力を書き込む前に縮小アルファベット外のリテラルを拒否します
Version 2.770.155
Fixed
- Win64 ビルドで、1e-100 や 5e99 のように指数が 100 に近い数値を含む SVG や XPS のパスデータをインポートするとき、アプリケーションが浮動小数点例外をアンマスクしていても浮動小数点オーバーフローが発生しなくなりました
- こうした数値は実際の値として読まれるようになりました。大きな負の指数を持つ長い仮数も正しくインポートされます
Version 2.770.154
Fixed
- デコード領域が設定されていない場合、CropBox が MediaBox と異なるページでも DecodeLoadedPageBarcodes が正しいバーコード境界を報告するようになりました。以前は位置がクロップボックスオフセット分ずれたり、誤ったページ高さに対してスケールされたりしていました
- (顔検出を有効にした)DetectLoadedRedactionFindings の顔検知結果は、こうしたページで実際に検出された顔の上に乗るようになりました。以前はそこからずれていました
- 両機能とも可視ページ領域(MediaBox でクリップした CropBox)をレンダリングし、検出位置を同じ領域を通してマップし直すようになりました。カスタム IHPDFFaceDetector に渡されるページボックスは、受け取るビットマップと一致します
- 明示的な領域を指定したバーコードデコードと、CropBox がないページ、CropBox が MediaBox と等しいページの動作は変わりません
Version 2.770.153
Fixed
- CropBox が MediaBox と異なるページでも、ApplyLoadedOCRTextLayer が不可視テキストレイヤーを正しく配置するようになりました。以前は検索可能テキストがクロップボックスオフセット分ずれたり、誤ったページ高さに対してスケールされたりしていたため、選択範囲や検索ヒットが見えている単語と一致しませんでした
- OCR ラスタは可視ページ領域(MediaBox でクリップした CropBox)からレンダリングされ、認識された単語位置は同じ領域を通してマップし直されます
- THPDFOCRRequest でカスタム IHPDFOCREngine に渡されるページボックスは、レンダリングされた可視領域になり、受け取るビットマップと一致します
- CropBox がないページや CropBox が MediaBox と等しいページの動作は変わりません
Version 2.770.152
Fixed
- GetLoadedInvoiceSummary は、買い手名(BT-44)をデコード済みテキストとして返すようになりました。「Müller & Söhne」のような非 ASCII 文字を含む名前が、XML エスケープがそのまま残る生の UTF-8 バイトとして返されることはありません
- 買い手名は、売り手名や他のサマリーフィールドと同様に、常に買い手取引当事者そのものから読まれるようになりました
- ValidateVisualXmlConsistency も恩恵を受けます。アクセント付き文字やエスケープ文字を含む買い手名が、書かれたとおりの形で可視ページテキストと比較されるようになりました
Version 2.770.151
Fixed
THPDFTableは、RowSpanで結ばれた行群を 1 ページにまとめて保持するようになりました。グループが残りスペースに収まらないときは、繰り返しヘッダーとともにグループ全体が次のページへ移動します- 複数行にまたがるセルは、その行が次のページへ続く間、下マージンを越えて描かれなくなりました
- 1 ページ全体より高い行スパングループは、従来どおり行ごとに分割され、またがるセルは各ページの下マージンで切られます
TotalHeightRenderedは、最後のページでの移動したグループを反映します
Version 2.770.150
Fixed
ColSpanやRowSpanが 0 以下のTHPDFTableセルは、テーブルグリッドがすでに配置したとおり単一セルとして描かれるようになりました。以降のセルが誤った列へ押し出されることはありません- 負のスパンでテーブルがグリッド外を読むことはなくなりました。最終列や最終行を越えるスパンは、計測時も描画時もテーブル端で切られます
- 最初の単語が列幅より広いセルは空行で始まらなくなり、行の高さが折り返しテキストに必要な分を超えなくなりました
Version 2.770.149
Security
- DOCTYPE で内部エンティティを宣言する XFA フォームは、大きなエンティティを何度も参照してメモリを爆発させられなくなりました。内部エンティティに置換されるテキストはドキュメントごとに 16 MB に制限されます
- 1 MB を超える単一の内部エンティティ値は拒否されます
- どちらかの上限を超えたドキュメントは、ギガバイト規模のテキストへ展開される代わりに
EHPDFXFAErrorで読み込みに失敗します。通常のエンティティ利用には影響しません - エンティティ参照や文字参照を多数含むテキストも、線形時間でデコードされるようになりました
Version 2.770.148
Fixed
RecalculateLoadedFormFieldsIncrementalは、名前の列挙順にかかわらず、渡された変更フィールドをすべて同じ方法で扱うようになりました- 計算フィールドがソースフィールドの 1 つと一緒に直接書き込まれた場合、そのソースより後に列挙されたときだけ再計算されることはなくなり、書き込まれた値が保持されます
- 変更されたフィールドに依存するフィールドは、従来どおり計算順序で 1 回だけ再計算されます
Version 2.770.147
Fixed
- スタートコード A を持つ GS1-128 バーコード(
THPDFBarcodeタイプ 20)は、Code 128 A と同様にコードセット A でデータをエンコードするようになりました - こうしたバーコード内の小文字は、スキャナがセット A の制御文字として読むセット B コードワードの代わりに、セット B への SHIFT で書かれるようになりました
- その結果、小文字を含む GS1-128 A シンボルをスキャンすると元のテキストが返ります
Version 2.770.146
Fixed
- EAN-2 と EAN-5 のアドオンバーコード(
THPDFBarcodeタイプ 18 と 19)は、Checksum有効時に計算された桁をTextに追記しなくなりました - こうしたバーコードを繰り返し描いても、再描画のたびにテキストが 1 桁ずつ伸びてバーのパターンが変わることはなく、毎回同じシンボルが得られます
- アドオンシンボルは定義上チェックキャラクタを持たないため、
Checksumは無視されます。パリティパターンは従来どおり値から導出されます
Version 2.770.145
Fixed
- XFDF エクスポートは、フォームフィールド値と注釈テキストを PDF テキスト文字列としてデコードするようになりました(ISO 32000-1 7.9.2.2)。UTF-16BE の値、16 進文字列、ビュレットのような PDFDocEncoding 文字は、16 進数字やコードページの化けた文字としてではなく、実際の Unicode テキストとして書き込まれます
- XFDF にエクスポートされる注釈の内容、作者、件名、状態、オーバーレイテキストは、中国語やキリル文字のコメントのような非ラテン文字を保持します
- XML 宣言で始まるリッチテキスト(
/RC、/RV)は宣言を除いて埋め込まれるようになりました。エクスポートされる XFDF が整形式 XML のまま保たれます - XFDF インポートは、テキストをシステム ANSI コードページ経由で変換しなくなりました。フォームフィールドと注釈テキストのどちらでも、PDFDocEncoding で表現できる値はその形式で、それ以外は UTF-16BE テキスト文字列として保存されます
- エクスポートされた XFDF ファイルは、ANSI コードページ外の文字を
ImportLoadedFormFromXFDFとImportLoadedAnnotationsFromXFDFでやり取りしても、疑問符に化けなくなりました
Version 2.770.144
Fixed
- 請求書サマリーの名前などのテキストは、UTF-8 の請求書 XML からデコードされるようになりました。「Müller GmbH」のような売り手が、化けたマルチバイト文字として返されることはありません
- エスケープされたマークアップ文字と文字参照は解決されます。XML 中の「A & B」は「A & B」と報告されます
ValidateVisualXmlConsistencyは、アクセント付き文字やアンパサンドを含む売り手名が可視ページテキストに印字されているのに欠落している、と報告しなくなりました- サマリーレコードのフィールドは ANSI 文字列のため、サマリーテキストはシステム ANSI コードページで返されます。そのコードページで表現できない文字は疑問符になります
Version 2.770.143
Fixed
GetLoadedInvoiceSummaryは、請求書レベルの正味合計(BT-106)を、最初の明細行の金額ではなくヘッダーの金額合計から報告するようになりました- 税合計、総合計、支払額も同様にヘッダーの合計から読まれます。ZUGFeRD 1.0 の請求書も含まれます
- 発行日(BT-2)は、ネストした
DateTimeStringマークアップを含める代わりに、20260305のような素の日付値として返されるようになりました HPDFFacturXXMLElementTextは、子タグを取り除いた要素全体の文字データを返すようになりました。要求された名前の先頭一致だけで要素に一致することはなくなりました
Version 2.770.142
Fixed
- XFDF エクスポートは、絵文字や珍しい CJK 漢字のような基本多言語面(BMP)外の文字を、サロゲートの各半分を個別にエンコードする代わりに、有効な 4 バイト UTF-8 として書き込むようになりました。厳格な XML リーダーもファイルを受け入れます
- XFDF インポートは、
😀のような U+FFFF を超える文字参照を、無関係な BMP 文字へ切り詰める代わりに、完全な文字へデコードするようになりました - Unicode スカラー値を指さない文字参照や、エクスポート時のペアを成さないサロゲートは、テキストを壊す代わりに U+FFFD になるようになりました
- 以前のバージョンが書き出した XFDF ファイルも、従来どおりインポートできます
Version 2.770.141
Fixed
C:\Data\2024\001のような Windows パスなど、バックスラッシュを含むフィールド値と注釈テキストは、数字列が制御文字に化けることなく、XFDF のエクスポートとインポートをそのまま通り抜けるようになりました- バックスラッシュがエスケープとして読み戻されてしまう場面では、XFDF エクスポートは PDF リテラル文字列と同様に、8 進エスケープ
\134として書き込むようになりました(ISO 19444-1 5.8.2) - XFDF インポートがデコードする 8 進エスケープは、この形式が制御文字とバックスラッシュに使うものだけです。サードパーティファイルのその他のバックスラッシュ列はそのまま保持されます
- 同じ軽量 XML リーダー経由で読む SVG テキストも、バックスラッシュ列を失わなくなりました
Version 2.770.140
Fixed
- RenderCacheFolder で有効になる永続的なレンダリング済みページキャッシュが、LoadFromFile、LoadFromStream、LoadFromRandomAccessSource で開いたドキュメントで動作するようになりました。以前は通常の読み込みではディスク層がスキップされ、ページがフォルダに書き込まれることも読まれることもありませんでした
- ファイルから読み込んだドキュメントは、サイズ、最終書き込み時刻、先頭と末尾のバイトで識別されます。変更されていないファイルを開き直すときは、ファイル全体をハッシュ化せずにキャッシュからページを読み取ります
- ストリームやランダムアクセスソースから読み込んだドキュメントは、コンテンツの SHA-256 で識別されます。これらのドキュメントでディスク層を使うには、読み込みの前に RenderCacheFolder を設定してください
- 読み込み後に編集されたドキュメントは、その読み込みの残りの間、ディスクエントリを読み書きしなくなりました。編集されたページが、元のファイルのキャッシュページとして提供されたり保存されたりすることはありません
- ディスクエントリはページレンダリングバックエンドと ICC プルーフィングワークフローにも依存するようになりました。異なるバックエンドや出力プロファイルが、別の設定でレンダリングされたページを再利用することはありません。暗号化されたドキュメントがディスクキャッシュに書き込まれることはありません
Version 2.770.139
Fixed
- 大きな XFDF ファイルのインポートが、ファイルサイズの 2 乗に比例して遅くなることはなくなりました。数千のフィールドや注釈を含むファイルも、秒や分ではなくミリ秒でパースできます
- 多数の改行やその他の文字参照を含むフィールド値は、線形時間でデコードされます
- XFDF パース中のピークメモリは、要素数 × ファイルサイズで増えることはなくなりました
- 同じ軽量 XML リーダー経由で読む SVG 入力も、同じ高速化の恩恵を受けます
Version 2.770.138
Fixed
DecodeLoadedPageBarcodesが 90 度や 270 度回転したページを再試行するとき、デコーダに渡されるラスタはAttemptRotationDegreesのドキュメントどおり、時計回りに回されるようになりました- それらの再試行でのみ見つかったシンボルは、点反転した位置ではなく、ページ上の実際の位置で報告されるようになりました
- こうしたシンボルについて報告される向きは、180 度ずれるのではなく、ページ上で読む方向と一致するようになりました
- ドキュメントされた時計回りの回転に依存するカスタムバーコードデコーダも、正しく回されたラスタを受け取るようになりました
Version 2.770.137
Fixed
- ドキュメント間のページコピー(CopyPageFromDocument、CopyPageByPhysicalIndex、ページインポートとマージメソッド)は、「<<」と「>>」や「[」と「]」を含むテキスト文字列を辞書や配列に変えなくなりました。以前は「Read <<this>> [now]」のような注釈コメントが壊れた辞書としてコピーされていました
- 注釈名や識別子のような 16 進文字列は、16 進数字のリテラル文字列として書かれる代わりに、16 進形式のままコピーされます
Version 2.770.136
Fixed
- 新しいページに作成される注釈(AddStampAnnotation、AddTextAnnotation、その他の THPDFPage 注釈メソッド)は、左下隅を先頭とする /Rect、つまり [llx lly urx ury] を書き込むようになりました。以前はいくつかのメソッドが上辺を下辺より先に書いており、たとえば [395 712 575 652] のようになっていました。ビューアは受け入れるものの、PDF/A バリデータや一部の処理ツールは拒否したり誤読したりします
Version 2.770.135
Changed
- THotPDF.RenderCacheFolder は AnsiString ではなく文字列型になりました(Delphi 2009 以降では UnicodeString、C++Builder でも UnicodeString)。システムコードページ外の文字をパスに含むキャッシュフォルダ、たとえば英語 Windows 上の中国語ユーザー名などが、疑問符に化けず指定どおりに使われます
- プロパティに AnsiString を代入するコードもそのままコンパイルできます。値は代入時に Unicode へ変換されます
Version 2.770.134
Fixed
- Zoom カテゴリを指定した SetOptionalContentGroupUsage は、ズーム範囲を PDF 仕様が定めるとおり数値の /min と /max として書き込むようになりました。以前は値全体が /Min の下にテキスト文字列として書かれ、ビューアはこれを無視するため、レイヤーのズーム範囲は効果を持ちませんでした
- Zoom の値は最小倍率、必要なら最大倍率がスペース区切りで続きます(例: '0.5 4')。数値で始まらない値は例外を発生させるようになりました
Version 2.770.133
Fixed
- 埋め込み CFF/OpenType フォントのサブセット化で、グリフがまだ使っているサブルーチンが落ちなくなりました。ヒント、hstemhm ヒント、カウンターマスクが 8 個を超えるグリフが誤ってスキャンされており、使用中のサブルーチンが空のものに置き換わり、グリフのアウトラインが欠けたり壊れたりして描画されることがありました
Version 2.770.132
Fixed
- (スポットカラーラント定義を持つ)RegisterNChannelColorSpace のオーバーロードは、「PANTONE 185 C」のようなスペースや区切り文字を含むカラーラント名を、/Colorants、/Solidities、/DotGain の各辞書のキーとして正しく書き込むようになりました。以前は生の名前がファイル構文を壊していました
- AddPDFX6ExternalOutputIntentSpotData も、solidity と分光データのカラーラントキーを同じ方法で書き込みます
Version 2.770.131
Fixed
- EnableXMPMetadata で書かれる XMP メタデータは、Title、Author、Subject、Keywords にシステムコードページのテキストが入っているとき(AnsiString として代入されたアクセント付き文字や中国語文字など)、有効な UTF-8 で運ぶようになりました。以前は生のコードページバイトがパケットを不正な XML にし、PDF/A バリデータや XMP リーダーに拒否されていました
- XML 1.0 が許さない制御文字は、これらの XMP 値から取り除かれます
Version 2.770.130
Fixed
- JBIG2Options.AccumulateGlobalsAcrossPages で書かれた JBIG2 画像は、後のページが前のページで使われていないシンボルを追加しても、正しくデコードできるようになりました。以前はそうしたページが最初のページの globals ストリームを参照し続け、そこには新しいシンボルがないため、ビューアでは乱れた表示や無表示になっていました
- ページがシンボルを追加するたびに、そのページまでの辞書全体を含む globals ストリームが書き込まれ、以降はそれが使われます。シンボルを追加しないページは引き続き最新のものを共有します
Version 2.770.129
Fixed
- オブジェクトが 0 以外の世代番号を持つ読み込み済みドキュメントを保存するとき、一貫したオブジェクト番号が書き込まれるようになりました。完全な再書き込み(SaveLoadedDocument と関連メソッド)では、すべてのオブジェクト、参照、クロスリファレンスエントリが世代 0 で書き込まれます。以前はオブジェクトヘッダーとトレーラーが古い世代を保ち、参照とクロスリファレンステーブルが 0 を使うという状態でした
- インクリメンタル更新(SaveIncrementalUpdate と関連メソッド)では、既存オブジェクトを実際の世代番号で参照するようになりました。以前は参照が常に世代 0 で書かれるため、元のファイルが別の世代を使っていると存在しないオブジェクトを指していました
Version 2.770.128
Fixed
- MaxWidth を指定した THPDFPage.TextOutHTML が、行の折り返しで書式を失わなくなりました。以前は複数の異なるスタイルのランが一緒に次の行へ移ると、折り返し時点で有効だったスタイルで描かれる 1 つのランに統合され、色、ボールドやイタリック、フォント、サイズ、上付き/下付きオフセット、リンクが失われていました。現在は各ランが新しい行でも自分の書式を保ちます
Version 2.770.127
Fixed
- InvalidateRenderedPageCache は、並列レンダリングで共有される Type 3 グリフとハーフトーンのエントリも破棄するようになりました。ドキュメント全体の無効化の後、次の並列レンダリングが以前のコンテンツ用にキャッシュされたグリフを再利用することがありました
- PreflightLoadedPAdES は、署名の PAdES レベル検査の副作用として共有レンダリングキャッシュを空にしなくなりました。プリフライト後のレンダリングもキャッシュされたグリフを保ちます
Version 2.770.126
Fixed
- 署名済みドキュメントのリビジョンと変更の分析は、フィールド名に括弧を含む、あるいは括弧で終わる名前(例: 「Total (net)」)も正しく報告するようになりました。以前は最後の文字が切り捨てられていました
- 8 進エスケープやバックスラッシュ行継続で書かれたフィールド名もデコードされます
Version 2.770.125
Fixed
- SplitPDFToFiles は、出力ファイルの書き込み時にデフォルトの PDF ビューアで開かなくなりました。内部で作成されるドキュメントは AutoLaunch がオフになります
Version 2.770.124
Fixed
- GetLoadedTrailerID は、ドキュメントの永続ファイル識別子をトレーラーの /ID 配列から 16 進テキストとして返すようになりました。以前はドキュメントカタログで /ID を探していましたが、そこに存在することはないため、事実上すべてのファイルで識別子が報告されていませんでした
Version 2.770.123
Fixed
- SetLoadedOpenActionPage は、要求されたページを名指しする宛先を書き込むようになりました。以前はページ参照が 0 0 R として書かれるため、ビューアはそのページでドキュメントを開けませんでした
- 宛先は現在のビュー位置を保ちます(left と top が null)。以前は 0 0 を強制し、ページの左下隅へジャンプしていました
Version 2.770.122
Fixed
- SetLoadedViewerPreferences は、HideToolbar、HideMenubar、FitWindow、DisplayDocTitle をブール値として書き込むようになりました。以前は /true と /false という名前として書かれ、ビューアはブール値として扱わないため、設定が効果を持ちませんでした
Version 2.770.121
Fixed
- CheckLoadedSignatureSeedValue は、フィールドの /Ff フラグが必須と印付けているとき(ビット 4、値 8)、署名フィールドの /Reasons シード値を強制するようになりました。以前は一覧にない理由でも通っていました
- 理由は PDF のテキスト文字列と同様に厳密に比較されます。「approved」は「Approved」を列挙するシード値を満たさなくなりました
Version 2.770.120
Fixed
- StampLoadedPageText や StampLoadedPageShape で読み込み済みページに複数回スタンプを押すとき、各スタンプが自分の不透明度を持ち、テキストスタンプはそれぞれ自分の標準フォントを持つようになりました。以前は 2 番目以降のスタンプがページの最初のスタンプの透過とフォントを再利用していました
- 先のスタンプと不透明度とフォントが同じスタンプは引き続きリソースを共有します。同一スタンプの繰り返しがページリソースを増やすことはありません
Version 2.770.119
Fixed
- ExtractLoadedPageStructureText は、/K エントリが単純なマークコンテンツ番号(/K 3 や /K [0 1] など)である構造要素も辿るようになりました。これはタグ付き PDF で最も一般的な形です。以前はそうした要素が無視され、多くのタグ付きドキュメントで構造順が報告されないか、描画順のテキストが返されていました
- 使用可能なルートオブジェクトを持たないドキュメントで、メソッドが無効なカタログエントリを読まなくなりました
Version 2.770.118
Fixed
- StampLoadedPageText、StampLoadedPageImage、StampLoadedPageShape、StitchLoadedPage、FlattenLoadedAnnotations は、親 /Pages ノードからリソースを継承するページを壊さなくなりました。以前はそうしたページに新しい空の /Resources 辞書を与え、継承されたフォントと画像が隠れ、ページの元のテキストや画像が表示されなくなっていました
- 現在は、新しいフォント、画像、フォームを追加する前に、ページが継承リソースの自分用のコピーを受け取ります
Version 2.770.117
Fixed
- ComposeLoadedPagesNUp、ImposeLoadedPagesNUp、ImposeLoadedPagesBooklet、ページスティッチングの各メソッドは、ソースページが親 /Pages ノードから継承するリソースを引き継ぐようになりました。以前はそうしたページがフォントや画像なしで配置され、合成シート上でテキストや画像が欠けたり誤ったりしていました
Version 2.770.116
Fixed
- SaveIncrementalUpdateAuthenticated は、インクリメンタル更新を開始した元のファイルへ書き戻せるようになりました。以前はドキュメントがソースを開いたまま保持しているため、受け入れられた更新がターゲットを置き換えられず、呼び出しは常にアクセス拒否のコミットエラーで失敗していました
- その場での SaveIncrementalUpdate と同様に、ソースは置き換えの前に解放され、置き換えが失敗したときは再オープンされます。次のインクリメンタル保存の前には BeginIncrementalUpdate を再度呼び出す必要があります
Version 2.770.115
Fixed
- RepairPDFUA2Structure は、要素が複数の親から列挙される(あるいは循環を成す)構造ツリーで指数時間をかけなくなりました。言語継承の修復、見出し順の修復、代替テキスト修復の背後にあるマークコンテンツ走査は、各構造要素を 1 回だけ辿るようになりました。以前は各要素が次の要素を 2 回列挙する 24 要素の細工ツリーで約 40 秒かかっていました
Version 2.770.114
Fixed
- HPDFPaginateTable は、分割不能な行が繰り返しヘッダー行の下に収まらないとき、メモリが尽きるまでページを追加しなくなりました。繰り返しヘッダーしかないページでは、行が分割されるようになりました(ヘッダーがページを埋めている場合は配置され、オーバーフローが許されます)
- HPDFLayoutFootnotes と HPDFLayoutEndnotes は、セパレータがページに空きを残さないときや、空のページでは注の最小断片高さを満たせないとき、永久にループしなくなりました。代わりにそのページに注が配置されます
Version 2.770.113
Fixed
- HPDFBalanceColumns は、分割可能なアイテムが段の高さより高い行を持つとき、ハングしなくなりました。以前は永久に次の段へ移動し続けていました。こうした行は現在、空の段の先頭に単独で配置され、段からはみ出しますが、レイアウトは続行されます
Version 2.770.112
Fixed
- 標準セキュリティハンドラー revision 4(RC4 または AES-128 暗号化フィルタ)で暗号化されたドキュメントは、暗号化辞書が省略可能なトップレベル /Length エントリを欠いていても開けるようになりました。以前は「Unsupported legacy Standard security handler V=4 R=4 Length=40」で読み込みに失敗していました
- こうしたドキュメントでは、ファイルキーが常に 128 ビットであるため、トップレベル /Length のどのような値でも受け入れられます
Version 2.770.111
Fixed
- ProcessObjectStreamsForDecompression と ExtractRawObjectFromStream は、オブジェクトストリームが宣言する /N 数を信じなくなりました。1000 万を超える数は拒否され、数はストリームヘッダーが実際に保持できるオブジェクト番号ペア数に制限されます。細工されたファイルが数百万の空エントリの確保や走査をさせられることはもうありません
Version 2.770.110
Fixed
- Direct File API(DADirectEncryptFileAES256、DADirectDecryptFileAES256 と関連メソッド)は、クラシッククロスリファレンスセクションの /Root、/Info、/Encrypt、/Prev、/XRefStm を、そのセクション自身のトレーラー辞書だけから読むようになりました。インクリメンタル更新されたファイルでは、後のリビジョンのオブジェクト(アウトラインアイテムなど)やトレーラーから /Prev を拾って、失敗したり誤ったリビジョンを読んだりすることがありました
- すでに読んだセクションへループして戻る /Prev チェーンは、同じセクションを再読する代わりに停止するようになりました
Version 2.770.109
Security
- ApplyLoadedRedactions は、コンテンツが複数のストリームに分かれているページでも、塗りつぶし領域の下のテキストを除去するようになりました。以前は 1 つのストリームがオペレータで終わり次のストリームがオペレータで始まるとき(たとえば ET の後に BT)、結合点の後のテキストが誤ったオペランドにマッチし、領域が塗りつぶされていても保存されたファイル内で読めるままでした
- データを持たないコンテンツストリームは一貫してスキップされ、残りのストリームがページ上で特定されたテキストと整列します
Version 2.770.108
Changed
- GetLoadedOCGCount、GetLoadedOCGName、GetLoadedOCGVisibility、SetLoadedOCGVisibility のすべてが、同じインデックス、すなわちドキュメントの /OCProperties /OCGs 配列におけるオプショナルコンテンツグループの位置を使うようになりました。以前は Count と名前はデフォルト設定の /ON 配列での位置を、可視性は /OFF での位置を、セッターは /OCGs を使っており、1 つのインデックスが 3 つの異なるグループを指し得ました。/OCGs を持たないドキュメントは引き続き /ON 配列へフォールバックします
- GetLoadedOCGVisibility は、グループが /OFF に列挙されているとき、またはどちらの配列にもなくデフォルト設定の /BaseState が /OFF のとき、非表示と報告するようになりました
Fixed
- SetLoadedOCGVisibility は、同じ参照オブジェクトを /OCGs と /ON または /OFF の両方に入れなくなりました(ドキュメント解放時に 2 回解放されていました)。除去したエントリをリークすることもなくなりました
Version 2.770.107
Fixed
- CopyLoadedPage は、ソースページとターゲットページの辞書に同じ /Contents と /Resources のエントリオブジェクトを共有させなくなりました。共有オブジェクトは、ドキュメント解放時やターゲットエントリの置き換え時に 2 回解放され、メモリを破壊することがありました
- 現在はターゲットページが、ソースコンテンツとリソースへの自分用の参照を受け取ります(直接値はコピーされます)。レンダリング済みページキャッシュエントリも更新されます
Version 2.770.106
Fixed
- 破損した PDF の読み込みで、読み取れないストリームオブジェクトごとにメモリがリークしなくなりました。/Length エントリも endstream キーワードも持たないストリームや、辞書やデータが読み込めないストリームなどです。以前はこうしたファイルを繰り返し開くとプロセスが際限なく増大していました
Version 2.770.105
Fixed
- 「21.」のような空の小数部で書かれた数値(PDF 仕様で許可されています)が、読み込みを失敗させなくなりました。以前はこの形で書かれた間接ストリームの /Length がストリーム全体を落とし、ページが空白になっていました
- 先頭にプラス符号を持つ数値、「.5」のような整数部が空の数値、32 ビット範囲を超える整数部を持つ数値も、正しく読まれるようになりました
Version 2.770.104
Fixed
- PDFmerge デモ: ブックマーク有効時、ソースごとのブックマークがそのソースの結合後の最初のページを開くようになりました。以前はすべてのブックマークが結合ファイルの最初のページを指していました
- PDFmerge デモ: デフォルトのサンプルソースと出力名、フォームに入力された相対名は、デモフォルダを基準に解決されます。ダイアログでファイルを追加したり出力を選んだりしてもカレントディレクトリが変わらず、相対エントリが壊れなくなりました
Version 2.770.103
Fixed
- TextOut デモ: 生成される
TextOut.pdfが、デモコメントの約束どおり、実際に圧縮されたコンテンツストリームを使うようになりました。BeginDoc引数(圧縮は制御しません)に頼る代わりに、CompressionをcmFlateDecodeに設定します
Version 2.770.102
Fixed
- 拡張メタファイル内で
AlphaBlendにより描かれた画像は、THPDFEmfPatcher.RenderEmfDirectでメタファイルを変換するとき、記録された不透明度を保つようになりました。以前は不透明度 0 でブレンドされ、消えていました - 記録されたアルファ形式も尊重されるようになりました。アルファチャンネルを持たない画像が、失敗する代わりに一定の不透明度でブレンドされます
- ヘッダーやピクセルデータがレコード外を指すビットマップレコードや、宣言されたビットマップよりピクセルデータが短いものは、レコードの外まで読む代わりにスキップされるようになりました
- 1 辺が 32768 ピクセルを超えるか合計 64 メガピクセルを超えるビットマップは、全体を確保する代わりにスキップされます
Version 2.770.101
Fixed
- StitchLoadedPage、StitchLoadedPageSideBySide、StitchLoadedPageSideBySideEx は、ページのコンテンツ、ページボックス、リソースを運ぶ Form XObject を通してソースページを描くようになりました。以前はページ辞書自体が XObject として登録されていましたが、ビューアはこれを描画できないため、スティッチしたページが表示されませんでした
- 同じターゲットに複数ページをスティッチしても、スティッチしたすべてのページが保持されます。以前は全ページが 1 つの名前を共有し、前のページを置き換えていましたが、現在は各ページが自分の XObject 名を受け取ります
Version 2.770.100
Fixed
- Form XObject は、ISO 32000-1 が要求するとおり、レンダリング時に
/BBoxでクリップされるようになりました。フォームがバウンディングボックスの外に描くコンテンツは、ページに表示されなくなります - 4 段より深くネストした Form XObject も描かれるようになりました。以前は再帰しているかのように落とされていました。ネストは 32 段まで許されます
- 直接または他のフォームを通して自分自身を描く Form XObject は検出され、繰り返しの呼び出しはスキップされます。レンダリング診断には再帰エントリが記録されます
Version 2.770.99
Fixed
- PDFOptimize デモ: 各テキストページの小さな矩形の列がストロークされるようになりました。バーが見え、ISO 32000-1 8.5.2 が要求するとおり、コンテンツストリームがすべてのパスをペイントオペレータで終えます。その結果、報告されるテキスト PDF のサイズはわずかに変わります
Version 2.770.98
Fixed
- /Title (Report (draft) v2) のような、バックスラッシュなしの対応の取れた括弧を含むリテラル文字列が、ドキュメント読み込み時に全文読まれるようになりました。以前は文字列が最初の閉じ括弧で終わり、辞書の残りが誤読されていました
- エスケープされた括弧は従来どおり機能します
Version 2.770.97
Fixed
- 文字列や名前の値が行末に「stream」という文字を含むとき、/Title (Livestream) のような Info 辞書でも、読み込みが辞書オブジェクトをストリームと誤認しなくなりました。以前はオブジェクトがストリームとして読まれ、エントリが失われていました
- stream キーワードは、PDF 仕様がストリームオブジェクトを定めるとおり、辞書の閉じ >> の後かつ行末にあるときにのみ、独立したトークンとして認識されるようになりました
Version 2.770.96
Fixed
- Stamp デモ: 画像ピッカーが提示する PNG と BMP ファイルを画像スタンプとして使えるようになりました。以前は JPEG だけが動作し、他のファイルは不正なビットマップエラーで失敗していました
- Stamp デモ: ゴム印注釈は意図どおり各ページの右上領域、上隅の画像スタンプの下に配置されるようになりました。以前は右下隅に置かれ、右下の画像スタンプと重なっていました
- Stamp デモ: デフォルトの入力、出力、画像パスはデモフォルダを基準に解決され、ダイアログでファイルを選んでもカレントディレクトリが変わらなくなりました。相対名が同じファイルを指し続けます
Version 2.770.95
Fixed
- ポリシー OID を付けて組まれるタイムスタンプ要求(HPDFRFC3161BuildRequest、タイムスタンプ局ポリシーでの署名)は、要求されたポリシーを RFC 3161 が定める素のオブジェクト識別子としてエンコードするようになりました
- 以前はポリシーが、RFC 3161 が要求拡張のために予約するコンテキストタグに包まれていたため、厳格なタイムスタンプ局が要求を拒否したりポリシーを無視したりしていました
- ポリシー OID のない要求は変わりません
Version 2.770.94
Fixed
- ViewerPref デモ: Initial Zoom のチェックを外しておくと、実際に「None (Default)」を意味するようになりました。生成される PDF は高さに合わせて開かれなくなりました。これはデモがリセットしていなかったコンポーネントのデフォルト値でした
Version 2.770.93
Fixed
- FileAttach デモ: デモがシステム ANSI コードページ外の文字を名前に含むフォルダから実行されても、ページレベルの添付注釈が作成されるようになりました。添付ファイルは絶対パスの代わりに素のファイル名で渡されます
Version 2.770.92
Fixed
- HTMLText デモ: システム ANSI コードページ外の文字(ギリシャ文字やキリル文字のフォルダ名など)を含む出力パスが、失敗する代わりに正しく書き込まれるようになりました
- HTMLText デモ: 生成された PDF が外部リーダーで自動的に開かれなくなりました。他のコンソールデモに合わせた動作です
Version 2.770.91
Fixed
- SVG と XPS のパスインポートが、数百桁の数値や大きな指数と組み合わさった長い数値で
EOverflowを発生させなくなりました。こうした値は他の範囲外の数値と同様に拒否されます - 浮動小数点例外がマスクされていないコンパイラで、SVG インポート API を通して配置される SVG 画像と XPS パスジオメトリに影響します
- 負の指数を持つ長い仮数を含む通常の数値は、従来どおり読まれます
Version 2.770.90
Fixed
- EmfDraw デモ: 変換に失敗したとき(入力メタファイルがないなど)、終了コードが 0 ではなく 1 で終わるようになりました。デモを実行するスクリプトやビルドステップが失敗を検出できます
Version 2.770.89
Fixed
- CJKAnnotations デモ: Arial Unicode MS がインストールされていないとき、デモが実際に Microsoft YaHei へフォールバックするようになりました。以前は存在しないフォントが決して発生しない例外を待っていましたが、現在はインストール済みフォントをチェックします。CJK テキストが CJK をカバーしない代替フォントで終わることはなくなりました
Version 2.770.88
Fixed
- 32 個を超える
qオペレータをネストしたコンテンツストリームが、囲むグラフィックス状態を失わなくなりました。以前は深い保存が無視される一方、対応するQは復元していたため、ネストしたブロックの後のテキストとグラフィックスが外側のqより前の状態を使っていました - コンテンツデバイスインターフェース経由のテキスト抽出と、こうしたページの SVG エクスポートに影響します
- 保存された状態はネストの深さに応じて拡張されるようになりました。非常に深いネストでも正しく対応付けられます
Version 2.770.87
Fixed
- ImageDemo: 「Image zoom」ブックマークが、最初のページの下部付近の点ではなく、IMAGE ZOOM 見出しへジャンプするようになりました
Version 2.770.86
Security
- 楕円曲線鍵の受信者証明書向けに暗号化された PDF(ECDH 鍵合意)を開くとき、生の共有シークレットと鍵導出の中間バッファーを、不要になった時点ですぐ消去するようになりました。バイト順を変えて再試行するときや、早期に失敗するすべての経路でも消去します
- Windows 証明書ストアの証明書で署名するとき、必要な CryptoAPI 関数が見つからない場合に crypt32.dll と advapi32.dll がロードされたまま残らなくなりました
Version 2.770.85
Security
- charstring がオペランド数の足りない sbw を使う Type 1 グリフをアウトライン化するとき、オペランドスタックより前を読まなくなりました。不正なオペレーターは無視されます
- 2 バイトオペレーターのエスケープバイトで終わる Type 1 charstring が、charstring の終端を越えて読まなくなりました
Version 2.770.84
Fixed
- CMap コードスペース範囲の文字コードのバイト長が、ISO 32000-1 9.7.6.2 の規定どおり、16 進文字列の長さから取られるようになりました。<0000> <00FF> のような範囲は上限が 1 バイトに収まるため 1 バイトとして扱われており、描画とテキスト抽出で 2 バイトコードが分断されていました
- 組み込み CMap から読み込むコードスペース範囲も、コード長を保持します
Version 2.770.83
Fixed
- インストール済み TrueType フォントのサブセットを埋め込むとき、コンポーネントがスケールや 2x2 変換を持つ複合グリフ(アクセント付き文字など)の全コンポーネントを保持するようになりました。以前はそうした変換の後のコンポーネントが誤って読まれ、サブセットから消えたり、グリフ参照が変換バイトの上に書き込まれたりしていました
- コンポーネントが循環して互いを参照する複合グリフ、フォントのグリフ数を越えて参照する複合グリフ、空のグリフを指す複合グリフが、フォントサブセット処理をクラッシュさせたりハングさせたりしなくなりました
- サブセット内では、別の複合グリフの中にネストした複合グリフのコンポーネント参照が、2 回ではなく 1 回だけ振り直されます
Version 2.770.82
Fixed
- CFF フォントディクショナリーの実数(FontMatrix、FontBBox、blue 値など)が、1 バイトの中で符号・小数点・指数が数字に隣接していても正しく読まれるようになりました。以前は同じバイト内の数字が落とされ、-2.25 が -0.5 になっていました
- これらの値は、Windows の地域設定にかかわらず、ピリオドを小数点区切りとしてパースされます。カンマ小数を使うシステムでは変換エラーになっていました
Version 2.770.81
Fixed
- テキスト抽出と ToUnicode 参照が、複数文字ターゲットを持つ配列エントリーに続く beginbfrange 配列エントリーのコードに、古い複数文字列を返さなくなりました。そのようなコードは自分自身の 1 文字にマップされます
Version 2.770.80
Fixed
- TrueType 可変フォントを指定した軸値でインスタンス化するとき(SetVariableFontAxis 経由など)、gvar データが別のタプルの後に疎なタプルを持つグリフが歪まなくなりました。以前は疎なタプルが前のタプルのデルタから始まり、同じ点を 2 回動かしていました
- 疎なタプルが省略する点は、OpenType gvar の規則が要求するどおり、そのタプルが列挙する点だけから補間されるようになりました
Version 2.770.79
Security
- AddTiffFromFile は、幅 × 高さが 2 GB を超えるラスタを要する TIFF ページを拒否するようになりました。以前はラップアラウンドしたサイズのバッファーを確保し、デコーダーがその先に書き込む(ヒープオーバーフロー)状態でした
- 幅か高さが 0 の TIFF ページも同じ方法で拒否されます
- 縦長の TIFF ページ(1200 行以上)は、nil バッファーへデコードする代わりに、確保失敗を報告するようになりました
Version 2.770.78
Fixed
- Type 3 フォントのグリフが水平スケーリング(
Tz)に従うようになりました。水平 200% で描くテキストランは自然幅の代わりに 2 倍の幅で描かれます - Type 3 フォントのグリフがテキストライズ(
Ts)に従うようになりました。Type 3 フォントで組まれた上付き・下付き文字がベースラインに留まらず、上げ下げされます - グリフの送り幅はすでにスケールされていたため、グリフ形状がそれに揃った形になります
Version 2.770.77
Fixed
- HPDFRFC3161BuildRequest が組む RFC 3161 タイムスタンプ要求は、ノンスを常に最小の DER INTEGER としてエンコードします。ランダムなノンスがゼロバイトで始まると要求は冗長な先行ゼロを持ち、厳格なタイムスタンプサーバーに不正形式として拒否されていました
- 返されるノンスは要求された長さを保つため、タイムスタンプ応答と比較する呼び出し元に影響はありません
- オブジェクトストリームが空のコンテンツに復号される暗号化 PDF 2.0 ファイル(AES-256-GCM)が、GCM 認証エラーで読み込みに失敗しなくなりました。有効な認証タグを持つ空のオブジェクトストリームは受け入れられ、改ざんされたタグは引き続き拒否されます
Version 2.770.76
Fixed
- Hyperlink デモ: システム ANSI コードページ外の文字(ギリシャ文字、キリル文字、アクセント付きテキストなど)を含むリンクキャプションと URL が疑問符に化けなくなりました。キャプションは Unicode テキストとして描かれ、その上に URI リンクが重ねられます
- Hyperlink デモ: URL の非 ASCII 文字は、リンクアクションに格納する前に UTF-8 でパーセントエンコードされるため、ビューアが意図したアドレスを開けます
Version 2.770.75
Fixed
- 0..1 外の成分を持つ CalRGB 色が、描画中に浮動小数点例外(
EInvalidOp)を起こさなくなりました。成分はガンマを適用する前に有効範囲へクリップされます - 浮動小数点例外がマスクされるコンパイラでは、こうした色が未定義の色ではなく範囲内の最も近い色として描画されます
Version 2.770.74
Fixed
- Direct File API のリライト(DADirectEncryptFileAES256、DADirectDecryptFileAES256 など)を複数スレッドで同時に実行しても、互いの出力を壊さなくなりました。共有しているバイト範囲コピーがプロセス全体で 1 つのバッファーを使っていました
Version 2.770.73
Fixed
- THPDFSignatureValidationBatch の共有失効キャッシュが、シリアル番号の最上位ビットが立った署名者証明書の OCSP 応答を見つけられるようになりました。以前はその種の応答が先行ゼロバイトなしのシリアルで格納され、その形で検索されていたため、後続の署名はすべてキャッシュを取り逃していました
- 委任レスポンダーが署名した OCSP 応答や、鍵でレスポンダーを識別する OCSP 応答は、証明書発行者の下に格納され、バッチ内の後続の署名で再利用できるようになりました。以前はレスポンダー名の下に格納されるか、まったく格納されていませんでした
- 同じバッチ内の先行署名がキャッシュした証拠に依存する署名は、これらのケースで未知の失効状態ではなく信頼済みの判定に到達します
Version 2.770.72
Fixed
- 名前による埋め込みファイルの検索(GetLoadedEmbeddedFileSpec、ExtractEmbeddedFileBytes、SaveLoadedEmbeddedFileToDisk および関連メソッド)が、ドキュメントの /EmbeddedFiles ネームツリーが互いを、あるいは自分自身を /Kids として列挙するノードを持っていても、スタックオーバーフローしなくなりました
- 各ネームツリーノードは 1 回だけ検索されるため、共有ノード経由で到達できる名前も引き続き見つかります
Version 2.770.71
Fixed
- PageSizes デモ: 中国語の 8K・16K サイズのページが、すべてのシステムで説明文を全文印字するようになりました。説明は Arial(CJK グリフを持たない)で描かれるため、中国語のサイズ名はピンインで表記します。非 CJK コードページでは非 ASCII テキストが疑問符になっていたためです
Version 2.770.70
Fixed
- 軸方向(Type 2)シェーディングが、シェーディング軸が描画領域から遠く離れていても、領域全体をカバーするようになりました。ページ端の外に
/Extend [true true]付きで定義されたグラデーションなどが該当します。以前はそのような領域が塗られずに残っていました shオペレーターと、塗り色・ストローク色として使われるシェーディングパターンに適用されます
Version 2.770.69
Fixed
- Navigation デモ: 名前付きデスティネーション
chapter-1とchapter-2が、ページ最下部へのスクロールの代わりに、上端から 60 ポイント下のページ先頭位置でページを開くようになりました。デスティネーション座標は原点が左下の PDF 既定ユーザー空間です
Version 2.770.68
Fixed
- 埋め込み TrueType フォントを持つ PDF のテキスト抽出が、フォントの cmap が切り詰められているのに数千のセグメントやグループを主張しているとき、数分間止まり続けることがなくなりました。セグメントとグループを読む前にテーブル長をチェックします
- 埋め込み TrueType フォントのグリフから Unicode へのマップ構築は、65,535 個すべての BMP コードポイントを 1 つずつ参照する代わりに、各 cmap サブテーブルをセグメントかグループごとに 1 度だけたどります。大きな CJK フォントでの抽出も速くなります
- 切り詰められた format 4 / format 12 の cmap サブテーブル経由のグリフ参照は、存在しないセグメントを走査する代わりに、フォントデータの終端で止まります
Version 2.770.67
Fixed
- 指数(Type 2)関数とステッチング(Type 3)関数が、
[0 0.5]のような入力 1 つの/Domainを尊重するようになりました。以前は無視されて[0 1]に置き換わり、入力が誤った区間にクリップされていました /C1を持たない指数関数は既定値[1.0]を使うようになりました。そのように定義された Separation 色とシェーディングは黒く描画されていました- 指数関数は入力を 0..1 に再スケールする代わりに、入力そのままで
C0 + x^N (C1 - C0)を評価するようになり、[0 1]以外のドメインで ISO 32000-1 に一致します - 指数関数の出力は
/Rangeがあるときだけその範囲へクリップされるようになりました。Lab 代替色空間(L* は 100 まで)を持つスポットカラーが 0..1 にクリップされ、ほぼ黒で描画されていました - 定義域の外の入力を受けた指数関数は、浮動小数点例外を起こす代わりに拒否されます
Version 2.770.66
Fixed
- 長さ 0 のパスワードから鍵を導出するツールがパスワードなしで書き出した PKCS#12 / PFX ファイルが、HPDFParsePFX、HPDFParsePFXByLocalKeyID、HPDFEnumeratePFXIdentities と PFX 署名メソッドで空のパスワードで開けるようになりました。以前は認証エラーで失敗していました
- 空のパスワードでは、整合性チェックと鍵復号のどちらも、まず RFC 7292 の標準エンコーディングを試し、次に長さ 0 形式を試します。すでに開けていたファイルはこれまでどおり開けます
Version 2.770.65
Fixed
- C++Builder DBTable デモのページヘッダーが、"Page1" ではなく "Page 1" と表示されるようになりました
- C++Builder DBTable デモがテーブルを書き込んでいる最中にエラーが起きると、作りかけのドキュメントを閉じるようになりました。次のクリックがクリーンな状態から始まります
Version 2.770.64
Fixed
- C++Builder コンソールデモの AnnotationInteraction、FormFields、CanvasDraw、EmfDraw、FormXObject、GraphicDraw、ImageDemo、ImageMask、LineGraphicsState、RtLTextOut が、Delphi デモと同様、引数なしで起動したときに実行ファイルのフォルダーへ移るようになりました。別のディレクトリーから実行しても入力ファイルが見つかり、PDF はそこへ書き込まれます
- C++Builder Graphic デモが、出力 PDF の名前をタイトルに含むすべてのウィンドウへクローズメッセージを送らなくなりました。無関係なウィンドウが閉じることがありました
- C++Builder ImageMask デモが Delphi 版と同じ動きになりました。Mask.bmp と Image.jpg の存在を確認し、出力を圧縮し、ビューアを開かず、未処理例外で終わる代わりにエラーを報告します
- C++Builder EmfDraw デモは、Sample.emf が見つからないなどのエラーを報告して非ゼロの終了コードを返し、未処理例外で終わらなくなりました
- C++Builder AddDelPages デモは、Delphi 版と同様、相対的な入出力ファイル名を実行ファイルのフォルダー基準で解決します
Version 2.770.63
Fixed
- C++Builder FileAttach デモが、作業ディレクトリーの Output.pdf の代わりに、Delphi 版と readme が使う名前の FileAttach.pdf を実行ファイルの隣へ書き込み、FileAttach.txt 添付も同じフォルダーに置くようになりました
Version 2.770.62
Fixed
- Direct File API(DADirectEncryptFileAES256、DADirectDecryptFileAES256 およびその他のダイレクトリライトメソッド)が、2 GiB を超えるクロスリファレンスストリームオフセットを正しく読むようになりました。以前はオフセットが切り詰められて負になり、大きなファイルの後半にあるオブジェクトが見つかりませんでした
- トレーラーやクロスリファレンスストリームにある 2 GiB 超の /Prev と /XRefStm オフセットが、0 として読まれる代わりにたどられるようになりました。大きなファイルの古いリビジョンやハイブリッドクロスリファレンスセクションがスキップされなくなります
- 大きなファイルの読み込み時と、リビジョンの調査時にも同じです
- 新しい HPDFDirectReadUIntBE64 と HPDFFindNameInt64 ヘルパーが完全な 64 ビット値を返します
Version 2.770.61
Fixed
- /W フィールド幅が負または 8 バイト超のクロスリファレンスストリームは、デコードされる代わりに拒否されるようになりました。読み込みはファイルを走査してオブジェクトを探す方法へフォールバックします
- Direct File API メソッド(DADirectEncryptFileAES256 など)は、そのようなファイルでデコード済みテーブルの外のメモリーを読まず、クラッシュもしなくなりました。代わりにファイルを拒否します
Version 2.770.60
Fixed
- テキスト抽出・検索・グリフ位置が、
"テキストオペレーターを正しく読むようになりました。第 1 オペランドがワードスペーシング、第 2 が文字間隔です。以前は 2 つが入れ替わっていました "と非ゼロのワードスペーシングや文字間隔で書かれた行が、ずれたグリフ位置を報告しなくなりました。ずれにより、抽出されたページテキストで単語が結合・分断されたり、検索ヒットの位置がずれたりしていました- ページ描画は影響を受けていませんでした
Version 2.770.59
Fixed
- Table デモ: 「Group A」の rowspan が覆う行が、Item 列と Notes 列に項目と備考を表示するようになりました。以前は備考テキストが 1 列ずれて落ちていました
- Table デモ: 生成された PDF が外部リーダーで自動的に開かれなくなり、他のコンソールデモと一致しました。システム ANSI コードページ外の文字を含む出力パスもそのまま保たれます
Version 2.770.58
Fixed
- Flate データをストリームへ展開するとき、ソースかターゲットのストリームが途中で例外を上げても(書き込み失敗やストリームのサイズ上限到達など)、デコーダー状態(毎回約 40 KB)がリークしなくなりました
- 文字列の圧縮で例外が起きても、一時バッファーがリークしなくなりました
- 成功した圧縮・展開の挙動はまったく変わっていません
Version 2.770.57
Fixed
- name constraints 拡張が critical マークされていない証明書が、署名証明書の検証中に読めないものとして拒否されなくなりました。その種の CA 証明書があると、それを経由するすべてのチェーンの構築が失敗していました
- その種の証明書の制約は critical のものと同様にチェーンの残りへ適用されるため、許可されたサブツリー外の署名者名は引き続き名前制約違反として報告されます
Version 2.770.56
Fixed
- 深くネストした
if/ifelse手続きを持つ PostScript calculator(Type 4)関数が、描画中にスタックを溢れさせなくなりました。その種の関数は使用不能として扱われ、他の無効な関数と同様に色がフォールバックします - ネストは 64 レベルまでに制限されます。実際の calculator プログラムが使う深さを大きく超えます。通常の Type 4 ティント変換とシェーディングはこれまでどおり描画されます
- calculator 関数の評価が、ネストレベルごとに必要なスタックを減らしました
Version 2.770.55
Fixed
- E-Invoice デモ: 抽出した Factur-X / ZUGFeRD XML が UTF-8 としてデコードされ、名前や住所のアクセント付き文字など非 ASCII 文字が XML ペインで文字化けしなくなりました
- E-Invoice デモ: Delphi XE2 以降では、電子請求書の総合判定がビジネスルールステップの可否を決めるようになりました。ルールファイルやエンジンの失敗が、黙って合格する代わりに検証失敗になります
- E-Invoice デモ: ヒューリスティックな整合性チェックによる表示テキストと XML の不一致は警告として報告され、それ自体で全体の検証を落とさなくなりました
Version 2.770.54
Security
- CMS 署名検証(HPDFVerifyCMSSignature、HPDFVerifyCMSSignatureEx、読み込んだ PDF 署名)が、RFC 5652 の要求どおり、署名属性に content-type 属性がない、または署名対象と異なるコンテントタイプを名指ししているとき、不正な署名を報告するようになりました。以前はその種の署名が有効と検証され、あるコンテントタイプ向けに作られた署名属性が別のコンテンツへの署名として提示できました
- content-type 属性が重複した署名はこれまでどおり拒否されます
- 定義上 content-type 属性を持たないカウンターサインと、RFC 3161 タイムスタンプトークンはこれまでどおり検証されます
Version 2.770.53
Fixed
- C++Builder Annotations デモのボタンを 2 回目に押しても、新しいドキュメントを始める前に前のドキュメントが再度書き出されなくなりました
- C++Builder Annotations デモが PDF を構築中にエラーが起きると、作りかけのドキュメントを閉じるようになりました。次のクリックがクリーンな状態から始まります
Version 2.770.52
Fixed
- 同じディスクレンダーキャッシュフォルダーを使う複数のドキュメントや
THotPDFインスタンスが、1 つのプロセス内で単一のキャッシュインデックスを共有するようになりました。以前は各インスタンスが独自のインデックスを持ち、保存のたびに他のインスタンスのものを上書きして、最近使用の順序を失っていました - ディスクレンダーキャッシュのドキュメント数と合計サイズの上限が、フォルダーを共有するすべてのインスタンスにわたって強制されるため、複数のビューアや描画スレッドが同時に使ってもフォルダーが予算を超えて育たなくなりました
- 大文字小文字や末尾のパス区切りに関係なく、同じフォルダーと認識されます
Version 2.770.51
Fixed
- bicubic か Lanczos3 カーネルでのビットマップのリサンプリングが、すべてのソースピクセル形式で動くようになりました。以前は 32 ビット・8 ビット・1 ビットのソースが 3 バイトピクセルとして読まれ、カラーチャンネルが混ざったり、行の終端を越えて読まれたりしていました
- その種のソースはまず 24 ビットへ変換されるため、リサンプル後の画像はソースと同じ色になります。結果はこれまでどおり 24 ビットビットマップのままです
- 24 ビットソースとハーフトーンカーネルは影響を受けません
Version 2.770.50
Fixed
- PreflightCLI デモ: 単一 PDF への
-dが、ファイルがプリフライトに失敗してもダッシュボードインデックスを書き出すようになりました - PreflightCLI デモ: プリフライト中にエラーを上げたファイルがダッシュボードインデックスに失敗として列挙され、終了コードがすべての失敗ファイルを反映します
- PreflightCLI デモ:
-rでは、異なるサブディレクトリーにある同名 PDF のレポートが互いに上書きされず、対応するサブフォルダーへ書き込まれます。-oありでもダッシュボードでも同様です - PreflightCLI デモ:
-f jsonと-f csvが、--profile/--preset/--aggregateの有無にかかわらず同じスキーマを出力するようになりました。CSV の spec 列も含みます - PreflightReport デモ: プロファイル付きで生成した CSV レポートが、プロファイルなしのレポートと同様に spec 列を埋めるようになりました
Version 2.770.49
Fixed
- C++Builder LargeFile デモが、Delphi 版と同様、readme が説明するベンチマーク入力セットを生成するようになりました。実行ファイルの隣の BenchmarkInputs フォルダーに、LargeFile-Text.pdf、LargeFile-Image.pdf、LargeFile-Mixed.pdf と、AES-256 で暗号化した LargeFile-Encrypted.pdf を置きます。以前は 200 ページの LargeFile.pdf 1 つしか書き出していませんでした
- C++Builder LargeFile デモが
--output-dir、--scale(small、default、large、huge)、--pagesの各オプションを受け付け、生成したフォルダー向けの HugeFileBenchmark コマンドを表示するようになりました
Version 2.770.48
Fixed
- C++Builder Outlines デモが、作業ディレクトリーの Output.pdf の代わりに、readme が名指しする Outlines.pdf を実行ファイルの隣へ書き込み、ビューアを開く代わりに保存先を報告するようになりました
- C++Builder Outlines デモが、Delphi 版と同じ、Arial のページラベル付き 10 ページドキュメントを構築するようになりました。以前は y = 830 のページ下部ラベルがページ端で切られ、最終ページの "Bottom" ブックマークがその下を指していました
- C++Builder Outlines デモが PDF を書き込んでいる最中のエラーでも、デモが次のドキュメントを作れなくなることがなくなりました
Version 2.770.47
Fixed
- 永続ディスクレンダーキャッシュが、システム ANSI コードページ外の文字を名前に含むフォルダーの下でも動くようになりました(非ラテン文字を含むユーザープロファイルフォルダーなど)。以前はそこではすべてのページ書き込みが失敗し、キャッシュは 1 度もヒットしませんでした
THPDFDiskPageCacheはルートフォルダーを Unicode 文字列として受け取り、ページファイルとキャッシュインデックスのアトミック置き換えを含むすべてのキャッシュパスを Unicode で保持します
Version 2.770.46
Fixed
- リージョン・タイル描画(
RenderLoadedPageRegionToBitmap、RenderLoadedPageTiles、プログレッシブリージョン描画)が、唯一のコンテンツが原点から離れた場所に置かれたフォーム XObject から来るタイルを白紙のままにしなくなりました。フォームは/Matrixと現在の変換で置かれた/BBoxを覆うものとして数えられます TD、T*、'、"で置かれたテキストが、どのタイルに含まれるかの判定で正しい行に載るようになりました。段落の後続行が、現れるタイルから外されることがなくなりますTdオフセットはテキストマトリックスでスケールされ、行の始点から測られます。実際のテキスト描画方法と一致します- テキストランの終端推定で、文字間隔・ワードスペーシング・水平スケーリング・テキストライズが考慮され、グリフが 1 em より狭いと仮定しなくなりました
Version 2.770.45
Fixed
- C++Builder MemStream デモが、作業ディレクトリーの Memory.pdf の代わりに、Delphi 版が使う名前の MemStream.pdf を実行ファイルの隣へ書き込みます
- C++Builder MemStream デモが、メモリー内 PDF を LoadFromStream で読み込み直し、保存前に 1 ページあることを確認するようになりました
- C++Builder MemStream デモが PDF を書き込んでいる最中のエラーでも、デモが次のドキュメントを作れなくなることがなくなりました
Version 2.770.44
Fixed
- C++Builder HelloWorld デモが起動時に、タイトルに HelloWorld.pdf を含むすべてのウィンドウへクローズメッセージを送らなくなりました。エディターやファイルマネージャーなど無関係なウィンドウが閉じることがありました
- C++Builder HelloWorld デモは HelloWorld.pdf を実行ファイルの隣へ書き込み、
--openが指定されたときだけ開きます。Delphi 版と同様、出力ファイル名か--output <file>を受け付けます
Version 2.770.43
Fixed
- ページツリーに中間 /Pages ノードを持つ PDF の読み込みで、そのノードの下のページが落ちなくなりました。以前はその種のドキュメントが、ツリーのルート直下に列挙されたページだけを報告していました
- ページはページツリーの順序を保つため、ページインデックス・ページボックス・コンテンツが他のビューアの表示と一致します
- /Type が間接オブジェクトとして格納されたページも、この順序付けの段階でページとして認識されます
Version 2.770.42
Fixed
- ページツリーが自分自身を参照する PDF(自分の /Kids の中に自分が列挙された /Pages ノード、互いを列挙する 2 ノードなど)の読み込みが、スタックオーバーフローでクラッシュしなくなりました。各ページツリーノードは 1 度だけたどられ、過度に深いツリーは打ち切られます
- /Kids 配列や /Type 名が間接オブジェクトとして格納されたページツリーノードが、失敗したり無効なメモリーを読んだりする代わりに、ページを読み込むようになりました
Version 2.770.41
Fixed
- THPDFPage.LastAnnotation が、AddGoToLink、AddURILink、AddNamedDestinationLink、AddGoToRLink、AddLaunchLink、AddStructureDestinationLink、AddGoToRStructureDestinationLink が作ったリンクを返すようになりました
- リンク追加直後に LastAnnotation を使って SetAnnotationFlags、SetAnnotationBorderStyle、AddPopupAnnotationFor を呼んでも、黙って何もしないか、代わりに前に作った注釈を変更することがなくなりました
Version 2.770.40
Fixed
THPDFJobProcessor.Execute、HPDFDocRunJob、HPDFDocRunJobWithCallbacksに渡すジョブ JSON が、全体を UTF-8 として読まれるようになりました。\uXXXXエスケープが ANSI コードページに潰れなくなり、😀のようなエスケープされたサロゲートペアも壊れた 2 文字ではなく意図した文字になります- マージ・分割・最適化・暗号化・検証ジョブの入出力ファイル名は、そのままの UTF-8 でも
\uエスケープでも、システムコードページ外の文字を保ちます。その種のファイルが実名で見つかり、実名で書き込まれます - 16 進 4 桁未満の不正な
\uエスケープは、後続の文字や閉じクォートを飲み込まずに捨てられます - ジョブテキスト先頭の UTF-8 バイトオーダーマークは無視されます
Version 2.770.39
Fixed
- 署名とタイムスタンプ要求を組むときに呼び出し元が与えるオブジェクト識別子(署名ポリシー、コミットメントタイプ、主張ロール、タイムスタンプポリシーなどの OID)が、第 1 アークが 2 で第 2 アークが 48 以上のとき正しくエンコードされるようになりました。以前は結合された第 1 値が 1 バイトに切り詰められ、別の誤った識別子になっていました
- 表現できないほど大きなオブジェクト識別子のアークは、黙って別の値にラップアラウンドする代わりに、エラーで拒否されるようになりました
Version 2.770.38
Fixed
- HugeFileBenchmark デモ:
--recursive --keep-outputで、異なるサブディレクトリーに同じファイル名の PDF があっても、互いの生成ファイルを上書きしなくなりました。作業ディレクトリーが入力フォルダーツリーをミラーします
Version 2.770.37
Security
- 複合グリフが多数のコンポーネント(そのそれぞれがまた複合)を列挙する埋め込み TrueType フォントを持つ PDF の描画が、レンダラーや text-to-path エクスポートをハングさせられなくなりました。1 つのグリフは、全ネストレベル合計で最大 1024 コンポーネントまで展開されます
- 自分自身のグリフを参照する複合グリフのコンポーネントは、ネスト上限まで展開される代わりにスキップされます
Version 2.770.36
Fixed
- 直接的にでも他の関数経由ででも自分自身を参照するステッチング(Type 3)関数が、スタックが溢れるまで再帰しなくなりました。使用不能な関数として扱われます
RenderLoadedPageToBitmapと他の描画経路で描かれる、不正・悪意ある PDF 内の Separation と DeviceN のティント変換、シェーディング関数、トランスファー関数に影響します- 関数のネストは 16 レベルまでに制限されます。正規のドキュメントははるかに浅いネストしか使いません
Version 2.770.35
Fixed
- C++Builder PageOperations デモが Delphi 版と同じワークフローで動くようになりました。InsertLoadedBlankPage でカスタムサイズの白紙ページも挿入し、ExtractLoadedPagesText で 1-3 ページのテキストも印字します
- C++Builder PageOperations デモの並べ替え・抽出ファイルが、Delphi 版と同じページを含むようになりました。最終ページを 2 ページ目へ移動し、2 ページ目と 5 ページ目を抽出します
Version 2.770.34
Fixed
- C++Builder Hyperlink デモが、リンクリストが 1 ページに収まらないとき新しいページへ続くようになりました。最初のページの下部を越えたリンクはページの外に書かれていました
- C++Builder Hyperlink デモの Add、Remove、Make PDF は、PDF の書き込み中は無効化されます。生成中にリンクリストが変わったり、ドキュメントが 2 回始められたりすることがなくなります
Version 2.770.33
Fixed
- C++Builder Stamp デモが、テキスト透かしとゴム印注釈を各ページのサイズに応じて配置するようになりました。横向きなど A4 以外のページでは、スタンプ注釈がページ外に落ち、透かしが中心からずれていました
Version 2.770.32
Fixed
- C++Builder ViewerPref デモの各ボタンが、新しいドキュメントから始めるようになりました。以前は前のクリックの読み方向・初期ズームなどのビューア環境設定が効いたままで、たとえば Test Direction の後の Create PDF が、選択されていないはずの右から左へのテキストと設定を書いていました
- C++Builder PDF_INFO デモが、Delphi 版と readme が使うファイル名の PDFInfo.pdf を実行ファイルの隣へ書き込むようになりました
Version 2.770.30
Security
- 証明書パス検証(HPDFValidateCMSCertificatePath、オンライン版、署名バッチ)が、同じ名前と鍵を共有する多数の証明書を埋め込んだ署名で滞らされなくなりました。その種のセットはパス探索にすべての可能な順列を試させており、階乗的に増えて検証を何時間も拘束できました
- 候補チェーン内の各発行者署名は検証ごとに 1 回だけ検証され、その結果が再利用されます。以前はそれを通るパスごとに再検証されていました
- パス探索は固定の作業量で打ち切られます。上限に達すると検証は信頼アンカーに至る有効なパスなしと報告し、通常のチェーンは上限を大きく下回ります
Version 2.770.29
Fixed
ImportLoadedInterchangeFromFDFが注釈と FDF ステータスを読むとき、キー名全体で一致させるようになりました。/Tが/Typeや/Textで止まらず、/Fが/FreeTextで止まらず、/Statusが同じ始まりのより長いキーで止まりません。インポートされた注釈が作成者とフラグを保ちます- インポートされた注釈の中のネストしたディクショナリーのキーや、文字列内のキー風テキストが、注釈自身のエントリーと誤認されなくなりました
- インポートされた FDF 注釈とステータスのリテラル文字列が、ISO 32000-1 が定義するすべてのエスケープをデコードします。
\n、\r、エスケープされた括弧に加え、\t、\b、\f、8 進\ddd、バックスラッシュ行継続です
Version 2.770.28
Fixed
- バンドル PNG リーダーを使う Delphi XE2 より前のビルドで、圧縮テキスト(zTXt)チャンクを含む PNG ファイルの読み込みが、内部バッファーの先を読まなくなりました。256 バイト超のテキストが破損して異常に長く出たり、大きなチャンクがクラッシュを起こしたりしていました
- 圧縮テキストチャンクの圧縮メソッドが正しいバイトから読まれるため、未対応メソッドのチャンクが deflate データとしてデコードされる代わりに無視されるようになりました
- 切り詰められた・不正な圧縮テキストが、無限デコードループを起こす恐れがなくなりました
- Delphi XE2 以降のビルドはシステム PNG リーダーを使うため影響を受けません
Version 2.770.27
Changed
- C++Builder SearchAndSelect デモが Delphi 版と同じように動くようになりました。サンプル PDF を作って読み込み、SearchLoadedDocumentText で検索語を見つけ、AddLoadedHighlightAnnotation で各一致にハイライト注釈を重ねます
- C++Builder SearchAndSelect デモは入力 PDF、検索語、出力ファイルと --case-sensitive・--whole-word オプションを受け付け、保存したコピーに新しい注釈があるか確認します
Fixed
- C++Builder SearchAndSelect デモのハイライトが一致した単語を覆うようになりました。以前はテキスト位置がテキスト上端ではなくベースラインとして扱われ、1 行高く置かれていました
Version 2.770.26
Fixed
- C++Builder DigiPrint デモが、小数点区切りがピリオドのシステムで起動するようになりました。以前は demo.xml のカンマ小数がシステムロケールでパースされ、フォーム作成中にエラーになっていました
- DigiPrint デモは demo.xml と 2 つの JPEG アイコンを実行ファイルのフォルダーから読み、demo.pdf をそこへ書き込みます。プロジェクトも実行ファイルをデモフォルダーのこれらのファイルの隣へ置くようになりました
- DigiPrint デモのフッターページアイコンが、ページ最下部罫線の下ではなくフッター行の中に描かれ、タイトル・年・フッターテキストはレポートスタイルのフォントサイズを使います
- DigiPrint ボタンを複数回押しても、左マージンがクリックのたびに右へずれなくなりました
- 画像ファイルの欠落など、DigiPrint デモが PDF を構築中のエラーでも、デモが次のドキュメントを作れなくなることがなくなりました
Version 2.770.25
Fixed
- Showcase デモ: ヘッダーバンド、表紙の背景、グラデーション見本、裏表紙のアクセントが、塗る図形に一致するようになりました。グラデーション座標は PDF 既定ユーザー空間(原点は左下)で与えるため、色がずれたり反転したりしなくなります
- Showcase デモ: Save Copy が作業ファイルを切り替えなくなりました。Regenerate と Open External が、最後に書いたコピーではなくメインのギャラリーを使い続けます
- Showcase デモ: ギャラリーの生成に失敗したとき、ビューアが再バインドされて白紙のままではなく、最後に読み込めたギャラリーを表示し続けます
- Showcase デモ: システム ANSI コードページ外の文字を含む出力パスがそのまま通ります
Version 2.770.24
Fixed
- 4 コンポーネント(RGB + アルファ、YCC + アルファ)の JPEG 2000 画像を
TJpeg2000Bitmapへ読み込むと、赤・緑・青・アルファが 32 ビットビットマップの正しいバイトに置かれるようになりました。以前はカラーチャンネルが 1 バイトずれ、アルファチャンネルがその 1 つを上書きしていました - 32 ビット
TJpeg2000BitmapをSaveToStreamとLoadFromStreamで往復させると色が混ざって戻る問題も直ります - 3 コンポーネントのカラー画像・グレースケール画像・4 コンポーネントの CMYK 画像はこれまでどおり読み込まれます
Version 2.770.23
Security
- 値が << で始まり >> で終わるテキスト文字列("<<URGENT>>" のようなタイトル、作成者、フォームフィールド値、注釈テキスト)が、常に文字列として保存されるようになりました。以前はそのまま書き出され、ファイル構文が壊れて、細工したテキストがアクションなどのディクショナリーを保存先ドキュメントへ注入できました
- 新規ドキュメントと、SaveLoadedDocument および関連メソッドで保存される読み込み済みドキュメントに適用されます
Version 2.770.22
Fixed
- C++Builder Barcodes デモが、カレントワーキングディレクトリーではなく実行ファイルの隣へ Barcodes.pdf を書き込み、唯一の引数として出力ファイル名を省略可能に受け付けるようになりました
- C++Builder Barcodes デモが実行後に PDF ビューアを開かなくなり、Delphi 版と同様にページコンテンツを圧縮し、高さ合わせズームで開くようになりました
- C++Builder Barcodes デモのエラーがメッセージテキスト付きで報告されるようになりました。以前はコンソールにメモリーアドレスが表示されていました
Version 2.770.21
Fixed
- 安定版 C ABI で、同じハンドルへの別の呼び出しが実行中の間に(別スレッドから、あるいは読み・書き・進行・キャンセルのコールバックの中から)
hpdf_document_destroyを呼んでも、その呼び出しの下のドキュメントが解放されなくなりました - ハンドルは
hpdf_document_destroyが返ると同時に無効になります。ドキュメント自体は、そのハンドルへの実行中の最後の呼び出しが終わったときに解放されます - 破壊と並行してハンドルを参照する呼び出しは、解放済みメモリーに触る代わりに
HPDF_STATUS_INVALID_HANDLEを受け取ります
Version 2.770.20
Security
- GSUB コンテクストルックアップが自分自身を参照する TrueType/OpenType フォントでテキストをシェーピングしても、スタックが溢れてクラッシュしなくなりました。ネスト深度がレベル間で実際に累積します
- 多数のネストしたルックアップを発火させるコンテクストルールが、それらを無限に近いループに増殖させられなくなりました。各トップレベルの一致は最大 1024 個のネストしたルックアップを実行します
Fixed
- 別のコンテクストルックアップから到達できるチェイニングコンテクスト置換(GSUB lookup type 6)が適用されるようになりました。以前は単純コンテクストレイアウトで読まれて一度も一致せず、一部の合字やコンテクスト形が欠落していました
- コンテクストルールから参照される逆方向チェイニング置換(GSUB lookup type 8)は、コンテクストサブテーブルと誤読される代わりに、OpenType 仕様の要求どおりスキップされるようになりました
Version 2.770.19
Fixed
- ページに画像 XObject やインライン画像が含まれていても、
RenderLoadedPageToDCがアクセス違反を起こさなくなりました。画像は呼び出し元のデバイスコンテキストへ描かれます - 画像を含むページでも
GetLoadedPageMetafileが失敗せず、画像が返されたメタファイルに記録されるようになりました - デバイスコンテキストがクリップリージョンを持たないとき、表示面に対する画像クリッピングが
RenderLoadedPageToDCに渡されたサイズを使うようになりました
Version 2.770.18
Fixed
- グリッドスキップ有効の JBIG2 ハーフトーンリージョンが、リージョンの左や上から始まりながらそれに重なるグリッドセルを落とさなくなりました。以前はその種のセルがはるか外側にあると扱われ、グレー値がスキップされ、リージョンの残りのセルがずれたままデコードされていました
- 整数ピクセルでない負のグリッド座標が、JBIG2 仕様の要求どおりマイナス無限大方向へ丸められるため、部分的に見えるセルが正しいピクセルに載るようになりました
- グリッドが完全に非負座標にあるハーフトーンリージョンは影響を受けません
Version 2.770.17
Fixed
- 標準の RFC 6960 形式(鍵ハッシュの周りの明示的な [2] タグ)で鍵ハッシュによりレスポンダーを識別する OCSP 応答が、再び受け入れられるようになりました。以前は証明書パス検証がそれを破棄し、鍵で自分を名指しするレスポンダーの失効状態が不明のままでした
- 鍵で識別される直接レスポンダー(発行 CA)と委任 OCSP 署名証明書のどちらも照合され、より古い暗黙タグ形式も引き続き動きます
- HPDFDescribeValidationEvidence が OCSP 記述子を、レスポンダー DN の代わりに、応答の発行者名ハッシュから解決した、各応答が名指しする証明書発行者の DN でキー付けするようになりました。委任レスポンダーからの応答や鍵で識別される応答も、証明書発行者による検索で見つかる記述子を返します
- CMS 署名と追加の発行者証明書を受け取る HPDFDescribeValidationEvidence オーバーロードを追加しました。鍵でレスポンダーを識別し、証明書を埋め込まない応答向けです
Version 2.770.16
Fixed
- Viewer デモ: フォームが起動時にアクセス違反を起こさなくなりました。ステータスバーがビューアをドキュメントへバインドする前に存在し、ページ変更の報告を始めます
- Viewer デモ: 検索ボックスで Enter を押すと、2 つ目を飛ばして最初の一致が有効になるようになりました
- Viewer デモ: 解決できるデスティネーションページを持たないブックマークが、偽の "(p0)" 接尾辞なしで列挙され、クリックしても範囲エラーを起こさなくなりました
Version 2.770.15
Fixed
- C++Builder Security デモの復号ステップが、ユーザーパスワード "user" で暗号化サンプルを実際に開くようになりました。以前はパスワード引数が自動復号フラグとして扱われ、サンプルがパスワードなしで読み込まれ、Security-Decrypted.pdf が復号済みのコピーになっていませんでした
Version 2.770.14
Fixed
WかW*で設定するクリッピングパスが、ISO 32000-1 の要求どおり、パスが描かれた後に効くようになりました。以前は描く前に効いていました- クリップも設定するパスのストローク(
re W S)が線幅全体を塗るようになりました。以前はストロークの外側半分がパス自身のクリップで切り取られていました - even-odd クリップ付きの塗り+ストローク(
W* B)が、描画オペレーター自身のワインディングルールで塗るようになりました。以前は even-odd クリップが塗りに穴を開けていました B*とb*が、前の操作が残した塗りルールに左右されず、常に even-odd ルールで塗るようになりました
Version 2.770.13
Fixed
- グレースケールプレーンが MMR 符号化された JBIG2 ハーフトーンリージョンがデコードされるようになりました。以前はプレーンが反転して出て、8 列ごとにしか読まれず、各プレーンの終端が誤ったバイトに置かれるため、後続のプレーンが誤った位置からデコードされていました
- 各 MMR プレーンの後のエンドオブブロックマーカーが、最終行に直接続く場合もバイトパディングの後の場合も認識され、各プレーンがその後のバイト境界から始まるようになりました
- 算術符号化されたハーフトーンリージョンは影響を受けません
- 組み込みデコーダーで読み込み・抽出・描画される、JBIG2Decode フィルター付き PDF 画像に適用されます
Version 2.770.12
Fixed
- ジョブプロセッサー(
THPDFJobProcessor.Execute、HPDFDocRunJob、HPDFDocRunJobWithCallbacks)とドキュメント比較が出力する JSON が、クォートとバックスラッシュを\"と\としてエスケープするようになりました。以前の\x22/\x5C形式は有効な JSON ではなく、クォートや Windows パスを含む結果を標準パーサーが拒否していました - 制御文字は
\uXXXXエスケープで書かれ、出力は常に整形式 UTF-8 になります。有効な UTF-8 でないバイトは、結果にコピーされる代わりに U+FFFD で置き換えられます - ジョブ結果と比較エラーオブジェクトのエラーメッセージが UTF-8 でエンコードされ、英語でない例外テキストやファイル名が ANSI コードページで届かなくなりました
Version 2.770.11
Fixed
- RedactLoadedRect、StampLoadedPageText、StampLoadedPageImage、StampLoadedPageShape、StitchLoadedPage、FlattenLoadedAnnotations が、/Contents がストリーム配列のページで既存コンテンツを捨てなくなりました。新しいオペレーターは配列の末尾に(アンダーレイなら先頭に)別のストリームとして追加されます
- コンテンツが複数ストリームに分かれたページのアンダーレイスタンプは、元のストリームをすべて保ちます
- 単一のコンテンツストリームが素の FlateDecode 以外のフィルター(ASCIIHex、ASCII85、LZW、RunLength、フィルターチェーン、予測子付き Flate)を使うページは、新しいオペレーターを追加する前にデコードされるようになりました。スタンプ・黒塗りボックス・フラット化した外観が実際に描かれ、元のコンテンツも読めるまま保たれます
- ページのコンテンツストリームがまったくデコードできないときは、そのまま残され、新しいオペレーターはエンコード済みバイトに追加される代わりに別のストリームへ書かれます
Version 2.770.10
Security
- 埋め込み CFF フォント(FontFile3、Type1C、CIDFontType0C)が 0x80000000 以上の INDEX オフセットを格納する PDF の描画が、フォントデータの外のメモリーを読まなくなりました。以前はその種のオフセットが負として扱われ、境界チェックを通っていました
- 埋め込み TrueType フォントも、0x80000000 以上のグリフ位置とテーブル長に同じ扱いを受けます。誤った場所から読む代わりに、グリフかフォントがスキップされます
- サブルーチンが互いに何重にも呼び合う CFF グリフが、描画や text-to-path エクスポートをハングさせられなくなりました。各グリフは固定の charstring 操作予算を持ち、実際のフォントの使用量を大きく上回ります
Version 2.770.9
Fixed
- テキストリージョンが 13 ピクセルテンプレートのシンボルリファインメントと共に Huffman 符号化を使う JBIG2 画像がデコードされるようになりました。以前はリージョンヘッダーのリファインメント適応ピクセルバイトがスキップされ、インスタンス数と後続の全フィールドが誤ったオフセットから読まれ、画像が拒否されていました
- 算術符号化を使う、または 10 ピクセルリファインメントテンプレートを使うテキストリージョンは影響を受けず、これまでどおり正確にデコードされます
- 組み込みデコーダーで読み込み・抽出・描画される、JBIG2Decode フィルター付き PDF 画像に適用されます
Version 2.770.8
Security
- コーデック分離が有効なとき、分離コーデックワーカーが返すデコード済み画像のサイズが、ワーカー自身が上書きできる容量フィールドの代わりに、設定された出力上限とホストプロセスが確保した共有メモリーに対してチェックされるようになりました
- 侵害された・故障したワーカーが、ホストに共有メモリーブロックの末尾を越えてコピーさせられなくなりました。その種の応答はプロトコルエラーとして拒否され、画像はそこから描かれません
- ワーカーの応答は 1 度コピーされ、そのコピーから検証されるため、チェックとピクセルコピーの間でヘッダーが変われなくなりました
Version 2.770.7
Fixed
- ライブ失効チェック(HPDFCollectCMSRevocationRequests とオンライン証明書パス検証)のために組む OCSP 要求が、CertID の SHA-256 アルゴリズム識別子を正しくエンコードするようになりました。以前は最初の 2 つのオブジェクト識別子アークが別々のバイトとして書かれ、ハッシュアルゴリズムが無効になっていました
- 不正な形式の要求を拒否する OCSP レスポンダーが、これらの要求にエラーではなく通常のステータスで答えるため、オンライン失効チェックが要求エンコーディングのせいでオフライン証拠へフォールバックしなくなりました
Version 2.770.6
Fixed
- Type 3 フォントの描画が、グリフの出現ごとに塗るようになりました。以前は同じテキストラン内で、あるいはページ上の同じサイズ・向きのどこかで繰り返されたグリフが、最初の 1 回だけ塗られ、後は空白のままでした
RenderLoadedPageToBitmap、RenderLoadedPageToDC、ページメタファイル、画像エクスポート経路に影響します。共有レンダーキャッシュの有無にかかわらず同様です- 繰り返される Type 3 グリフはグリフキャッシュを使い続けるため、この修正でもグリフ手続きが出現ごとに再読されることはありません
Version 2.770.5
Fixed
- 安定版 C ABI で、ドキュメントのパース中に
hpdf_document_load_from_ioが失敗しても(読み込みコールバックがエラーを報告したとき、操作が途中でキャンセルされたときなど)、入力ソースが二重に解放されなくなりました。以前はその種の読み込みがヒープを破損させ、ホストプロセスをクラッシュさせることがありました - 失敗した読み込みは内部エラーの代わりにコールバックかキャンセルのステータスを返し、同じドキュメントハンドルをその後また読み込めるようになりました
- 既存ハンドルへの新しいドキュメントの読み込みは、新しい読み込みが引き継いだ後でのみ前の入力ソースを解放します
Version 2.770.4
Fixed
/Rotate 90や/Rotate 270のページでDecodeLoadedPageBarcodesが返すバーコード結果が、ページをまたいで鏡映した位置ではなく、シンボルの実際の位置の境界を報告するようになりました- その種のページで報告されるバーコードの向きが、ページ空間でシンボルが実際に読まれる方向と一致するようになりました
- 90 度回転ページで
ApplyLoadedOCRTextLayerが置く不可視テキストが認識された単語の上に載るため、選択と検索が正しい場所をハイライトします - 90 度回転ページの黒塗り検出が見つけた顔も、正しいページ領域へマップし返されるようになりました
- 回転なしと 180 度のページは影響を受けません
Version 2.770.3
Fixed
- 32 ビットビルドで、PixarLog 圧縮の TIFF 画像の読み書きがスタックオーバーフローでクラッシュしなくなりました。コーデック選択時に組まれるコンパンディングテーブルが、無限再帰する指数ヘルパーに当たっていました
- 32 ビットビルドの SGILog(LogLuv)TIFF 画像も、修正された同じ数学ヘルパーを通るようになりました
- TIFF コーデックが使う 32 ビット切り下げヘルパーが、負の値をマイナス無限大方向へ丸め、オーバーフローエラーなしで大きな値も受け付けます。64 ビットビルドと一致します
Version 2.770.2
Changed
- 描画時に、ピクセルサイズの半分以下で描かれる画像が、全サイズのまま保持されて描画中に引き伸ばされる代わりに、デコード直後に面積平均で描画サイズちょうどに縮小されるようになりました
- 縮小された画像はデコード済み画像キャッシュに収まります。アルファを復元するため黒と白に 2 回描かれる透過グループも、パスごとではなくその画像を 1 度だけデコードするようになり、同じページの再描画も同様です
- ソフトマスク付き画像は、マスクも縮小された描画サイズで、ピクセルごとにマスクと結合されるようになりました。大きな画像とそのマスクのフルサイズコピーを作って事前乗算することを避けられ、マスクエッジもニアレストネイバーでサンプリングされなくなります
- その種のグループの中で 4229 x 4629 のマスク付き画像を約 1/4 のサイズで描くサンプルページでは、描画が 4.5 秒の代わりに約 1.8 秒で終わります
- ステンシル画像マスクはフル解像度を保ち、公開されているリージョンデコードメソッドもドキュメント通りのサイズを返し続けます
Version 2.770.1
Fixed
- 64 ビットビルドで、透過グループが自分自身のソフトマスクを持たないとき、透過グループ付きページの描画がリストインデックスエラーで失敗していました。バージョン 2.769.3 のリグレッションです。その種のページが再び描画されるようになりました
Version 2.770.0
Added
- 新しい
RenderColorimetricLuminosityMasksプロパティが、グループが CIE ベースのブレンディングスペース(CalGray、CalRGB、Lab、ICCBased)を持つとき、ルミノシティソフトマスクが色をマスク値へ変える方法を選べるようにします trueにすると、ISO 32000-1 11.5.3 が説明するとおり CIE Y を使います。2 つの設定で描かれたビットマップは別々にキャッシュされます
Changed
- 既定では、ルミノシティマスクが一般的な PDF ビューアと同様、ブレンディングスペースにかかわらず、グループの解決済み色を DeviceRGB のように重み付けするようになりました。CIE Y はリニアスケールで測るため、ICC やキャリブレートされたグループの中間グレーは約 1/5 しかマスクされず、ドロップシャドウとフェードが他のビューアよりずっと薄く出ていました
- マスクの
/BCバックドロップ色は、マスクグループ内の塗りと同じ設定に従います - グループがデバイスカラー空間を使うマスクはこれまでどおり描画されます
Version 2.769.3
Fixed
- デザインツールが書き出す Multiply のドロップシャドウのように、Normal 以外のブレンドモードで塗られる透過グループが、自分の色とアルファをバックドロップとブレンドするようになりました(ISO 32000-1 11.3.6 と 11.4.8)。グループが部分的に透明な場所では、そのピクセルがすでにバックドロップを含んでおり、それがさらに自分自身とブレンドされていました。Multiply のシャドウが暗すぎ、バックドロップの色相になっていました
- 透過グループのコンテンツは Normal ブレンドモードから始まるようになりました。ブレンドモードはグループ全体に適用されるためです(11.6.6)。以前はグループが描かれたモードを保ち、分離(isolated)グループが空の始点にコンテンツを乗算して黒く塗られていました
- ブレンドモードと同じグラフィックスステートに設定されたソフトマスクは、Normal ブレンディングでマスクグループを描きます(11.6.5.2)。以前はブレンドモードが白のマスクグループを黒くし、マスクが示すはずのものを隠していました
- 分離されていないグループのアルファを求めるため、自分のグラフィックスステートが通常どおりブレンドするとき、グループは黒と白に 2 回描かれます。その種のページの描画はやや遅くなります
Version 2.769.2
Changed
- ソフトマスク付き画像が、マスクなし画像がすでにそうであったように描画サイズでデコードされるようになり、そのマスクも同じサイズでデコードされます。JPEG マスクはフルデコードされる代わりに縮小サイズ JPEG デコーダーを通ります
- 画像とマスクは常に全体でデコードされるため、マスクが画像に対してずれることはなく、クリッピングは描かれるものを可視部分に保ちます
- 4229 x 4629 のシャドウ画像と、約 1000 ピクセル幅で描かれる 2114 x 2314 の JPEG マスクを持つページでは、72 dpi の描画が 3.7 秒の代わりに 1.6 秒で終わります
DecodeLoadedImageRegionAtResolutionが、リージョンデコーダーを持たない形式の画像全体を、もう 1 度コピーせずにデコード済みのまま返します
Version 2.769.1
Changed
- ソフトマスクの構築が速くなりました。マスク構築が比較用にページ全体の 2 つ目のコピーを保持しなくなりました。以前はデザインツールが書き出すグラデーションやドロップシャドウのようなマスク多数のページが、マスクごとに 1 度ずつその代償を払っていました
- キャリブレートまたは ICC ベースのブレンディングスペース上のルミノシティマスクは、ピクセルごと・チャンネルごとに計算する代わりに sRGB カーブを参照するようになりました。よくあるグレーのマスクコンテンツは単一のテーブルで変換されます
- ソフトマスク約 20 個の 1125 x 1600 ページの描画は約 20% 速くなります。描画されるピクセルは変わりません
Version 2.769.0
Changed
- ページの Width や Height の設定がエラーを隠さなくなりました。失敗すると、サイズを黙って未適用のままにする代わりに例外を上げます。キャンバスがすでに閉じられたページのサイズ設定は、理由を伝えるメッセージ付きの新しい EHPDFPageClosedError を上げます
- その種の失敗の後、ページが「以後のサイズ変更が MediaBox だけを更新し、描画に使われるページサイズを更新しない」状態のままにならなくなりました
Fixed
- 読み込んだ PDF のページのリサイズが他のオブジェクトを上書きしなくなりました。数値が別オブジェクトの MediaBox や、複数ページで共有される MediaBox 配列は、リサイズ対象ページのためにコピーされ、他のページはサイズを保ちます
- MediaBox の数値が 4 個未満の読み込み済みページのリサイズが、新しいサイズの完全な MediaBox を書き込むようになりました。以前は新しいサイズが無視されていました
Version 2.768.20
Fixed
- テキスト抽出が、直接的にでも他のフォーム経由ででも自分自身を描く Form XObject に入らなくなりました。以前はその種のフォームがネストレベルごとに再読され、テキストが最大 12 回繰り返され、自分を 2 回描くフォームは 4,096 パスかかっていました
- フォームの境界ボックス(クリップ)の外に出る Form XObject のテキストが、ページテキストに含まれなくなりました
Version 2.768.19
Changed
- 大きなドキュメントが再び速く読み込めるようになりました。ページツリーをたどるとき、ページごとに読み込み済み全オブジェクトを検索しなくなり、AutoDecrypt 付き LoadFromFile の暗号化チェックが、読み込みと同じバッファーでファイルを読みます。56 MB の PDF Reference 1.7 が 22 秒の代わりに約 8 秒で読み込めます
Version 2.768.18
Fixed
- ページ描画が、中国語 Windows の Microsoft YaHei や日本語 Windows の Yu Mincho のように、Windows がローカライズ名で報告するインストール済みフォントを見つけられるようになりました。PDF がそれらを埋め込んでいないとき、その種のフォントのテキストが代替フォントで描かれていました
- スペースなしで書かれたフォント名が、単語をつなげたままの Windows ファミリー(Microsoft YaHei に対する MicrosoftYaHei、Microsoft JhengHei に対する MicrosoftJhengHei、MS PGothic に対する MSPGothic など)と一致するようになりました。以前は大文字の前にスペースを入れて検索され、決して見つかりませんでした
- レンダラーがどのフォント名がインストール済みかを記憶するため、未インストールのフォントを多く含むドキュメントが、ページごとに名前ごとの Windows 問い合わせをしなくなりました
Version 2.768.17
Changed
- 大きなドキュメントが大幅に速く読み込めるようになりました。操作テレメトリーが、パーサーが読むオブジェクトごとの代わりに、操作内では最大 10 ms ごとに 1 度メモリーをサンプルします。以前のサンプルはメモリーマネージャーの全ブロックをたどっていました。1,236 ページの PDF Reference 1.6 が 30 秒の代わりに約 2.5 秒、56 MB の PDF Reference 1.7 が 4 分超の代わりに約 22 秒で読み込めます
- 遅延はアプリケーション自身のヒープサイズとともに育っていたため、多くのメモリーを抱えるアプリケーションが最も恩恵を受けます
- UpdateOperationTelemetrySample に、間隔にかかわらずサンプルを取る省略可能な Force パラメーターが付きました。各操作の終わりはこれまでどおりサンプルを取ります
Version 2.768.16
Fixed
- 空のファイルの読み込みがハングしなくなりました。以前は LoadFromFile がファイルの先頭から後ろ向きに読み続けて無限ループしていました
- 空のファイル・プレーンテキスト・ランダムバイトのような、ページが 1 つも見つからないファイルが、サイズから推測した 1-3 枚の白紙ページとして読み込まれなくなりました。LoadFromFile は他の読めないファイルと同様、0 を返すか例外を上げます
- ページが暗号化オブジェクトストリームの中にある暗号化ファイルが、パスワードなしで読み込んだとき、白紙ページとして読み込まれる代わりに、パスワードが必要だと述べる例外を上げるようになりました。パスワード付きオーバーロードで読み込んでください
Version 2.768.15
Fixed
- ページテキストが、同じ位置に重ねて描かれた文字を二重に返さなくなりました。オーバープリントのロゴや、わずかにオフセットを変えてテキストを 2 回描く疑似ボールドなどが該当します。以前はこうしたテキストが "Bold wordsBold words" のように 2 回抽出され、検索しても見つからないことがありました
- ページテキスト・カラム・レイアウト・セマンティックの各テキスト抽出は、こうした文字を 1 回だけ読み取ります。グリフリストはこれまでどおり、実際に描画されたすべてのグリフを報告します
Version 2.768.14
Fixed
- Adobe Glyph List の全グリフ名がテキスト抽出と描画で解決されるようになりました。合字の fi、fl、ff、ffi、ffl や、古いキリル・ヘブライ・アラビアフォントが使う afii 系の名前も含まれます。こうしたグリフ名を持つフォントエンコーディングでは誤った文字が返っており、たとえば "defined" が "deÞned" として抽出されていました
Version 2.768.13
Changed
- LoadFromFile は、LocalFileMappingThreshold 未満のファイル(既定 8 MB)と、マッピングが無効または利用不可のときの全ファイルを、64 KB の読み込みバッファー経由で読むようになりました。オブジェクト数が多く古典的なクロスリファレンステーブルを持つファイルは大幅に速く読み込め、たとえば 912 ページの PostScript Language Reference Manual が 3 分近くから約 1 秒で開きます
Version 2.768.12
Fixed
- CID キー(Type 0)フォントの /W 幅配列が CID 順に並んでいない場合でも、テキスト抽出がグリフを正しく配置するようになりました。以前はほとんどのグリフが既定の全角幅を掴み、行がページ端を越えてはみ出し、行末が抽出テキストと検索結果から落ちていました
Version 2.768.11
Fixed
- 基本文字とアクセントを組み合わせて作られた埋め込み CFF(Type 1C)フォントのアクセント付き文字(Type 1 からの変換フォントに多い)が描画されるようになりました。ü や é のような文字が空白のままになり、"München" に欠落が見える状態でした
- フォントを埋め込んだ SVG エクスポートでも、同じ文字が完全な形で出力されます
Version 2.768.10
Fixed
- 埋め込み TrueType フォントの複合グリフが、各パートを固有のオフセットに置いて描画されるようになりました。以前は é や Å のアクセントが消え、curly ダブルクォートはシングルクォート+空白に見えていました
- フォントを埋め込んだ SVG エクスポートでも、同じグリフが完全な形で出力されます
Version 2.768.9
Fixed
/Interpolate false指定の画像を自身の解像度より小さく描くとき、平均化して縮小するようになりました。以前は数ピクセルごとにサンプリングするだけで、画像として置かれたチャートの軸ラベルがギザギザに濁り、細線が途切れていました。他のビューアはなめらかに表示します/Interpolate falseのまま拡大した画像は、これまでどおりハードなピクセル縁を保ちます
Version 2.768.8
Fixed
- 疑似ボールドで文書が使うような 1 ピクセル未満のストローク幅のテキストが、その幅のまま描画されるようになりました。以前はストロークが丸ごと 1 ピクセルになっていたため、その種の見出しが滲んで他のビューアよりずっと重たく見えていました
- テキスト描画モード 1 と 2 では、埋め込み・インストール済みフォントの小さいグリフに、塗りに続いてストローク色でアンチエイリアシング付きのストロークが施されます
Version 2.768.7
Fixed
- 読み込み済みドキュメントに対する
ProcessObjectStreamsForDecompressionの呼び出しが、読み込み時に取得したオブジェクトストリームを破棄しなくなりました。圧縮オブジェクトは呼び出し後もExtractRawObjectFromStreamやExtractObjectFromStreamで読めており、以前は 1 つも読めませんでした - メソッド自身がファイルを走査する場合(古典的なクロスリファレンステーブルを持つドキュメントなど)、別のストリームの直後に続くオブジェクトストリームも検出し、オブジェクト数とオフセットをそのディクショナリーから読み取ります
ExtractRawObjectFromStreamは、オブジェクトストリームキャッシュが解放済みのときもオブジェクトストリームを再度デコードし、空の結果を返しません
Version 2.768.6
Fixed
- Stamp デモが Win64 向けにビルドできるようになりました
Version 2.768.5
Fixed
- 中国語・日本語・韓国語版 Windows で、ディクショナリーにバイナリ文字列(添付ファイルのチェックサムなど)を持つクロスリファレンスストリームのドキュメントが一瞬で読み込めるようになりました。添付 PDF を 9 ファイル抱えた 4 MB のポートフォリオで、オープンに 2 分かかっていました
- パーサーはキーワードを、Windows コードページで変換したテキストではなくファイルの生バイト列から探すようになりました。キーワードの隣にあるバイナリデータがキーワードを隠したり位置をずらしたりすることはもうありません
Version 2.768.4
Fixed
- Form XObject の内側のコンテンツが、フォーム自身が設定した不透明度・ソフトマスク・ブレンドモードで描画されるようになりました。以前はフォームの中身がすべて全不透明で塗られ、半透明の透かしやスタンプがベタで出ていました
- 独自の不透明度を持つフォームは、これまでどおり全体として 1 回合成されます
Version 2.768.3
Fixed
- ページテキストに、Form XObject 経由でページが描くテキスト(ヘッダー・フッター、透かし、スタンプなど)が含まれるようになりました。以前はページ自身のコンテンツ内のテキストしか返ってきませんでした
- フォームテキストはフォームが描かれた位置に出現し、フォームのマトリックスで配置され、フォーム自身のフォントで読み取られます。フォームの中にネストしたフォームもたどります
- 対象はページテキスト(通常・レイアウト・カラム・セマンティック)すべてです。グリフレベルの抽出は従来どおりページ自身のコンテンツのグリフのみを返します。その位置がページコンテンツを指すためです
Version 2.768.2
Fixed
- AES-256 の
EncryptFileとDecryptFileが、ディクショナリーで/Lengthより先に/Length1を書く(Ghostscript などがそう書きます)埋め込みフォントファイルを壊さなくなりました。以前はそうしたフォントが 1 バイトとして暗号化され、出力が読めないものになっていました - 長さが圧縮オブジェクトストリーム内に格納されたストリームも、AES-256 の暗号化・復号を通じて全データが保持されます。以前はその種のストリームの最終バイトが失われることがありました
Version 2.768.1
Fixed
- ストリーム長が圧縮オブジェクトストリーム内に格納されたドキュメント(Ghostscript の書き出し形式)が完全に読み込めるようになりました。以前はその種のファイルのページコンテンツストリームがすべて欠落し、ページは白紙になりテキストも返りませんでした
- 長さが存在しないオブジェクトを参照している、または長さをまったく持たないストリームは、欠落させる代わりに終端マーカーまで読むようになりました
Version 2.768.0
Added
BuildLoadedPageSVGとSaveLoadedPageAsSVGにオプションのEmbedFontsパラメーターが付きました。既定はオフで、既存の呼び出しは従来とまったく同じ出力になりますEmbedFontsをTrueにすると、TrueType または CFF プログラムが PDF に埋め込まれたフォントのテキストを、フォント自身のグリフアウトラインから描画します。そのフォントがインストールされていないシステムでも SVG は同じ見た目になります- 各グリフアウトラインは 1 度だけ書き出され、文字が現れるすべての場所で再利用されるため、テキストの多いページでもファイルサイズが抑えられます
- テキストはアウトラインの上に透明テキストとして SVG に残るので、選択・検索・スクリーンリーダーでの読み上げが可能です
- 塗り・ストローク・塗りとストロークのテキスト、線幅、回転・拡大縮小されたテキスト、クリッピングパスに使われるテキストが、描画ページどおりに出力されます
- 埋め込まれていないフォント、Type 1 フォントプログラム、縦書き CJK テキストは従来どおり普通の SVG テキストのままです
Version 2.767.4
Fixed
- 埋め込まれていないフォントのアウトライン表示・塗り+アウトライン表示のテキスト(テキスト描画モード 1 と 2)が、描画時に線幅を尊重するようになりました。以前は線幅にかかわらず、アウトラインが必ず 1 ピクセル幅で出ていました
- この種のアウトラインは、塗りテキストと同様に、インストール済みフォントの正確なグリフ形状を正確な位置に置いて描かれます
- インストール済みフォントに不足していて Windows がフォールバックフォントから補う文字も、アウトライン時に線幅を保ちます
Version 2.767.3
Fixed
- 埋め込まれていないフォントのテキストが、エンコーディング名の示す文字で描かれるようになりました。以前は文字コードがそのままインストール済みフォントに渡り、フォントは自分の文字セットで解釈するため、
/Differencesの各エントリーや、StandardEncoding・MacRomanEncoding が Windows の文字セットと異なるコードがすべて誤った文字になっていました。エンコーディングを持たない Type 1 フォントで、curly クォートがストレートクォートになるのが典型です - 中国語・日本語・韓国語版 Windows では、バージョン 2.766.83 以降、埋め込みでないフォントのアクセント付き文字・curly クォート・著作権表示などコード 127 超の文字が疑問符で描かれていました。インストール済みフォントの文字セットで再び読まれるようになっています
- Symbol フォントは独自のコードマッピングを保ちます
Version 2.767.2
Fixed
- 埋め込みフォントの大きなグリフもアンチエイリアシング付きで描画されるようになりました。64 ピクセル超のグリフ(印刷解像度での見出しやタイトルなど)はアンチエイリアシングなしで塗られて輪郭がギザギザになっており、現在は 256 ピクセルまでアンチエイリアシングされます。インストール済みフォントのさらに大きなテキストはシステムのアンチエイリアス付きテキスト出力をそのまま使います
Version 2.767.1
Fixed
- レイアウトテキスト・カラムテキスト・セマンティックテキストの各抽出が、ページ単位でページを測るようになりました。以前は
Tfに与えたフォントサイズとテキスト空間の送りを基準に位置を比較しており、テキストマトリックスで文字サイズを決める文書が多いせいで実距離の何分の一かしかなく、レイアウトテキストは 1 文字が複数カラムに散らばり、カラムテキストは語間スペースをすべて失い、セマンティックテキストはほぼすべての単語を別行扱いにしていました - 3 方式とも、可視ボックス内のテキストだけを返し、テキスト位置の移動で語間を空けた語も分割します。通常のページテキストと同じ扱いです
- レイアウトテキストでは、m や W のような幅広文字が語中にスペースを押し込んでいた問題が解消され、語の文字がまとめて保たれます
- セマンティックテキストは、1 カラムページの各行のあとに空行を挟まなくなりました。全幅の行が続けば 1 ゾーンを成し、ゾーンの変化は行間隔より大きく離れたときだけ行を分けます
- これらのメソッドのヘルプページに戻り値の説明があり、カラムメソッドは完全な構文を載せるようになりました
Version 2.767.0
Added
LoadFromFileとLoadFromStreamにAutoDecryptパラメーターを持つオーバーロードが付きました。AutoDecryptが True のとき、空のユーザーパスワードで暗号化されたドキュメント(印刷・コピー・編集だけを制限する文書の典型)は、ビューアが開くのと同じ要領で復号済みの状態でメモリに開かれ、パスワードを与えなくてもテキスト抽出・ページ描画・エクスポートができます- パスワードが必要なドキュメントと暗号化されていないドキュメントは、通常のオーバーロードとまったく同じように読み込まれます。空パスワードで開けるかどうかは、読み込み前にファイルのごく一部の範囲で判定されます
- パスワード付きオーバーロードと同様、この方法で開いたドキュメントはメモリ上で復号済みになり、保存すると暗号化されていないコピーが書き出されます
Version 2.766.83
Changed
- 標準 14 フォントやインストール済みの Office・中国語フォントのような、埋め込みでないフォントの小さいテキストが、ヒンティングなしのグリフアウトラインから正確な位置に、埋め込みフォントと同じアンチエイリアシングで描画されるようになりました。以前のシステムテキスト出力はグリフを丸ピクセルに置いてピクセルグリッドに形状を合わせるため、小さいテキストは間隔が不均一でにじんで見えていました。描画ページが他のビューアの形状や間隔にはるかに近づきます
- インストール済みフォントが持たないグリフと大きなグリフは従来どおりシステムテキスト出力で描かれ、リンクフォントから不足文字を補えます
Fixed
- 埋め込みフォントの小さいグリフの描画が速くなりました。アンチエイリアシングの裏にあるビットマップをグリフごとに作らず再利用するためです
Version 2.766.82
Fixed
- 描画ページでインストール済みフォントを使うテキストが、グレースケールのアンチエイリアシングで描かれるようになりました。以前はシステムの ClearType 設定に従うため、描画ビットマップ内の黒テキストにマシン依存の赤・青フリンジが付き、保存・印刷・拡大縮小した画像にも残っていました
Version 2.766.81
Fixed
- 埋め込み CFF と OpenType CFF フォントの小さいテキストが、TrueType テキストと同様にアンチエイリアシング付きで描画されるようになりました。この種のグリフはアンチエイリアシングなしで塗られていたため、小さいサイズと通常の画面解像度では 1 ピクセルより細いステムが消え、本文が断片化して見えていました。Helvetica Neue などのフォントで組まれたフォームや文書が 72 DPI で読めるようになっています
Version 2.766.80
Changed
- ページテキスト抽出は、ページに見えているテキストだけを返すようになりました。可視領域(メディアボックス内のクロップボックス)の外にあるグリフは除外されるため、トンボやスラッグなど断ち切りページの外のコンテンツが抽出テキストに現れなくなります。グリフレベルの抽出は従来どおり、位置付きですべてのグリフを返します
Version 2.766.79
Fixed
- テキストマトリックスでサイズを決めるテキストで、持ち上がった上付き文字やわずかにずれたベースラインで行が折れなくなりました。以前はテキストが
Tfのフォントサイズ(そうした文書ではたいてい 1)の半分だけ上下に動くたびに改行しており、0.5 ポイントの移動で十分改行されていました - ページ脇を縦に走るラベルや斜めの透かしなどの回転テキストも、すべての文字が別行になることがなくなりました。行の判定は、テキストが走る方向と直交する移動量を、ページ上のテキスト高さの半分と比べる方式です
Version 2.766.78
Fixed
- SVG エクスポートがインストールされていないフォントを汎用フォントファミリーへフォールバックさせるとき、その種類の一般的なフェイス名を先に挙げるようになりました。
serifの前に Times New Roman、sans-serifの前に Arial、monospaceの前に Courier New です。ブラウザーは裸の汎用ファミリーのフェイスを自分の言語設定で選ぶため、中国語・日本語のブラウザーでは全角幅のラテン文字を持つ CJK フォントが選ばれ、PDF 由来の位置で文字が重なっていました
Version 2.766.77
Fixed
- SVG エクスポートが、
KaiTi_GB2312やその中国語表記のような旧 GB2312 名で知られるフォントを、インストール済みの中国語フォントファミリー名で参照するようになりました。Windows アプリケーションはシステムのフォント代替を経由してこれらのフォントに届きますが、ブラウザーは届かず、こうしたテキストはブラウザーの既定フォントで表示されていました - 1 つの言語でしか名前を持たないフォントにも、インストール済みファミリーのもう一方の名前(SimHei とその中国語名など)と、スタイルの合う汎用ファミリーが与えられます
Version 2.766.76
Added
THPDFGlyphRecordにGlyphEndXとGlyphEndYが付きました。グリフ自身の幅に沿ったベースライン上の終点(ページ空間)で、キャラクタースペーシングとワードスペーシングを含みません
Fixed
- ページテキスト抽出が、スペース文字の代わりにテキスト位置の移動で語間を空ける文書の単語を分割するようになりました。多くのプロデューサーは
[(PDF)-240(Reference)]のように書いたり単語ごとに位置指定オペレーターを置いたりしますが、そうした単語はPDFReferenceと繋がって出力されていました - グリフ自身の幅のあとの隙間がテキスト高さの 0.15 を超える場所にスペースを補います。判定はページ単位で行うため、テキストマトリックスでサイズを決めたテキストもフォントサイズで決めたテキストと同じ扱いになります
- カーニング、わずかに緩めたスペーシング、位置調整で返されるタイトなキャラクタースペーシング、オーバープリントテキスト、そして本物のスペース文字はそのまま保持されます。中国語・日本語・韓国語の文字同士の間には、ジャスティフィケーションでどれだけ離れてもスペースを入れません
Version 2.766.75
Fixed
- テキスト抽出・SVG エクスポート・描画が、Symbol フォントのグリフ名(
copyrightsans、registerserif、trademarksansや、大きな括弧・波括弧のパーツparenlefttp、braceex、integralexなど)を認識するようになりました。サブセット化された Symbol フォントはこれらの名前を再エンコードしていることが多く、文字が生の制御コードとして出力されていました - ITC Zapf Dingbats の全グリフ名(
a1〜a206)も認識されます。フォームフィールドや箇条書きでよく使われる、チェックマーク・クロス・矢印・丸付き数字をこの名前で選ぶフォントでも、対応する Unicode 文字として抽出されます - 文字からグリフ名を引く場合は、ZapfDingbats 名でなく
arrowrightやspadeのような一般的な名前を優先します
Version 2.766.74
Fixed
HPDFExtractGlyphsViaDeviceが無効なポインター操作で失敗しなくなりました。内部で作るテキスト抽出デバイスは参照カウント管理なのに、関数が明示的に解放もしていたため、毎回の呼び出しの最後にデバイスが二重解放されていました
Version 2.766.73
Fixed
- テキスト抽出が仕様どおり(ISO 32000-1 9.3.1)
Qでテキスト状態を復元するようになりました。以前は変換行列だけを復元しており、q...Qの内側で設定したフォント・キャラクタースペーシング・リーディングが、そのあとのテキストにも効いたままでした q...Qの内側で 2 バイトコードのフォント、外側で 1 バイトコードのフォントが選ばれていた場合、Q以降のテキストが 2 バイトコードとしてデコードされて失われていました。Word 系のプロデューサーはこの書き方をするため、目次のリーダー(点線)や中国語区間に挟まれたラテン語の単語が消えるのが典型的でした- 修正はページテキスト API とデバイスベースのテキスト抽出インターフェースの両方をカバーします
Version 2.766.72
Fixed
RestoreStateのあとに描くテキストで、常にフォントが選択されるようになりました。ページは直前に書いたのと同じフォント選択をスキップしますが、RestoreState(Qオペレーター)がSaveState前のフォントへ戻すことを考慮していませんでした。RestoreStateのあとに、ペアの内側で選んだフォントのテキストを出すと、フォントなしまたは誤ったフォントになり、ビューアが表示を落としたりテキスト抽出が読めなくなったりしていました- キャラクタースペーシング・ワードスペーシング・水平スケーリング・リーディングも同じく
SaveState/RestoreStateに従うようになり、RestoreStateのあとに再設定した値は、読み手側がすでに前の値へ戻っていても書き出されます - Type 3 フォントの選択が、直前のフォントの再選択をスキップさせることもなくなりました
- PDF に変換された XPS ドキュメントは影響を受けていました。各グリフランが独自に保存したグラフィックス状態の中で描かれるためです
Version 2.766.71
Fixed
- 単純フォント(Type 1・TrueType・Type 3)の
/ToUnicodeCMap が 2 バイトコード空間を宣言している場合(一部のプロデューサーは全フォントでこう書きます)、テキスト抽出と SVG エクスポートがコードを 2 バイトとして読むようになりました。単純フォントのコードは常に 1 バイト(ISO 32000-1 9.6.6)なので、以前は文字 2 個が 1 個の未知コードとみなされ、テキストの大部分が失われて 1 文字ずつの文字列しか残りませんでした
Version 2.766.70
Fixed
- SVG エクスポートが
Td、TD、T*、'、"のオペランドをページ単位で動かしており、テキスト空間ではありませんでした(ISO 32000-1 9.4.2)。ワードプロセッサーがよく書く1 Tf+スケール済みTmのテキストは、行が最初のベースライン付近に積み重なっており、現在は PDF どおりに配置されます - 同じ修正がコンテンツデバイス式テキスト抽出器
THPDFTextExtractDeviceにも適用されます
Version 2.766.69
Fixed
- ページレンダラーが
#xxエスケープ入りのフォント名を、エスケープしたまま Windows に渡していました。中国語文字表記の KaiTi_GB2312 のように CJK フォントでよくあるこの形式の名前の非埋め込みフォントは、どのインストール済みフォントにも一致せず、代替フェイスで描かれていました。エスケープをデコードするようになり、UTF-8 の名前は文字を保ち、その他のバイトはシステムコードページで読みます
Version 2.766.68
Fixed
- SVG エクスポートが
#xxエスケープ入りのフォント名を、エスケープ文字列そのものとして書き出していました。UTF-8 バイトで格納された CJK フォント名(中国語文字の KaiTi_GB2312 名など)はfont-familyに#e6#a5#b7...の形で渡り、インストール済みフォントに決して一致しませんでした。エスケープをデコードするようになり、有効な UTF-8 の名前は保持し、その他のエンコーディングのバイトは従来どおり落とします
Version 2.766.67
Fixed
- SVG エクスポートが
Qでテキスト状態を復元していませんでした。q...Qの内側で設定したフォント・サイズ・スペーシング・スケーリング・リーディング・ライズ・描画モードが、そのあとのテキストに持ち越されていました。保存した状態の中で2 Trによる見出しの疑似ボールドをやるページで、以降の本文がすべてストローク付きの重たい文字になっていました。テキスト状態はグラフィックス状態の他の要素とともに保存・復元されます(ISO 32000-1 9.3.1)
Version 2.766.66
Fixed
- SVG エクスポートがストローク描画モード(1、2、5、6)のテキストをストローク幅なしで書き出していたため、SVG の既定値である 1 テキスト空間単位が効いていました。細いストロークで疑似ボールドにするテキスト(
2 Tr 0.25 wなど)がずっと重たく見えていました。線幅はユーザー空間からテキスト要素の空間へ変換して書き出され、幅 0 は 1 ピクセルの線になり、line join も保持されます
Version 2.766.65
Fixed
- trailer が
/Encryptを参照ではなく直接ディクショナリーとして持つドキュメント(一部の PDF ライターが出力します)が、暗号化されていないものとして読み込まれていました。正しいパスワードを与えてもページは白紙で、テキスト抽出と SVG エクスポートは何も返さず、SaveLoadedDocumentは/Encryptを落としたまま暗号化済みストリームを残す壊れたファイルを書き出していました。間接参照の暗号化ディクショナリーを持つドキュメントと同じく、開く・復号する・保存するができるようになっています - クロスリファレンスローダーは trailer を最初の
>>で切っていたため、trailer 内のネストしたディクショナリー以降のエントリーが失われていました。対応する閉じ区切りまで読むようになっています
Version 2.766.64
Fixed
- 描画・SVG エクスポート・ビューア・印刷が、読み込んだページの
/MediaBox全体を表示していました。ページは/CropBox(/MediaBoxでクリップ)で表示・印刷される(ISO 32000-1 14.11.2)ため、クロップボックスを持つページは大きすぎ、ずれて、隠すはずのコンテンツまで見えていました RenderLoadedPageToBitmap、タイル・バンド・メタファイル・デバイスコンテキストの各レンダラー、BuildLoadedPageSVG、ビューアのページジオメトリ・ハイライト・領域スナップショット、印刷が、可視ボックスを対象にするようになりました。/CropBoxを持たないページは変わりません
Added
THotPDF.GetLoadedPageVisibleBoxが、読み込んだページの可視ボックス(/CropBoxを/MediaBoxでクリップした領域)を返しますTHPDFPageDisplayList.CropBoxが、コンパイル済みディスプレイリストに対して同じボックスを返します
Version 2.766.63
Fixed
- 内蔵グリフリストの検索がテーブル末尾の 13 エントリー手前で止まっており、辞書順で最後に来るグリフ名(
y、z、zero、zeta、yen、ydieresis、zcaronなど)がまったく見つかりませんでした。テキスト抽出はそれらを名指しするフォントの/Differencesエントリーを無視し、ページレンダラーはWinAnsiEncodingやMacRomanEncodingの埋め込み CFF フォントの y・z・0 を代替システムフォントで描いていました - U+0060 のようなアクセントのグリフ名を引くと、
graveではなく MacExpertEncoding の小型大文字名(Gravesmall)が返るため、埋め込み CFF フォントではこの種のアクセントも抜けていました
Version 2.766.62
Fixed
- ページレンダラーが線幅とダッシュ長をデバイスピクセルとして扱っており、ユーザー空間単位ではありませんでした(ISO 32000-1 8.4.3.2、8.4.3.6)。線はどの解像度でも同じピクセル幅で、
cmによるスケーリングも無視していました。macOS Quartz 経由で書き出されたスライド(1/12700 スケールの EMU 幅で図形をストロークします)は、ストローク色で全体が塗りつぶされていました - ストローク幅とダッシュが、パスをストロークする時点で有効な CTM のスケールに従うようになりました。ストローク描画モードで描くテキストも同様です
Version 2.766.61
Fixed
- SVG エクスポートが Type 1 の関数ベースシェーディング(ISO 32000-1 8.7.4.5.2)を出力していませんでした。
shで描かれる場合もシェーディングパターンで使われる場合も対象です。シェーディングの関数を/Domain全体でサンプリングして埋め込み PNG 画像にし、シェーディングの/Matrixで配置し、/BBoxでクリップし、パターンの背景色を下に敷く形で出力します
Version 2.766.60
Fixed
- ページレンダラーが、
shオペレーターで表示するメッシュシェーディングの/Background色を塗っていました。PDF はこれを無視する(ISO 32000-1 8.7.4.5.1)ため、メッシュ周辺のクリッピング領域全体がその色に染まっていました - 関数ベース・軸・放射の各シェーディングパターンの背景色を、ページレンダラーは塗っていませんでした。シェーディングの前にパターン領域を塗るようになり、シェーディングが届かない場所に背景が見えます
- SVG エクスポートもシェーディングパターンの背景色を同じ方式で塗るようになり、
shの場合はレンダラー同様に無視します
Version 2.766.59
Fixed
- ページレンダラーが関数ベース・軸・放射の各シェーディングの
/BBoxを無視していました(ISO 32000-1 8.7.4.5.1)。shで描かれた、またはシェーディングパターンで使われた拡張シェーディングが、ボックスで止まらずクリッピング領域全体を覆っていました。メッシュシェーディングは従来から尊重されています
Version 2.766.58
Fixed
- SVG エクスポートが Type 3 フォントのテキストを、インストール済みフォントによる SVG テキストとして書き出していたため、グリフプロシージャーで文字や記号を描くページで誤った形状になっていました。各グリフのプロシージャーを、フォントの
/FontMatrix・フォントサイズ・テキストマトリックスで配置して描くようになっています(ISO 32000-1 9.6.5) d1で始まる Type 3 グリフは現在の塗り色で塗られ、自分で色を設定するグリフはその色を保ちます
Version 2.766.57
Fixed
- テキスト抽出と SVG エクスポートが Type 3 フォントの
/Widthsを 1 em の 1/1000 単位として扱っていました。実際はグリフ空間の値で、フォントの/FontMatrixでスケールされます(ISO 32000-1 9.6.5)。[0.01 0 0 0.01 0 0]マトリックスのフォントのグリフは、送りの 1/10 の間隔で置かれ、抽出テキストで単語が繋がる副作用もありました
Version 2.766.56
Fixed
- 読み込んだページの描画が、Type 0 フォントをすべて
Identity-H(1 コード 2 バイト、コード=そのまま CID)として読んでいました。中国語・日本語・韓国語コレクションの定義済み UCS2/UTF16 CMap(UniGB-UCS2-Hなど)や埋め込み CMap でエンコードされたフォントが、コードを CID にマップするようになり、/Wの幅と埋め込みグリフが正しい CID で引かれます。以前はSTSong-Lightテキストの小文字ラテン文字が全角幅ずつ離れて並びました - コードは CMap のコード空間レンジに従って読まれるため、1 バイトコードも 4 バイトコード(サロゲートペア)もまとめて読め、
-Vで終わる名前は縦書きを選択します
Version 2.766.55
Fixed
- 名前にスタイル部や PostScript 表記を含む非埋め込みフォント(
TimesNewRoman,Bold、TimesNewRomanPS-BoldMT、Arial,BoldItalic、SegoeUI-Semiboldなど)が、読み込んだページの描画で代替フェイスになっていました。名前のファミリー部をインストール済みフォントから引くようになり、語間にスペースを入れた形(Times New Roman、Segoe UI)でも検索し、スタイルは名前とフォントディスクリプターから取ります
Version 2.766.54
Fixed
/Widths配列を持たない標準フォント(標準 14 フォントでは ISO 32000-1 9.6.2.2 が許容)が、読み込みページの描画・SVG エクスポート・テキスト抽出で一律半 em の送りで組まれ、文字が詰まって見えていました。Helvetica・Times・Courier の各ファミリー(Arial、TimesNewRoman、CourierNew の名前で参照される場合も含む)が、メトリックを共有するインストール済み Arial・Times New Roman・Courier New から幅を取るようになっています/Encodingを持たない標準 Type 1 フォントが、暗黙の StandardEncoding でデコードされるようになり、たとえばコード 39 が右シングルクォートとして読まれます
Version 2.766.53
Fixed
- 読み込んだページの描画が、間接オブジェクトとして書かれた(多くのプロデューサーがそう書きます)フォントの
/Widths配列を無視して一律半 em の送りで組んでいました。その種のテキストは幅に従って組まれます - 間接オブジェクトで与えられたフォントディスクリプターも描画時に読まれるようになり、非埋め込みフォントの
ForceBoldとItalicフラグおよびイタリック角度が効くようになっています SmallCapフラグがテキストをボールドにしなくなりました。ボールドはForceBoldフラグに従います(ISO 32000-1 Table 123)
Version 2.766.52
Fixed
- 読み込んだページの描画が、テキスト描画モード 4〜7 のテキストでクリップするようになりました(ISO 32000-1 9.3.6)。テキストオブジェクトの終端でグリフがクリッピングパスに加わり、グラフィックス状態が復元されるまで有効です。以前はモード 7 のテキストが無視され、文字を透かして見せるはずのシェーディングや画像が領域全体を覆い、モード 4〜6 はクリップなしでテキストを塗っていました
- クリップ用テキストは、描画テキストと同じグリフアウトラインから取られます。埋め込みフォントと Type 3 グリフも含みます
Version 2.766.51
Fixed
- SVG エクスポートが、テキスト描画モード 4〜7 のテキストでクリップするようになりました(ISO 32000-1 9.3.6)。グリフがテキストオブジェクトの終端からグラフィックス状態の終端まで SVG のクリッピングパスになり、テキストを通して描くシェーディングや画像が文字の内側だけに現れます
- モード 7 のテキストが何もクリップされずに失われることはなくなり、モード 4〜6 はモード 0〜2 と同様にテキストの塗りやストロークを行います
Version 2.766.50
Fixed
/Functionが、色成分ごとに 1 出力の関数の配列になっている軸・放射・関数ベースのシェーディング(ISO 32000-1 8.7.4.5.1)が、読み込んだページの描画で描かれていませんでした。配列の関数が直接指定でも間接オブジェクトでも、描かれるようになっています- SVG エクスポートも、こうした軸・放射シェーディングをグラデーションとして書き出します。シェーディングパターン経由でパスを塗る場合も含みます
Version 2.766.49
Fixed
- SVG エクスポートがボールド・イタリックのテキストを標準スタイルで書き出していました。テキストが、フォント名のスタイル部(
Arial-BoldMT、Helvetica-Oblique、MinionPro-Itなど)とフォントディスクリプターの weight・フラグ・イタリック角度から、font-weight="bold"とfont-style="italic"を得るようになっています - 標準 14 ファミリー以外のフォントは、スタイル部を含むファミリー名(
SegoeUI-Semibold)で書かれ、どのインストール済みフォントにも一致しませんでした。ファミリー名を単独で、語間にスペースを入れた形(SegoeUI, Segoe UI)でも挙げ、ディスクリプターフラグか名前に基づく汎用ファミリーを続けるようになっています
Version 2.766.48
Fixed
- SVG エクスポートが Form XObject のコンテンツを、フォームが描かれる位置で有効な塗り・ストローク色ではなく黒で描いていました(ISO 32000-1 8.10.1)。フォーム内の
Qがそれらの色も復元するようになっています - コンテンツデバイスは、新しい
IHPDFContentInheritedColorDeviceインターフェースを通じて、呼び出し元の色を初期値にネストしたコンテンツを開始できます
Version 2.766.47
Added
- SVG エクスポートが、タイリングパターンを使うパスを、パターンセルを
XStep・YStep間隔で繰り返す SVG<pattern>で塗るようになりました。セルの/BBoxでクリップされます。以前はその種のパスが黒で塗られるか以前の色を保持していました - 無色タイリングパターン(
PaintType2)は、パターンとともに与えられた色でセルを塗ります。/CS0 cs 0 0 1 /P1 scnの成分などが該当します - シェーディングパターンで塗られたパスには、パターンの軸・放射・メッシュの各シェーディングがパスでクリップされて与えられます
- パターンマトリックスはパターンを使うページまたはフォームの空間で適用される(ISO 32000-1 8.7.2)ため、パターンは現在の変換マトリックスに合わせてスケール・移動せず、
Qはqで保存したパターンを復元します - コンテンツデバイスは、新しい
IHPDFContentPatternDeviceインターフェースでパターン選択を受け取れます
Version 2.766.46
Added
- カラーキーの
/Mask配列(ISO 32000-1 8.9.6.4)を持つ画像が、読み込んだページの描画でマスクされるようになりました。成分がすべてキー範囲内に収まるピクセルは塗らず、ページが透けて見えます - SVG エクスポートも同じカラーキーマスクを適用し、その種の画像をアルファチャンネル付き PNG として書き出します
- キーはサンプル値を格納時のまま比較するため、Indexed 画像は 2 つのエントリーが同じ色を共有していてもパレットインデックスでマスクでき、1・2・4 ビット/成分の画像も対象です
- 新しい
DecodeLoadedImageColorKeyMaskメソッドが、読み込んだ画像のマスクを白黒ビットマップとして返します。Flate・LZW・無フィルターの画像を対象にします。非可逆コーデックは正確なサンプル値を保持しないためです
Version 2.766.45
Changed
CompressDocumentとCompressLoadedDocumentが、1 つのオブジェクトストリームに最大 100 ではなく 250 オブジェクトを収めるようになりました。大きく数を減らしたコンテナーのほうが圧縮率が上がり、ディクショナリーも少なくて済みます- オブジェクトストリームでコンパクトに書かれた PDF を読み込んで保存すると、出力が元のサイズ前後(大半はわずかに小さく)になり、これまでのわずかに大きくなる逆になりました
ConfigureAdaptiveObjectStreamPackingで設定した上限は保持され、CompressDocumentはEndDocで上限を復元します。通常のオブジェクトストリーム保存は 1 コンテナー 100 オブジェクトのままです
Version 2.766.44
Changed
- オブジェクトストリーム付きで書き出したファイルのクロスリファレンスストリームは、各列が必要とする最小のフィールド幅を使うようになりました。16 MB 未満のファイルのオフセットは 4 バイトではなく 3 バイトになり(ISO 32000-1 7.5.8.2)、ディクショナリーもコンパクトに書き込まれます
- クロスリファレンスストリーム付きだがオブジェクトストリームなしで書き出したファイルは変更されません
Version 2.766.43
Changed
- オブジェクトストリーム付きで書き出す暗号化されていないファイルは、ドキュメントカタログと文書情報ディクショナリーもオブジェクトストリームに収めて圧縮するようになりました。ISO 32000-1 7.5.7 がオブジェクトストリームの外に置くよう求めているのは暗号化ディクショナリーだけです
- 暗号化するファイルでは、両方のディクショナリーがこれまでどおりトップレベルに置かれます
Version 2.766.42
Changed
- オブジェクトストリーム付きで書き出すファイル(
CompressDocumentとCompressLoadedDocumentの出力を含む)は、ディクショナリーと配列をコンパクトに綴るようになりました。PDF 構文が要求しない空白と改行は省きます(ISO 32000-1 7.2.2)。オブジェクトストリームに入れられず非圧縮のまま残るストリームディクショナリーが得る恩恵が最も大きくなります - 署名ディクショナリーと暗号化ディクショナリーは空白入りのレイアウトを保つため、オブジェクトストリーム付きで書き出したドキュメントもこれまでどおり署名できます
- オブジェクトストリームなしで書き出したファイルはバイト単位で変わりません
Version 2.766.41
Fixed
- オブジェクトストリーム付きで書き出す PDF ファイルが、
%PDF-ヘッダーとバイナリコメント行を二重に持たなくなりました。UseObjectStreams、CompressDocument、CompressLoadedDocumentを使うすべての保存が影響を受けていました - ビューアは重複したヘッダーを容認していましたが、厳格なバリデーターは指摘する可能性があり、ファイルごとに 15 バイトの無駄にもなっていました
Version 2.766.40
Fixed
- 多くのプロデューサーがストリーム長をそう格納するように、オブジェクトストリーム内に生の数値を置いている読み込み済み PDF を編集・保存できるようになりました。以前は変更を加えるたびに「Cannot rewrite compressed object N: the source member could not be loaded」で保存が中断されていました
- この種の数値は数値として読まれるようになりました。以前はパーサーがメンバーの末尾を越えて間接参照を探して諦めるため、メンバーをまったく読み込めませんでした
- 変更なしでの保存は影響を受けません。未変更のファイルはそのままコピーされるためです
Version 2.766.39
Fixed
- PDF/A-2 以降と PDF/X-6 のドキュメントで、スタンプ注釈は枠だけを表示し、APPROVED や CONFIDENTIAL といったスタンプ名がありませんでした
- 名前はページの現在のフォント(ページテキストと一緒に埋め込まれます)で、大文字・注釈の色で、矩形の中央に描かれるようになりました
- NOTFORPUBLICRELEASE のような長い名前は、矩形の幅に収まるよう小さく設定されます
- ドキュメントは依然として PDF/A 検証に合格します。他のドキュメントのスタンプはこれまでどおり書き込まれます
Version 2.766.38
Added
- オプション付きの新しい
CompressLoadedDocumentオーバーロードが追加されました。見た目を変えずに読み込み済み PDF をできる限り小さくします。未使用のページリソースを削除し、同一のフォントとフォームを統合し、埋め込みフォントをサブセット化し、ストリームを Flate で再圧縮し、次の保存をオブジェクトストリーム付きで書き出します - どのステップもロスレスで、画像の再サンプリングや再圧縮は行いません。完全な Arial と SimSun を埋め込んだ 3 ページのドキュメントが約 10 MB から約 20 KB に縮み、他の 3 つのサンプル PDF も 15〜50% 小さくなりました
- 署名フィールドを持つドキュメントは、デフォルトでは拒否して変更しません。どのステップも署名済みバイトを書き換えるためです。
AllowSignatureInvalidationを指定するとそれでも圧縮します SubsetLoadedFontsにCompactTrueTypeSubsetsオプション(デフォルトはオフ)が加わりました。identity CID マッピングの CIDFontType2 フォント経由で使われる TrueType フォントのコンパクトなサブセットを構築します。カラーフォントと/CIDSetを持つフォントは通常のサブセットのままです- パラメーターなしの
CompressLoadedDocumentは、フィルターされていないストリームだけを再圧縮するという従来の動作を保ちます
Version 2.766.37
Added
- 新しい
CompressDocumentプロパティ(デフォルトはオフ)が追加されました。見た目を変えずに次のドキュメントをできる限り小さく書き出すための単一スイッチです - 対象のドキュメントでは、最大レベルの Flate 圧縮、オブジェクトストリーム付きクロスリファレンスストリーム(ISO 32000-1 7.5.7 と 7.5.8)、フォントサブセット化、コンパクトなフォントサブセットが有効になります。英中混在テキストの 3 ページのドキュメントが約 10 MB から約 20 KB に縮みます
- オブジェクトストリームには PDF 1.5 が必要なため、バージョンがロックされていない限り、それより古い
Versionは 1.5 に引き上げられます。PDF/A-1 出力は従来型のクロスリファレンステーブルを保ちます - 呼び出し側の設定はそのまま残ります。
EndDocの後、Compression、CompressionLevel、UseXRefStream、UseObjectStreams、フォントサブセット化オプション、バージョンは、設定した値のまま読み戻せます - 画像の再サンプリングや再圧縮は行いません
Version 2.766.36
Added
- 新しい
CompactFontSubsettingプロパティ(デフォルトはオフ)が追加されました。フォントサブセットは保持するグリフの番号を振り直すため、埋め込みフォントがソースフォントの全グリフ分のエントリーを抱え込むことはなくなります。明示的な/CIDToGIDMapストリームが、ページのグリフコードを振り直したグリフへ対応付けます(ISO 32000-1 9.7.4.2) - CJK フォントの縮小率が最も大きくなります。SimSun の漢字 2 文字に必要なフォントデータは約 25 KB から約 3 KB になり、Microsoft YaHei のドキュメントは 114 KB から 6 KB に縮みます
EnableFontSubsettingが有効なときに Type 0 フォントとして書き出される TrueType フォントと、RegisterUnicodeTTFで登録したフォントに適用されます。後者はこれまで PDF/A の場合にしかコンパクトサブセットを得られませんでした- ページコンテンツ、グリフ幅、テキスト抽出は変わりません。OpenType-CFF フォントは通常のサブセットを保ち、コンパクト化できないフォントは通常のサブセットにフォールバックします
Version 2.766.35
Fixed
- 登録済み Unicode フォントがカバーしている場合、Basic Multilingual Plane 外の文字(音楽記号や絵文字など)の後で、文字ごとに明示的な送り幅を与えて描画したテキストがずれなくなりました。以前はその後のすべての文字が隣の文字の送り幅を借りていました。現在はその文字自身が 2 つのエントリーの合計で進みます
- こうした文字を含む両端揃えの Unicode テキストボックスはボックスの端で揃い、そのテキストの下線と取り消し線もテキストと同じ長さになります
Version 2.766.34
Added
- SVG エクスポートは画像マスク(
/ImageMask)を、インラインのものも含めて、現在の塗りつぶし色のステンシルとして描くようになりました。塗られない部分は白黒画像として描かれる代わりに透明になります /SMaskソフトマスクや明示的な/Maskステンシルを持つ画像は、アルファチャンネル付きの PNG 画像としてエクスポートされ、マスクで落とされた部分が背後の内容を覆わなくなります- マスクや画像マスクの
/Decode [1 0]は尊重され、画像より細かいマスクはディテールを保ちます
Version 2.766.33
Fixed
- ページレンダリングは画像の明示的な
/Maskステンシルを尊重するようになりました。マスクが覆う部分は描かれず、画像全体が描かれることはありません。画像が回転や反転している場合も同様です - マスクの
/Decode [1 0]配列は、保持する部分を反転させます - ソフトマスクと画像より細かいマスクはマスクの解像度で適用されるため、低解像度写真の上の精細な 1 ビットマスクもエッジを保ちます
Version 2.766.32
Fixed
- ページレンダリングは完全な変換マトリクスを通して画像を描くようになりました。90 度回転でも他の角度でも回転した画像、反転画像、
/Rotateを持つページ上のすべての画像が、正立・無反転のまま境界ボックス内に描かれることはなくなります - 画像マスク(
/ImageMask true)は、グレーの画像として描かれる代わりに、縮小時はアンチエイリアス付きのエッジで、現在の塗りつぶし色のステンシルとして塗られるようになりました /Decode [1 0]を持つ画像マスクは、PDF が規定するとおりサンプル値 1 を塗ります- インライン画像マスク(
BI /IM true)は再び描画され、その/D配列も尊重されます - ソフトマスク付き画像は、回転や反転してもマスクを保ちます
Version 2.766.31
Added
- SVG エクスポートは、
k/K(DeviceCMYK)や、任意の名前付きカラースペースでのcs/sc/scnによる色を変換するようになりました。ICCBased、キャリブレーション済み、Lab、Indexed、Separation、DeviceN の色が、黒ではなくページレンダラーの表示どおりに出力されます cs/CSでカラースペースを選ぶとその初期色(スポットカラーならフルティントなど)が設定されるようになり、Qでグラフィックス状態を復元すると、この方法で設定した色が戻ります- ICC プロファイル、ルックアップテーブル、ティント関数を参照で持つカラースペースは、SVG エクスポート中にエクスポート対象ドキュメントを通して解決されます
- パス列挙は前の色を引きずる代わりに、CMYK の塗りとストロークの色を報告するようになりました
Version 2.766.30
Fixed
- THPDFEmfPatcher.RenderEmfDirect は、任意の Resolution で拡張メタファイルのビットマップを同じサイズ・同じ位置に描画します。72 以外の Resolution では 72 / Resolution 倍にスケールされて表示されていました
Version 2.766.29
Added
- SVG エクスポートは
WとW*のクリッピングパスを適用するようになりました。それぞれが SVG のクリップパスになり、グラフィックス状態が復元されるまでの後続の描画を覆います。PDF が切り詰めている画像、シェーディング、パスが全体描画されることはなくなります - Form XObject は SVG エクスポートでその
/BBoxにクリップされ、軸方向・放射状シェーディングもその/BBoxにクリップされます - 偶奇クリッピング(
W*)は塗りルールを保ち、Wと同時に塗られるパスは、PDF が規定するとおり新しいクリップが効く前に描かれます
Version 2.766.28
Fixed
- DrawChart で描いたチャートは、任意の Resolution でもレイアウトを保ちます。マージン、タイトル、軸ラベル、線幅はポイント値なのに、Resolution に合わせて縮んでいました
- 新しいページと、再びカレントになったページのデフォルトフォントは、12 描画単位ではなく、任意の Resolution で 12 ポイントになります
- レイアウト診断オーバーレイは、任意の Resolution で線幅とラベルサイズを保ちます
Version 2.766.27
Fixed
- DrawInlineImage と DrawFormXObject は、位置と同じく画像やフォームを描画単位でサイズ決めします。72 以外の Resolution では幅と高さがポイントとして扱われ、オブジェクトが過大に表示されていました
Version 2.766.26
Fixed
- CurrentPageNumber で再びカレントになったページは、レイアウト時の単位で描画を続けます。72 以外の Resolution ではポイントに切り替わり、その後にページへ描いたすべてが誤ったサイズ・位置になっていました
- ページを再訪したときも、そのページ固有の Resolution が保たれます
Version 2.766.25
Fixed
- ドキュメントの Resolution が 72 でないとき、Width と Height でサイズを決めたページ上に ShowImage で置いた画像はサイズを保ちます。Resolution 144 では半分のサイズにずれて表示されていました
- そのようなページで ExtTextOut は、各文字を与えられた送り幅の半分ではなく、与えられた送り幅どおりに配置します
- 埋め込みグリフランは、そのようなページでもグリフオフセットと送り幅を保ちます
Version 2.766.24
Added
- SVG エクスポートは軸方向・放射状シェーディングの
/Extendエントリーを尊重するようになりました。デフォルトである拡張なしの端は、端の色をクリップ全体に広げる代わりに、PDF と同様に塗らないままになります - 放射状シェーディングでは、始点が拡張されていない限り、始円の内側も空けたままになります
Version 2.766.23
Fixed
- ページ回転のフラット化は、注釈の外観ストリームもページと一緒に回すようになりました。ベイク済み・フラット化済みの注釈が、回転後の矩形に横から押し込められる代わりに、回転したページ上と同じ見た目になります
- ウィジェット回転(
/MK /R)はページ回転に合わせて調整されるため、フラット化後に再生成されるフォームフィールドの外観は向きを保ちます - NoRotate フラグを持つ注釈はフラット化後も正立でサイズを保ち、左上隅に固定されます。回転したページでビューアが表示するのと同じ挙動です
Version 2.766.22
Fixed
- タグ付き PDF で、ページツリーより先に構造ツリーに到達したとき、ページ回転のフラット化が注釈矩形を二重に回さなくなりました
- ページ回転のフラット化は、ページ上で使われる Form XObject の境界ボックスを回さなくなりました。これらの幾何はフォーム空間にあり、ページ回転はすでにコンテンツ変換を通して適用されます
- 1 ページをフラット化したとき、別のページに属する構造要素のレイアウト境界ボックスは変更されなくなりました
Version 2.766.21
Fixed
- 読み込み済みページの塗り足し(bleed)、仕上がり(trim)、アートの各ボックスを読むとき、
/BleedBox、/TrimBox、/ArtBoxが親の/Pagesノードに置かれていても拾わなくなりました。これらのボックスは PDF では継承されないため、独自のエントリーを持たないページは仕様どおりクロップボックスを報告します - ページ回転のフラット化は、そのような親レベルの塗り足し・仕上がり・アートボックスをページへコピーしなくなりました
Version 2.766.20
Fixed
- ドキュメントの Resolution が 72 でないとき、ページの Canvas や ShowMetafile で置いたメタファイル内のテキストはサイズを保ちます。Resolution 144 ではテキストだけ半分の大きさになり、描画の残りは正しいままでした
- ポイントで描画する、Width と Height でサイズを決めたページでも、ページの Canvas と ShowMetafile は正しいサイズで描きます。Resolution 144 では描画が 2 倍の大きさになっていました
- ページの Canvas と ShowMetafile は、ページ自体に設定された Resolution も尊重するようになりました。以前はその分だけ描画が縮んでいました
Version 2.766.19
Fixed
- 文字間隔を設定した両端揃えの Unicode テキストボックスは、ボックスの端で終わるようになりました。以前はすべての文字が両端揃え位置に加えて文字間隔も受け取るため、各行が右端を「文字間隔 × 文字数」ぶんだけはみ出していました
- 水平スケーリングのかかった両端揃え Unicode テキストボックスは、スケーリング係数ぶん手前で止まる代わりに、ボックス幅全体を再び満たします
- ワードスペーシングは、両端揃え行の自然な幅(行の折り返しに使われたのと同じ幅)に算入されるようになりました
- 文字ごとに明示的な送り幅を与えて描画したテキストは、文字間隔や水平スケーリングが効いていても、その位置に収まります
Version 2.766.18
Fixed
- ページ回転のフラット化は、
/Rotate 90と/Rotate 270のページを時計回りに回すようになりました。フラット化したページが元の回転表示と正確に同じ見た目になり、元に対して上下逆になることはありません - 注釈、リンクデスティネーション、構造の幾何も同じようにページに伴って動きます
- CropBox を持たないページのフラット化で、ページを正方形に切り詰める CropBox が加えられなくなりました。回転されるのは、ページが実際に持つページボックスだけです
Version 2.766.17
Fixed
- フォントフォールバックチェーンは、ローカライズされた名前で報告してくる Windows システム上でも SimSun や Microsoft YaHei といったフェースを見つけられるようになりました。
WideTextOutBox、WideTextOutBoxEx、TextOutWithFallbackの CJK 混在テキストが空のボックスになる代わりに、フォールバック先のフェースで描かれます - 自身のフォントがこれらのフェースであるテキストは、フォールバックランへ分割されなくなり、未解決グリフ診断でも未解決として報告されなくなりました
- フェースは、持っている任意のファミリー名・任意の言語でチェーンに列挙できます。Windows が別のフォントで代用しているだけのフェースは、これまでどおりスキップされます
Version 2.766.16
Fixed
- N-up 合成は、
/Rotate 90と/Rotate 270のページを時計回りに回してセル内に置くようになりました。以前は逆方向に回していたため、セルから押し出され、シートの外に出ることもよくありました /Rotate 180のページは、正立のまま合成される代わりに、シート上で回転するようになりました- N-up 合成はページツリーから継承されたページボックスと
/Rotateを尊重するようになり、そのようなページがスキップされたり、回転なしで合成されたりしなくなります - 合成された N-up シートを含め、読み込み済みドキュメントに挿入する空白ページは、ページツリーから継承された
/Rotateや/CropBoxで回されたり切り詰められたりしなくなります
Version 2.766.15
Fixed
HPDFTokenizeContentStreamAppendは、カウントをゼロに戻した後でもトークン配列を再利用できるようになりました。前回の実行で残ったトークンを先に解放するため、文字列がリークせず、前の配列要素やインライン画像データが新しいトークンに現れなくなります- 1 つのトークン配列に多数の小さなコンテンツストリームを追記するとき、配列は少なくとも 2 倍に伸びるようになりました。以前は追記のたびに再割り当てと移動が起き、何千もの小さなストリームから構築されるページのコンパイルが遅いままでした
Version 2.766.14
Fixed
/Rotate 90や/Rotate 270のページは、PDF 仕様が定めるとおり時計回りに回してレンダリングされるようになりました。対角線を挟んだ鏡像ではなくなります。以前は 90 度ページの左上隅が右下に来ていました- この修正はページとリージョンのレンダリング、ビットマップ・メタファイル・バンド付き PNG / TIFF エクスポート、SIMD レンダリングバックエンドをカバーします
- ビューアのページ→ビュー・ビュー→ページ座標変換、検索とハイライトのオーバーレイも同じ時計回りの回転に従うため、ヒットとヒット判定がレンダリングされたページと一致します
Version 2.766.13
Fixed
- SVG ページエクスポートは、ドキュメントが宣言するとおりテキストを UTF-8 で書き出すようになりました。アクセント付き文字や CJK 文字が、疑問符やファイルを読めなくするバイト列に化けることはありません。XML が許さない制御コードは U+FFFD になります
- 行の最初のランに続くテキストや、
TJカーニング調整に続くテキストは、テキストマトリクスがテキストをスケール・回転していても正しく配置されるようになりました。多くの PDF プロデューサーはこの方法でフォントサイズを設定しています - テキストライズと水平スケーリングはスケール・回転されたテキストマトリクスに従い、
TJ調整は水平スケーリングを尊重します - レンダーモード 4〜6(塗りとクリップ)で描かれたテキストは、破棄されずにエクスポートされます。不可視テキストはテキスト位置を進め、ストロークテキストはストロークの不透明度を保ちます
- ワードスペーシングは、たまたま 32 に等しい 2 バイトコードに適用されなくなりました。連続するスペースは保持され、各文字が自身の位置にとどまります
- 合字グリフはその表す文字をすべてエクスポートし、1 バイトと 2 バイトのコードが混在するフォントはコードごとに読みます
/MediaBoxが原点から始まらないページも、SVG キャンバスからずり落ちる代わりに、キャンバス上に収まります
Version 2.766.12
Fixed
THPDFPage.Canvasへの描画や、位置とスケールを指定してShowMetafileでベクターグラフィックスとして再生するメタファイルは、クリップリージョンを設定したときに左端と上端の一部を失わなくなりました。以前は各クリップリージョンがその 2 辺で 1 単位ずつ内側に移動され、左端や上端に沿った境界線や塗りが、右端や下端の同じものより細くなっていました- クリップリージョンは塗りつぶし時に同じ領域と一致し、任意の
THotPDF.Resolutionで同じ面積をカバーします
Version 2.766.11
Fixed
TextOut、UnicodeTextOut、RtLTextOut、ExtTextOutで描く Unicode テキストの下線と取り消し線は、テキストの範囲ちょうどに引かれるようになりました。以前はシステムコードページへ変換したテキストで測っていたため、キリル文字、ヘブライ文字、ギリシャ文字、CJK などコードページ外の文字を含むランでは、線がテキストに届かなかったり、はみ出したりしていました- 線は文字間隔、ワードスペーシング、水平スケーリング、
ExtTextOutに渡す変位にも従います
Version 2.766.10
Fixed
- レポートとグリッドのエクスポートアドオン(FastReport、QuickReport、ReportBuilder、DevExpress、DBGrid)は、複数のエクスポートが同時に走るとき(たとえばサーバー上)に互いの出力を上書きしなくなりました。一時ファイル名が 10〜16 ms ごとにしか変わらないタイマー由来で、同時に始まったエクスポートが同じファイルへ書き込んでいました
Version 2.766.9
Fixed
TextWidthは、文字間隔、ワードスペーシング、水平スケーリングが設定されているとき、描画と同じ方法でテキストを測るようになりました。以前は間隔が水平スケーリングでスケールされず、負のワードスペーシングは無視され、末尾のスペースにワードスペーシングが乗らないため、段落継続、リンク矩形、中央寄せ・右寄せテキストが描画テキストからずれていましたTextWidthとGetWideTextWidthは、同じテキストに対して同じ幅を返します
Version 2.766.8
Fixed
- ReportBuilder デバイス(
TppHotPDFDevice)は、ネイティブテキストをテキストボックスの内側に描くようになりました。以前は位置がベースラインであるかのように配置していたため、どのテキストオブジェクトも 1 行ぶん低い位置から始まり、最終行がボックスからはみ出していました - 中央寄せ・右寄せのネイティブテキストは、描画に使う Unicode 幅で測られるため、西欧システム上の中国語などシステムコードページ外の文字を含むテキストも正しく揃います
Version 2.766.7
Fixed
- FastReport エクスポートは、メモテキストをメモの内側に置くようになりました。以前は位置がベースラインであるかのように配置していたため、どのメモのテキストもフォント 1 つぶん低い位置から始まり、下揃えのテキストはメモの下に描かれてクリッピングで隠れていました
- 上・中央・下のいずれの垂直配置も、プレーンテキストと HTML タグ付きメモのどちらでも、最初の行の上端から測ります
Version 2.766.6
Fixed
- FastReport エクスポートフィルター(
TfrxHotPDFExport)が再びコンパイルできるようになりました。NotEmbeddedFontsプロパティが異なる型のフィールドを読んでおり、ネイティブ画像エクスポートはClippedという、TfrxPictureViewが持たないプロパティを使っていました - ネイティブ画像エクスポートは、FastReport と同じく各画像をそのビューにクリップするようになり、ビューより大きい画像が隣接オブジェクトに溢れることはなくなります
- 中央配置の画像は、枠とクリップをビュー境界に保ったまま画像自体だけが中央に来ます。以前は枠が画像と一緒に動いていました
Version 2.766.5
Fixed
- DBGrid アドオンは、列幅に収まるよう切り詰める前に、セルテキストを描画に使う Unicode テキスト幅で測るようになりました。西欧システム上の中国語などシステムコードページ外の文字を含むテキストは疑問符として測定され、セルから溢れていました。中国語・日本語・韓国語システムのダブルバイトテキストは、セルが満杯になるよりずっと手前で切られていました
- 切り詰めが
...の前にサロゲートペアの半分を残すことはありません
Version 2.766.4
Fixed
- DBGrid アドオン(
TDBGridHotPDFExportとDBGridHotPDFExportToFile/ToStream)は、セルテキストをセルの内側に描くようになりました。以前は位置がベースラインであるかのように配置していたため、どの行のテキストもセルの下境界線に張り付き、次の行のグリッド線で切られていました - ヘッダーテキストはヘッダー行の中央に置かれ、タイトルが表の上端に触れなくなります
Version 2.766.3
Fixed
GetLoadedPDFVersionStringは、小数点にカンマを使うロケールのシステム上でも%PDF-1.7のような文字列を返すようになりました。以前はそこで%PDF-1,7を返していましたpdfVersionフィールド(GetLoadedDocumentReportのもの)も同じ方法で修正されました
Version 2.766.2
Fixed
- HTML インポート(
RenderHTMLとRenderHTML5)は、任意のTHotPDF.Resolutionで同じページを生成します。CSS の長さとインポーターのMargin、BaseFontSize、ListIndent、BlockSpacingはポイントなのに、Resolution 144 ではテキスト、マージン、リスト、表が半分のサイズになっていました - インポートの前後に描くテキストとグラフィックスは、引き続き 1/Resolution インチを使います
- デフォルトの Resolution 72 で作ったドキュメントの出力は、以前とまったく変わりません
Version 2.766.1
Fixed
ApplyXFAAsAcroFormやFlattenLoadedXFAでフラット化した XFA フォームは、任意のTHotPDF.Resolutionでテンプレートの位置・サイズ・フォントサイズを保ちます。Resolution 144 ではフォーム全体がページの左上隅に半分のサイズで表示されていました- フラット化の前後に描くテキストとグラフィックスは、引き続き 1/Resolution インチを使います
- デフォルトの Resolution 72 で作ったドキュメントの出力は、以前とまったく変わりません
Version 2.766.0
Added
THPDFPage.UserWidthとTHPDFPage.UserHeightは、描画に使う単位(1/Resolutionインチ)でページサイズを返します。レイアウトコードが、座標、マージン、TextWidthとページサイズを、任意のTHotPDF.Resolutionで比較できます。WidthとHeightは引き続きポイントを返し、既存のコードはこれまでと同じ値を読みます
Fixed
THotPDF.Resolutionに 72 以外を設定したとき、段落はマージン間の実際の空間で折り返し、下マージンで次のページへ移るようになりました。以前はページをポイントで測っていたため、144 では広いマージンの段落が文字ごとに改行され、必要以上のページ数にまたがることがありました- 新しいページへ続く段落は、任意の Resolution で同じページサイズ・座標・フォントサイズを保ちます。144 では継続ページがポイント座標に切り替わり、その上のテキストが半分のサイズになっていました
THPDFTableは、行が下マージンに達したときにだけ新しいページを始めます。144 ではページ下半分に置いた表が、行ごとに 1 ページを使っていました- HTML インポートは、任意の Resolution でページ幅全体にテキストをレイアウトします。左半分だけになることはありません
- ページ中央に描くメタファイルや、ページ全体を覆うメタファイルのクリップリージョンは、任意の Resolution でページ全体を使います
- ページレイヤーとフラッシュ済みページのレイアウト診断は、ページサイズを描画単位で報告します
- デフォルトの Resolution 72 で作ったドキュメントの出力は、以前とまったく変わりません
Version 2.765.52
Fixed
- 非 ASCII 文字を含む AES-256 パスワードが、他の PDF リーダーでも使えるようになりました。HotPDF はパスワードをシステムコードページでハッシュ化していましたが、ISO 32000-2 は UTF-8 と定めているため、他のリーダーは中国語やアクセント付きのパスワードを拒否していました。revision 5 と revision 6 の両方が修正されます
- 127 バイトを超える AES-256 パスワードは、標準が定めるとおり 127 バイトに切り詰められるようになり、標準に従うリーダーが受け入れます
- HotPDF は、非 ASCII 文字を含むパスワードの他プロデューサー製 AES-256 ファイルも開けるようになりました
- 以前のバージョンがそのようなパスワードで暗号化したファイルも、同じパスワードで HotPDF に開けます
Version 2.765.51
Fixed
- 同じフォントで Unicode テキストの後に書いた ANSI テキストが、空のボックスとして表示されなくなりました。ページが
TextOutで Unicode テキストを描いた後、同じフェースのTextBoxやTextOutBoxExを使うと(たとえば別サイズの Arial)、ANSI テキストが Unicode フォント側に書き込まれ、ビューアがグリフを見つけられませんでした。現在は ANSI テキストが独自のフォントリソースを得て、正しく表示・抽出されます - ANSI テキストのみ、または Unicode テキストのみを使うページの出力は、以前と同じです
Version 2.765.50
Fixed
- AES-256 revision 6(
UseAES256R6、および PDF 2.0 AES-256)で暗号化したドキュメントが、他の PDF リーダーでも開けるようになりました。パスワードハッシュが毎ラウンドでソルトを混ぜ込み、オーナー側ではユーザーエントリーを省いて計算されていたため、qpdf、MuPDF など他のリーダーは両方のパスワードを拒否していました。HotPDF は自分のファイルしか受け付けない状態でした - HotPDF は、他プロデューサーが作った revision 6 ファイルを、誤ったパスワードと報告する代わりに、ユーザーまたはオーナーのパスワードで開けるようになりました
- Security デモの AES-256 R6 サンプルは、他のリーダーで開けます
Version 2.765.49
Fixed
- 両端揃えの Unicode テキストボックスが文字を押し広げてボックスの右端を突き破ることがなくなりました。Arial のような名前指定のフォントでは、両端揃えの各行がボックスの約 2 倍の幅に伸び、隣の要素と重なっていました。現在はどの両端揃え行もボックスの端で終わります
- 文字ごとに明示的な送り幅を与えて描画したテキストも、同じケースで指定された位置に収まります。以前はすべての文字が文字幅 1 つぶん右へ押されていました
Version 2.765.48
Changed
- Delphi と C++Builder の HelloWorld、CJKAnnotations、TextOut、RtLTextOut デモは、使うグリフだけを埋め込むようになりました。以前は Arial Unicode MS などのシステムフォント全体を埋め込んでいたため、1 ページの hello world が約 15 MB、右から左のサンプルは約 30 MB になっていました。同じページが現在は 80 KB〜650 KB に収まり、見た目は変わりません
Version 2.765.47
Fixed
- いくつかのフォントで、右から左のテキストの文字順が崩れなくなりました。Arial Unicode MS のヘブライ語では多くの単語で隣接文字が入れ替わり、Microsoft Sans Serif のアラビア語はまったく反転していませんでした。視覚順に並べ替えるとき、これらのフォントのグリフ番号がアクセント記号と誤認されていたためです
- RtLTextOut デモのヘブライ語行は、正しく読めるようになりました
Version 2.765.46
Fixed
GetWideTextWidthは、TextWidthと同じく、テキストの描画に使う文字間隔とワードスペーシングを測定に含めるようになりました。間隔を設定したワードラップ・中央揃えの Unicode テキストは、狭く測定されていましたTextOutHTMLはSetWordSpacingで設定したワードスペーシングを反映するようになりました。以前は各ランを測定幅に置くときに間隔が抜け落ちていました。HTML インポートの CSSword-spacingとletter-spacingも同じレイアウトを通ります
Version 2.765.45
Fixed
SetWordSpacingが埋め込みフォントでも効くようになりました。埋め込みフォントのテキストは 2 バイトの文字コードで書かれ、PDF はワードスペーシングを 1 バイトのスペースコードにしか適用しないため、FontEmbeddingが有効なときやテキストが Unicode フォントを必要とするとき、間隔は黙って無視されていました- 間隔はすべてのスペースの後にテキスト位置決め調整として加えられ、どの PDF ビューアもこれを尊重します。ワードスペーシングなしのテキストの書き込みは、以前とまったく同じです
- TextOut デモのワードスペーシング行は、追加されたスペースを見せます
Version 2.765.44
Fixed
- Delphi と C++Builder の AnnotationInteraction デモは、各リンクキャプションをリンク矩形の内側に収めます。以前はテキストの開始位置が低すぎて矩形の枠線が貫通し、矩形より幅広になっていました
Version 2.765.43
Fixed
- 取り消し線付きテキスト(
fsStrikeOut)が、小文字の中央を貫くようになりました。以前は線がベースラインの半行下、下線のさらに下に引かれ、取り消しテキストが二重下線のように見えていました。<s>も、TextOutHTMLで同じ影響を受けていました - 回転テキストの下線は、文字の上端に沿う代わりにベースラインの下に、取り消し線は文字を貫くように引かれます
- 取り消し線の太さは、どのテキストパスでも下線と同じになりました。以前は Unicode とプレーン Latin のパスがずっと細い線を引いていました
Version 2.765.42
Fixed
- HTMLText デモは、5 つのサンプルすべてを 1 ページに収めた出力に戻りました。ドキュメントが最初から持つページの後にもう 1 ページを追加して 1 ページ目を空のままにし、ページの下端近くから書き始めていたため、エンティティサンプルとワードラップ段落がページから溢れていました
Version 2.765.41
Fixed
- Delphi と C++Builder の Layer デモは、レイヤーのテキストを表示するようになりました。可視レイヤーのテキストが背後の矩形と同じ色で描かれて見えず、非表示レイヤーのテキストはほぼ白でした
- Patterns デモのキャプションは、タイリングパターンで塗られてパターン断片に砕ける代わりに、黒で描かれます
- AlphaTransparency デモのキャプションは、Multiply ブレンドモードの半透明グリーンで描かれなくなりました。透明な図形は自身だけが透明のままでいられます
Version 2.765.40
Fixed
- Delphi と C++Builder の GraphicDraw デモは、曲線サンプルの接線を正しく描くようになりました。以前は左の曲線の最初の制御点線がラベル付きの点に届かず、右の曲線は開始点から制御点を経て終点へ至る線の代わりに、短い横線を見せていました
- 長方形と楕円のページのセクション見出しは、最後に描いた図形の色を拾う代わりに、再び黒になります
Version 2.765.39
Fixed
PrintHyperlinkの後に描くテキストと図形は、それより前に設定した色を保ちます。以前はグレーが別の色に戻り(白が青に化けるなど)、CMYK やカラースペースで設定した色が古い RGB の色に戻っていました- ハイパーリンクの色は、ページがどのカラースペースを使っていても、リンクテキストにだけ適用されるようになりました
Version 2.765.38
Fixed
TextOutOutlineは、任意のResolutionでフォントサイズどおりのグリフアウトラインを描くようになりました。72 以外のResolutionではアウトラインがもう一度縮小され、たとえば 144 では半分のサイズになっていました- SimHei のような em あたり 1000 単位未満のフォントのアウトラインが、数倍の大きさに描かれることはなくなります
Version 2.765.37
Fixed
- Delphi と C++Builder の CJKUnicode デモは、Arial Unicode MS がないシステムでも韓国語行を表示します。以前は最初に見つかった中国語フォント(ハングルを持たない)で描いていたため、行は空のままでした。選んだフォントが韓国語を表示できないときは、現在は Malgun Gothic を使います
Version 2.765.36
Fixed
- SimHei などのフォントで書いた中国語・日本語テキストが、文字を重ね打ちにしなくなりました。同じフォントを 2 回目のテキストランで使うと、多くの漢字が全角幅ではなく数単位の幅を与えられていました
- 問題のフォントは、グリフ数より少ない送り幅しか格納していません。最後に格納された幅より後のグリフは、TrueType 形式が要求するとおり、その幅を使うようになりました
Version 2.765.35
Fixed
- 設計グリッドが em あたり 1000 単位未満のフォント(256 の SimHei や SimSun など)の Unicode テキストが、正しい間隔で組まれるようになりました。PDF に書き込まれるグリフ幅が約 4 倍に過大だったため、ビューアはスペースや新しく使われた文字の後に大きな隙間を空けていました
Version 2.765.34
Fixed
- PDFOptimize デモのスキャン画像シナリオは、実際のテキストページを圧縮するようになりました。以前は 1 ビットのテスト画像が真っ黒に出力され、CCITT G4 と JBIG2 がベタの矩形で比較されていました
- PDFOptimize デモの画像シナリオは、ページラベルのグリフだけを埋め込むようになりました。報告されるサイズが、埋め込みフォント全体に支配される代わりに、画像圧縮方式の違いを示します
Version 2.765.33
Fixed
- E-Invoice デモは、請求書の表示ページを上から順にレイアウトするようになりました。タイトルがページの上端に来て、請求内容・当事者・金額がその下に続きます。以前はページが順序どおり上下逆に描かれ、タイトルが下端近くに、フッターノートが上端に来ていました
Version 2.765.32
Fixed
- 厳密にロスレスでエンコードした JBIG2 画像(
LosslessにLossyLevel = 0)は、すべてのピクセルを保つようになりました。小さな黒点をスキャンノイズとして除去するデフォルト動作がこれらの設定を無視していたため、ロスレスのはずの画像から、小さなテキストのピリオドや i・j の点が消えていました - スキャン向きのデフォルト(
LossyLevel = 5にRemoveIsolatedBlackPixels)は、これまでどおりスポットを除去します
Version 2.765.31
Fixed
- 読み込み済みページの PNG / TIFF エクスポートが、レンダーバンドが整数ポイントにならない解像度(
SaveLoadedPagesAsImagesのデフォルト 150 DPI と Letter ページなど)で「received too many rows」エラーを出さなくなりました。丸めのせいで各バンドが予定より 1 ピクセル行高くなり、バンドの合計が画像の行数を超えていました
Version 2.765.30
Fixed
TextWidth、TextHeight、GetWideTextWidth、GetWideCharAdvancesは、Resolutionのページ単位(テキストを描く単位)で返答するようになりました。72 以外のResolutionではポイントで返していたため、測ったテキストが配置先の座標に収まりませんでした- 72 以外の
Resolutionでも、TextOutで描くテキストは過大な高さではなく自分の Y から始まり、下線と取り消し線は部分的ではなく、正しい距離と太さでテキスト全体を覆います - 任意の
Resolutionで、TextBox、TextOutBoxEx、WideTextOutBoxExは実際のテキスト幅で行を中央寄せ・右寄せし、表のセルと段落はその幅で折り返し、TextOutHTMLのスタイル付きランは重ならなくなります WideTextOutBoxExの中のフォントフォールバックランは、任意のResolutionでフォントサイズを保ち、縮まなくなりますResolution72 での出力は変わりません
Version 2.765.29
Fixed
- Windows が EMF メタファイルのワールド変換を自力で適用できないとき、HotPDF は変換を自前で合成します。合成変換の垂直オフセットが誤った項を使っていたため、そのようなメタファイルの内容が上下にずれることがありました
Version 2.765.28
Fixed
- EMF メタファイルの表示が、
[WMF_DEBUG] EMR_POLYGON16 record foundのような診断行をコンソールアプリケーションの標準出力へ出さなくなりました。メタファイルのトレースがリリースビルドでオンのまま残っていました
Version 2.765.27
Fixed
ShowMetafileで表示する EMF メタファイルのテキストが、Windows が描く高さに収まるようになりました。TCanvas.TextOutのデフォルトである上揃えテキストは 1 行ぶん高すぎる位置に描かれ、下揃えテキストも高すぎました- ベースライン揃えと回転されたメタファイルテキストは変わりません
Version 2.765.26
Fixed
- 位置とスケールを指定した
ShowMetafileは、メタファイルの左上隅を指定されたポイントに置き、要求どおりにスケールして描きます。以前はこれらの引数を無視し、メタファイルを常にページの左上隅に自然サイズで描いていました - 位置を指定しない
ShowMetafileは変わりません
Version 2.765.25
Fixed
AngleArcの描画は、ShowMetafileで表示する EMF メタファイルの中でも、どちらの方向でも、記述された円弧を描き、円弧の終点から続く線を後ろに付けます。以前は代わりに完全な円が描かれ、メタファイルにオフセットがあるとサイズも誤っていました
Version 2.765.24
Fixed
- PDF/A と PDF/X の下で、プレーン ASCII の内容を持つフリーテキスト注釈がテキストを表示するようになりました。以前は外観が枠と塗りだけを描いていました。注釈のデフォルト外観に名指しされた Helvetica は、そこでは埋め込みなしで使えないためです
- テキストはページの現在のフォント(ページテキストと一緒に埋め込まれます)で 12 pt で描かれ、注釈ボックスに折り返されて、選択した揃え方に従って配置されます。非 ASCII の内容ではすでにそう扱われています
- PDF/A と PDF/X の範囲外では、ASCII のみのフリーテキスト注釈はこれまでとまったく同じに書き込まれます
Version 2.765.23
Fixed
AutoShapeArabicを有効にすると、TextOutとUnicodeTextOutがアラビア語・ペルシア語・ウルドゥー語の文字を、RtLTextOutがすでにそうしているように、語頭・語中・語末形と合字へ結合するようになりました。以前はすべての文字が独立形で表示されていましたAutoShapeSyriac、AutoShapeNko、AutoShapeAdlam、AutoShapeHanifiRohingya、およびヘブライ語母音記号の並べ替え(sfHebrewReorder、ShapingFeaturesプロパティ内)も同様です- これらのオプションが有効なとき、グリフ番号がたまたまアラビア語やヘブライ語の文字範囲に落ちたテキストが誤ったグリフで表示されることがありました。現在は起きません
- ページフォントで描かれるフリーテキスト注釈は、ページテキストと同じ方法でシェイピングされます
- これらのオプションを無効にした出力は変わりません
Version 2.765.22
Fixed
- 曲線図形は 72 以外の
Resolution値を尊重するようになりました。Ellipse、Circle、Arc、DrawArc、Pie、DrawPie、Chord、ArcToは誤った位置とサイズで描かれていました。直線、長方形、角丸長方形は正しかったのです - デフォルトの解像度 72 での出力は変わりません
Version 2.765.21
Fixed
PieやDrawPieで描く扇形は、単一の閉じた図形になりました。輪郭が、直線の辺と円弧の出会う位置に正しい角を持ち、遊んだ線端 2 つで終わることはありませんShowMetafileで表示する EMF メタファイル内の弦(chord)は、円弧の両端を結ぶ直線に沿って閉じます。以前はその線が図形から大きく外れた点まで走っていました
Version 2.765.20
Fixed
DrawArcとDrawPieは、ドキュメントが説明する楕円の部分を描くようになりました。Windows GDI のArcとPie呼び出しと同じく、開始点から終点へ反時計回りです。以前は反対側の部分を描いていたため、4 分の 1 の円弧が 4 分の 3 になっていました- EMF メタファイル内の扇形・弦・
ArcTo円弧は、ShowMetafileで表示した場合、どちらの円弧方向でも Windows が描く絵と一致します。以前は楕円の反対側を表示していました。単純な円弧はすでに正しかったのです - 角度指定の
Arc、Pie、Chord、ArcToメソッドは変わりません
Version 2.765.19
Fixed
RectangleRotateで描く回転長方形は、Rectangleで描くものと同じく閉じた図形になりました。以前はストローク時に 4 辺目が抜け、輪郭だけの回転長方形が 3 辺を表示していました- 塗りつぶした回転長方形と、回転テキストの下線・取り消し線の見た目は、以前と同じです
Version 2.765.18
Fixed
- 生成した PDF に書き込む負の数が、正しく丸められるようになりました。-50 のような値が -49.99 と書かれていたため、ページコンテンツや注釈矩形などのエントリーにある負の座標・オフセット・位置が、最大 0.01 単位ずれる可能性がありました
- 負の値は、正の値と正確に対称となる、ゼロから遠い側への四捨五入で丸められます。ゼロに丸まる負の値は 0 と書き込まれます
- ゼロと正の数の出力は変わりません
Version 2.765.17
Fixed
- 中国語・日本語・韓国語・アラビア語・キリル文字など、非 ASCII の内容を持つフリーテキスト注釈が、すべてのビューアでテキストを表示するようになりました。以前はビューアが Helvetica でテキストを描くことに依存していましたが、Helvetica は西欧文字しか表せないため、Poppler などのビューアは ASCII の句読点しか表示していませんでした
- これらの注釈は独自の外観を持つようになりました(ISO 32000-1 12.5.5)。テキストはページの現在のフォントで描かれ、ページテキストと一緒に埋め込み・サブセット化され、注釈ボックスに折り返され(スペースを持つテキストは単語間、持たないテキストは文字間)、選択した揃え方に従って配置され、以前と同じ枠と塗りの上に置かれます
- 外観は PDF/A の下でも書き込まれます。埋め込みフォントがドキュメントの適合性を保ち、注釈テキストが空のボックスの代わりに表示されます
- ASCII のみの内容を持つフリーテキスト注釈は、これまでとまったく同じに書き込まれます
Version 2.765.16
Fixed
InsertLoadedBlankPageで読み込み済みドキュメントに挿入する空白ページが、すべてのページに必須のリソースディクショナリーを持つようになりました(ISO 32000-1 Table 30)。これで qpdf などのバリデーターがページツリーを破損と報告しなくなり、後からページへ内容を追加できます
Version 2.765.15
Fixed
Tableデモで、小計額が意図どおり Qty 列と Price 列にまたがるようになりました。以前はセルインデックスを誤っていたため、Qty 列が空セルのままでした
Version 2.765.14
Fixed
THPDFTableのセル内画像が、セルの内側に描画され、垂直方向の配置も尊重されるようになりました。以前は画像 1 つぶんだけ低い位置、つまりセルの下・表の外側に置かれていました
Version 2.765.13
Fixed
- Unicode テキストの幅(
GetWideTextWidthとジャスティフィケーションの測定)がフォントと一致するようになりました。Arial などのフォントでは、以前は約 2 倍の大きさになっていました - これらの幅に基づく表、ワードラップテキスト、右寄せ・中央揃え・両端揃えテキストも正しくレイアウトされるようになりました。短いセルテキストが折り返されなくなり、右寄せの値はセルの端まで届き、表のセル内 HTML テキストで単語間に大きな隙間が空かなくなります
Version 2.765.12
Fixed
- チェックボックスやラジオボタンを含むフォームが、フォームのデフォルトリソースに ZapfDingbats フォント(
/ZaDb)を列挙するようになりました。これらのフィールドをビューア側で描画する場合(AutoFormAppearancesがオフのときのデフォルト動作)は、チェックマークの描画にこのフォントをここから探します。以前は Poppler 系ビューアが未知のフォントを報告し、マークが表示されませんでした
Version 2.765.11
Fixed
CJKAnnotationsデモで、各言語行の最初の注釈アイコンが、その行の他のアイコンと揃うようになりました。以前は 5 ポイント高い位置に置かれていました
Version 2.765.10
Fixed
- 英語名で要求したフォントが、言語の異なる Windows システム上でも見つかるようになりました。中国語・日本語・韓国語版 Windows で SimSun、Microsoft YaHei、MS Gothic を要求すると、Windows がフォント名をシステム言語で報告するためにフォント欠落として扱われ、テキストは黙って Arial Unicode MS で代用されていました
Version 2.765.9
Fixed
- SimSun、Microsoft YaHei、MS Gothic など、Windows が TrueType コレクション(.ttc)として保持しているフォントが、有効な単体フォントとして埋め込まれるようになりました。以前は埋め込みフォントのすべてのテーブルが誤ったデータを指していたため、ビューアはそれを拒んでシステムフォントにフォールバックし、そのフォントを持たないコンピューターではテキストのグリフが崩れていました
- 要求したフォントが欠落していて Windows がコレクションフォントへマッピングしたドキュメントにも、同じ問題が及んでいました。たとえば SimSun しか利用できないシステムで Arial Unicode MS の Unicode テキストを表示する場合です
Version 2.765.8
Fixed
- 非 ASCII テキストを含むソースファイルが、再びバイトオーダーマーク(BOM)付きの UTF-8 で保存されるようになりました。BOM がないと Delphi はビルド環境のコードページでソースファイルを読むため、中国語・日本語・韓国語などの非西洋 Windows システムでは、デモ内の CJK・アラビア文字・ヘブライ文字・アクセント付きテキストが生成された PDF で文字化けし、ライブラリのエラーメッセージも誤った文字を表示していました
CJKAnnotations、Annotations、HelloWorld、RtLTextOut、PageSizes、TextOut、Showcase、ViewerPrefの各デモは、どの環境でコンパイルしても意図したテキストを再び出力します
Version 2.765.7
Fixed
- UTF-8 で与えたドキュメント情報(
Title、Author、Subject、Keywords、記事スレッドタイトル、およびSetLoadedTitle系メソッドを伴うSetLoadedDocumentInfo)が Unicode として格納されるようになりました。これでビューアはアクセント付き文字や CJK テキストを正しく表示し、ドキュメント情報が XMP メタデータと一致します - システムコードページのテキスト(たとえば中国語版 Windows での中国語タイトル)も正しく格納されます。有効な UTF-8 ではないバイトはそのコードページで読まれるためです
Version 2.765.6
Fixed
- 新規ドキュメントの初期ビュー(
InitialZoom)が、完全な fit-width・fit-height デスティネーションを書き込むようになりました。以前は ISO 32000-1 Table 151 が要求するオペランドが欠落していたため、Poppler などのビューアが、デフォルト設定で作成したすべてのドキュメントに対してデスティネーション配列が短すぎると報告していました
Version 2.765.5
Fixed
- 最初のページから始まらないページラベルも、最初の範囲より前のページをカバーするようになりました。それらのページは通常の番号を保ちます。ページラベルツリーは最初のページを含まなければならず(ISO 32000-1 12.4.2)、含めないとビューアが誤ったラベルを表示する可能性がありました
SetLoadedPageLabelは、範囲をページ順に保ち、同じページで始まる範囲を置き換えるようになりました。これでビューアは意図したラベルを表示します。以前は新しい範囲が順不同で追記され、重複することもありました- 既存のラベルを別オブジェクトに格納しているドキュメントでも、
SetLoadedPageLabelがそのラベルを破棄しなくなりました。複数ノードに分割されたラベルツリーの更新にも対応します - UTF-8 で与えたページラベルのプレフィックスも Unicode として格納されるようになりました
Version 2.765.4
Fixed
- UTF-8 で与えたリンクの説明文(
AddURILink、AddGoToLink、AddGoToRLink、AddLaunchLink、AddNamedDestinationLinkおよび構造デスティネーションリンク)が Unicode として書き込まれるようになりました。スクリーンリーダーやビューアが、文字化けした文字の代わりにアクセント付き文字や CJK テキストを表示します AddLoaded...Annotationメソッドで読み込み済みドキュメントに追加する注釈のテキストと作成者も同様に扱われ、新規ドキュメントで作成する注釈と一致します
Version 2.765.3
Fixed
AddGoToLinkが、新規ドキュメントで後から追加されるページへのリンクを作れるようになりました。1 ページ目の目次から前方のページへリンクできます。以前はこの種のリンクが、エラーなしで捨てられていました- 対象ページが最後まで追加されなかったリンクは、存在しないページを指す代わりに、領域を保持したままアクションを持たなくなります
Version 2.765.2
Fixed
SetLoadedOutlineOpenが、読み込み済みドキュメントのブックマークを実際に開閉するようになりました。以前はビューアに無視されるキーを書き込むだけで、ブックマークの状態は変わっていませんでしたAddLoadedOutline、SetLoadedOutlineURI、SetLoadedOutlineDestinationは、要求したブックマークに対して動作するようになりました。0 より大きいインデックスでは誤ったブックマークを変更するか、何もしませんでした- 読み込み済みドキュメントにブックマークを追加すると、親・祖先・アウトライン全体の表示項目数が更新されるようになりました。ビューアが誤った展開状態や項目総数を表示することはなくなります
- 読み込み済みブックマークに Web リンクを設定するとページデスティネーションが取り除かれ、デスティネーションを設定するとアクションが取り除かれるようになりました。ブックマークはどちらか一方しか持てないためです
AddLoadedOutlineとSetLoadedOutlineTitleに UTF-8 で与えたブックマークタイトルが、文字化けしたバイト列の代わりに Unicode として格納されるようになりました
Version 2.765.1
Fixed
- 新規ドキュメントのブックマークが、ISO 32000-1 12.3.3 の要求どおり、表示される項目数を記録するようになりました。以前はアウトラインも開かれたブックマークも、閉じたブックマークの内側を含むすべてのネストされた項目を数えていました
- 子を追加した後にブックマークへ
Openedを設定すると、ビューアで実際に開かれた状態になります。以前はこの変更がファイルに到達しませんでした - 既存のブックマークへ
Titleを代入すると、ドキュメントに表示されるタイトルが変わるようになりました - 非 ASCII テキストを含むブックマークタイトルを UTF-8 で与えると、Unicode として書き込まれるようになりました。アクセント付き文字や CJK のタイトルが、文字化けではなく正しく表示されます
- ブックマークが、仕様が要求する親への参照を持つようになりました
Version 2.765.0
Added
HPDFTokenizeContentStreamAppendは、コンテンツストリームを既存のトークン配列へ直接トークン化します。複数のストリームを結合する呼び出し側は、ストリームごとの一時配列を避けられます
Changed
- 描画のためのページコンパイルが、コンテンツストリーム内の数値やオペレーターごとにメモリを確保しなくなりました。ページの内容はページのディスプレイリストへ直接トークン化され、そこへコピーされることはありません
- コールドなドキュメントでの並列ページ描画のスケーリングが大きく改善しました。128 ページのベクターテストドキュメントでは、4 ワーカーが 1 ワーカーの約 3〜3.5 倍の速さで完了します(以前は 32 ビットビルドで約 1.4 倍、64 ビットビルドで約 1.7 倍)
- 同じドキュメントでのシングルスレッドのページコンパイルと描画も約 35% 速くなりました。トークン、ディスプレイリスト、描画結果は変わりません
Version 2.764.7
Changed
- グラフィックス状態の保存と復元(
q/Q)を頻繁に行うコンテンツの描画が、保存のたびにメモリを確保しなくなりました。この確保が並列ページ描画のワーカースレッドをメモリマネージャー内で相互に待たせていました - 128 ページのベクターテストドキュメントのコールド並列描画は、4 ワーカーで約 7〜10%、1 ワーカーでも約 5% 速くなりました。描画結果は変わりません
Version 2.764.6
Fixed
- 並列ページ描画で、以前描画したページのディスプレイリストがまだキャッシュに残っている場合に、1 度に 1 ページしか処理しなくなりました
- 以前は、描画待ちの各ページがメモリ予約を保持したまま、実際に描画されるのは 1 度に 1 ページだけでした。そのため他のワーカーが共有メモリバジェットで足止めされていました。ワーカー数と同数のページが待ちに入ると、今度は並列に描画されます
- 最初のページは引き続き早く到着し、バッチが予約するメモリはバジェット全体を埋めるのではなく、ワーカー数に比例したままになります
Version 2.764.5
Fixed
SetStructureClassMapEntryが、1 つの属性ディクショナリーを複数のクラス名で、あるいは同じ名前で再度登録できるようになりました。ディクショナリーは解放されません- 以前は、これらのエントリーの 1 つを削除または置換すると共有ディクショナリーが解放され、残りの
/ClassMapエントリーが解放済みメモリを指すため、ドキュメントの保存でゴミを書き込んだりアクセス違反を起こしたりする可能性がありました - 直接作成した属性ディクショナリーは、登録の時点で間接オブジェクトになり、すべての
/ClassMapエントリーがそれを参照します。ディクショナリーの所有者はドキュメントなので、呼び出し側が解放してはいけません
Version 2.764.4
Fixed
- ページの
/Fontや/XObjectなどのリソーステーブルが/Resourcesの内側に直接書かれていて、そのすべてのエントリーが未使用の場合、RemoveUnusedLoadedPageResourcesがテーブルを削除した後にそのテーブルへ書き込まなくなりました - 以前はこの書き込みが解放済みメモリに向かっていました。通常は気づかれないままですが、メモリを破壊したり、セッションの後段でアクセス違反を起こしたりする可能性がありました
- 空になったリソーステーブルを
/Resourcesから取り除く従来の動作は変わらず、保存結果も変わりません
Version 2.764.3
Fixed
PubSecKeyMaterialを使って公開鍵(証明書)暗号化 PDF をLoadFromFileやBeginIncrementalUpdateで開く際に、ファイルキーの復元中に、すでに解放されたメモリから受信者エンベロープを読まなくなりました- この不具合はメモリの再利用のされ方次第で発生していました。通常はドキュメントが開くものの、キーマテリアルが割り当てられていないかのように拒まれたり、誤ったバイトをアンラップしたりすることがありました
- 複数受信者のドキュメント、受信者選択コールバック、
AddPubSecKeyMaterialで登録した追加キーマテリアルは、すべて同じ修正済みエンベロープリストを使います
Version 2.764.2
Fixed
- 読み込んだフォームに対して
AddLoadedTextFieldやほかのAddLoaded*フィールドメソッド、EnsureLoadedFieldAppearanceStream、FlattenFormFieldsが生成するフィールド外観は、/DRエントリーを共有する代わりに、AcroForm の/DRフォントへの参照を独自に保持するようになりました - AcroForm の
/DRディクショナリーを差し替えたり削除したりした場合や、最後のフォームフィールドを削除した場合(AcroForm 自体も一緒に削除されます)でも、これらの外観が解放済みフォントオブジェクトを指したままになることはありません - 以前は、その後にドキュメントを解放する際に隠れたアクセス違反に当たる可能性があり、ドキュメントの残りが解放されないままになったり、メモリを破壊したりすることがありました(とりわけ 64 ビットビルドで頻発)
/DRの内側に直接書き込まれたフォントは、外観が最初に参照した時点で間接オブジェクトになるため、保存したファイルではフィールド外観と/DRが同じフォントオブジェクトを指します
Version 2.764.1
Fixed
LoadFromFileの後でProcessObjectStreamsForDecompressionを呼んでも、読み込み時にすでに閉じられたファイルストリームを読まなくなりました。代わりに読み込み済みファイルを再走査するので、オブジェクトストリームのメンバーはExtractObjectFromStreamから引き続き利用できます- この不具合はメモリの並び方次第で発生するため、通常は気づかれないままですが、アクセス違反を起こしたり、無関係なメモリを走査したりする可能性がありました(とりわけ 64 ビットビルドで頻発)
FindAllObjectStreams、ScanAndLoadReferencedObjects、ForceLoadMissingReferencedObjectsは、読み込み中でないときに呼んでも何もしなくなり、閉じられたストリームに触れることがなくなりました
Version 2.764.0
Changed
- 1 つの
THotPDFインスタンス(フォームに貼ったコンポーネントなど)が、ドキュメントを続けて何度でも書き出せるようになりました。EndDocの後のBeginDocは例外を投げる代わりに、新しい独立したドキュメントを開始します EndDocは、書き出したドキュメントに登録されていたものすべて(画像、フォント、フォームフィールド、アウトライン、ドキュメント JavaScript、名前付きデスティネーション、ページラベル、ICC プロファイル、出力インテントなど)を破棄し、次のBeginDocがそのページとオブジェクトを解放します。つまり、これらが次のファイルに持ち越されることはありません。ReproducibleOutputが有効な場合、再利用したインスタンスから書き出した 2 つ目のドキュメントは、新しいインスタンスで書き出した場合とバイト単位で同一になりますEndDocから次のBeginDocまでの間に行われた登録(AddPDFAOutputIntentやNames経由で追加したスクリプトなど)は次のドキュメントに属し、BeginDocによってクリアされなくなりましたFileName、Compression、PDFACompliance、Author、Titleといったプロパティ設定は、ページレイヤーやフォントフォールバックチェーンとともに次のドキュメントに引き継がれます。あるドキュメントのために自動的に引き上げられた PDF バージョンは、Versionプロパティの値に戻ります- 書き出したドキュメントは
EndDocの後も次のBeginDocまでアクセス可能なままなので、ValidatePDFUA2Structure、CurrentPageNumber、PagesCountおよびレイアウト診断は引き続き機能します - 保護されたドキュメントは暗号化の時点でパスワードがクリアされるため、
ActivateProtectionが有効のまま新しいパスワードが設定されていない状態でBeginDocを呼ぶと、空のパスワードで次のファイルを保護する代わりに例外が発生します - 同じインスタンスで読み込んだドキュメントを書き直した後に新しいドキュメントを開始した場合も、クリーンなファイルが得られます
Version 2.763.1
Fixed
- EPUB の変換や HTML5 プロファイルでの HTML 取り込みで、段落が現在のページに収まらない場合にアクセス違反が起きる可能性がなくなりました。段落は常に新しいページに描画されます
HPDFRenderHTMLDocumentが使うコンパクトブロックレンダラー内の段落、リスト項目、水平罫線にも同じ修正が及んでいます- この不具合はメモリのレイアウト次第で発生するため、散発的に(とりわけ 64 ビットビルドで頻繁に)現れ、変換が何も出力しないまま終わったり、内容が壊れたりする可能性がありました
Version 2.762.1
Fixed
- すでに新しいドキュメントを書き出した
THotPDFインスタンスで再びBeginDocを呼んでも、アクセス違反で終わらなくなりました。インスタンスが書き終えたドキュメントのオブジェクト、画像、フォント、フォームフィールドをまだ保持しているため、新しいインスタンスを求める例外が発生します - クラッシュを過ぎたとしても、2 つ目のドキュメントは 1 つ目のオブジェクト(内容やフォームフィールドを含む)を引きずってしまうはずでした。新しいドキュメントごとに 1 インスタンスとすることで、各ファイルは自分自身の内容だけを持ちます
LoadFromFileで既存ドキュメントを読み込んで書き直す操作には影響ありません
Version 2.762.0
Fixed
- テキスト、フリーテキスト、線、四角形、円、スタンプ、ファイル添付の各注釈が、PDF/A-2、PDF/A-3、PDF/A-4、PDF/X-6 ドキュメントで表示されるようになりました。従来はバリデータを通すためだけの空の外観ストリームを持っており、ビューアは外観を描くため何も表示されていませんでした
- これらの外観は注釈を実際に描くようになりました。四角形と円の枠、線、注釈色のノートアイコンと添付アイコン、スタンプの枠、そして背景色で塗られたフリーテキストのボックスです
- PDF 2.0 出力では、ISO 32000-2 Table 166 が求めるとおり、これらの注釈すべて、拡張マークアップ注釈、新規フォームフィールドに外観ストリームを与え、
/NeedAppearances falseを書き込みます。PDF/A と PDF/X の範囲外では、フリーテキストとスタンプ名は Helvetica で描画されます - PDF/A と PDF/X では、使われるフォントはすべて埋め込み必須のため、フリーテキストとスタンプの外観はテキストを描きません。テキストは注釈内に保持され、ビューアが表示します
Version 2.761.6
Fixed
- ファイル添付注釈(
AddFileAttachmentAnnotation)を、ビューアで再び開けるように、保存もできるようになりました。従来のファイル仕様は、埋め込みファイルストリームそのものを/EFとして書いていましたが、ISO 32000-1 Table 44 が求めるのは、ストリームを/Fの下に収めた/EF辞書です。そのためリーダーは、ファイルエントリが欠落していると報告していました - この添付の埋め込みファイルストリームには
/EmbeddedFileの型が付き、注釈テキストもファイルの説明として格納されます
Version 2.761.5
Fixed
- 名前付きデスティネーション、ドキュメントレベルの JavaScript、ドキュメント添付ファイルが、ISO 32000-1 7.9.6 が求めるとおりネームツリーキーをソート済みの順序で書き込むようになりました。従来は登録順に書き込まれていて、ツリーを検索するリーダーはエントリを見逃す可能性がありました(qpdf はツリーがソートされていないと報告していました)
- 同じファイル名の 2 つのファイルを添付しても、1 つのキーを共有する 2 つのエントリが作成されなくなりました。従来は片方の添付ファイルしか到達できませんでした。2 つ目には
a (2).txtのような番号付きキーが割り当てられ、元のファイル名はそのまま保持されます AddLoadedDocumentJavaScriptとAddLoadedNamedDestinationによる変更が保存されるようになりました。従来は、編集したネームツリーが直接辞書にあると書き戻されず、新しいエントリが失われていました。両メソッドともソート済み位置に挿入され、/Kidsノードに分割されたツリーでも同じように動作し、同名の既存エントリを置き換えますAddLoadedDocumentJavaScriptは、生のスクリプトストリームの代わりに JavaScript アクションをネームツリーの値として格納するようになり、AddLoadedNamedDestinationは/XYZデスティネーションのズームオペランドを書き込むようになりましたRemoveLoadedJavaScriptとRemoveLoadedJavaScriptAllは、ドキュメント本体からスクリプトを取り除くようになりました。従来はゲッターが返すリストが変わるだけで、保存されたファイルにはスクリプトが残ったままでしたSetDocumentAttachmentMetadataは、渡された添付ファイルの名前を変更するようになりました。従来はツリー内の最後の添付ファイルのキーを変更していました。名前を変更したエントリは、ソート済みの正しい位置へ移動します
Version 2.761.4
Fixed
- 新規 AcroForm は、ISO 32000-1 12.7.3.3 が求めるとおり、フィールドのデフォルト外観文字列が参照する Helvetica フォントをフォームのデフォルトリソース(
/DR)に必ず定義するようになりました。従来はAutoFormAppearancesなしではフォントが欠落し、フィールドの外観を生成するビューアに生成に使えるフォントがありませんでした AddLoadedComboBoxが本物のコンボボックスを作成するようになりました。従来は Combo フラグではなく Edit フラグを設定していたため、フィールドは全オプションを一覧表示するリストボックスになっていました- 読み込んだドキュメントに追加するフィールドは、
/NeedAppearancesを名前/trueではなく真偽値trueとして書き込むようになりました。また、このために作成される AcroForm は、/DA文字列が参照するデフォルト外観文字列とデフォルトリソースを受け取ります AddLoadedTextField、AddLoadedCheckBox、AddLoadedComboBox、AddLoadedListBox、AddLoadedPushButtonは、新しいフィールドに外観ストリームを与えるようになりました。外観を生成しないビューアでも、フォームに/NeedAppearances falseが設定されたドキュメントでも、フィールドが表示されます- 読み込んだプッシュボタン向けに生成される外観(追加・再描画・フラット化のいずれの場面でも)は、キャプションを描画するようになりました。従来は空でした
Version 2.761.3
Fixed
- 読み込んだフォームのテキストフィールドや choice フィールドの値を変更すると、フィールドが再描画されるようになりました。
SetFormFieldValue、ResetLoadedFormField、複数選択リストボックスの更新は外観ストリームを再生成します。ビューアは保存された値ではなく外観を描くため、従来は保存後のファイルがどのビューアでも印刷でも古いテキストを表示し続けていました - パスワードテキストフィールドとして生成される外観は、パスワードを読める形で表示する代わりに、1 文字につきアスタリスクを 1 つ表示するようになりました(ISO 32000-1 Table 228)。
AutoFormAppearancesを使う新規フィールドと、再描画・フラット化される読み込み済みフィールドの両方が対象です AnalyzeLoadedSignatureRevisionsは、署名後にフォーム入力が追加する新しい外観辞書・外観ストリーム・そのリソースを、フィールド本体と同様にフォーム入力として分類するようになりました。これにより、認証済みフォームへのインクリメンタル更新での入力が、未知の構造への変更として報告されなくなります
Version 2.761.2
Fixed
- Flate 圧縮で追加する 1 ビットおよび 4 ビットのパレットビットマップが、色を保持するようになりました。従来は 256 色のシステムパレットに再マップされ、そのパレットに含まれない色がすべてずれていました。現在は独自のビット深度とパレットで埋め込まれるため、画像データも小さくなります
- パレットが白を黒より先に並べている 1 ビットビットマップは、バッチとページ横断の JBIG2 経路を含め、CCITT Group 3、CCITT Group 4、JBIG2 圧縮でネガのようには出力されなくなりました。暗い方のパレット色が常に黒としてエンコードされます
icAutoMonoとAddMonochromeImageAutoは、色付きパレットを持つ 1 ビットビットマップを、CCITT や JBIG2 で白黒化する代わりに Flate のまま扱うようになりました- CCITT Group 3 の 2 次元画像(
icCCITT32)が/Kパラメータに従うようになりました。先頭行と 2 行ごとの行が 1 次元で符号化され、/Kは 2 になります。従来は/K 1のまま全行が 2 次元で符号化されていましたが、この値は 2 次元行をまったく許しません(ISO 32000-1 Table 11、ITU-T T.4)
Version 2.761.1
Fixed
- DCT 圧縮で追加する JPEG 画像が、独自のカラーモデルを保持するようになりました。グレースケール JPEG は
DeviceGrayとして、CMYK JPEG はDeviceCMYKとして書き込まれます。従来はすべての JPEG がDeviceRGBと宣言され、グレースケールファイルは乱れたり途中で切れたりして表示され、CMYK ファイルは誤った色で表示されていました - Adobe マーカーを持つ CMYK JPEG(よくある Photoshop の出力)には、サンプル値が必要とする反転した
/Decode配列が設定されるようになりました(ISO 32000-1 8.9.5.2 および 7.4.8) - PDF/A の色空間チェックは、グレースケールおよび CMYK の JPEG 画像を DeviceRGB ではなく DeviceGray / DeviceCMYK の使用として扱うようになりました
StampLoadedPageImageは、JPEG を読み込んだページにスタンプする際も同じカラーモデルを適用するようになりましたPHOTO.JPGやscan.jpegのようなファイル名も、すべての圧縮タイプで JPEG として読み込めるようになりました。AddImageのファイルオーバーロードは、大文字小文字を区別する.jpg拡張子の代わりにシグネチャで JPEG データを認識するようになり、そのようなファイルをビットマップとして読もうとしなくなりました
Version 2.761.0
Added
- 新しい
AddLoadedSignedSignatureFieldは、署名できる状態の署名フィールドを読み込んだドキュメントに追加します。すでに署名済みの PDF でも、インクリメンタル更新で 2 つ目の署名(カウンターサインや承認)を受け取れます - フィールドは、
SignPDFWithPFX、PreparePDFForSigning、InsertSignatureHexが書き込む署名スペースを予約します。BeginIncrementalUpdateとSaveIncrementalUpdateの後には新しい署名がファイル全体をカバーし、先の署名たちは有効なまま残ります - 理由・場所・連絡先の情報、SubFilter、予約する署名サイズはフィールドごとに設定できます(いずれも省略可能)。AcroForm には署名済みかつ追記専用であることを示すフラグが立ち、署名済みドキュメントに外観再生成フラグは追加されません
Fixed
BeginIncrementalUpdateのドキュメントにあるマルチ署名ワークフローが、実際に動く手順を説明するようになりました。従来の説明は、読み込み後には存在しないカレントページと、署名スペースを予約していない署名フィールドに依存しており、署名が失敗していました
Version 2.760.1
Fixed
DrawQRCode、DrawDataMatrix、DrawPDF417、DrawAztecが、ドキュメントどおり描画後にページの塗りつぶし色を復元するようになりました。従来は、その後に塗りつぶす図形がバーコードの色を引きずっていました- これらのバーコードは 1 本のパスとして描かれ、行の中で連続する暗モジュールの並びが 1 つの矩形に統合されます。ページコンテンツが小さくなり、隣接モジュール間のかすかな継ぎ目がビューアに表示されなくなります
Version 2.760.0
Changed
CryptKeyLengthをaes256に設定すると、出力バージョンがそれより低い場合には PDF 1.7 へ引き上げられます。これは他のバージョン依存機能と同じ挙動で、ドキュメントが本当に AES-256 で保護されます。デフォルトの PDF 1.6 出力では、何の告知もなく AES-128 で書き込まれていました。StrictVersionLockを設定している場合は、低いバージョンのままで AES-128 にフォールバックします
Fixed
- 保護プロパティのヘルプページに、実在しない権限名が表示されていました。例と
prPrint・prPrint12bitの説明が実際のオプションと一致するようになり、公開鍵暗号化の注意書きはサポートされるキータイプを列挙します
Version 2.759.0
Fixed
- 署名済み PDF は、
<と>の区切り文字を含む/Contents文字列全体を、ISO/IEC 32000-1 12.8.3.3 が求めるとおり署名バイト範囲の外に置くようになりました。従来は区切り文字まで署名対象で、バイト範囲を署名値と突き合わせる検証ツールが無効なバイト範囲として報告していました - 添付 MAC を持つ署名の PDF MAC 検証は、標準のバイト範囲と、以前のバージョンが書き込んでいたバイト範囲の両方を受け入れます
Security
- 署名検証は、2 つのバイト範囲の間の未署名ギャップに、署名自身の
/Contents文字列以外のものが入っているドキュメントを拒否するようになりました。署名済みバイトの外側のコンテンツがカバー済みとして報告される signature wrapping の抜け道が塞がれます。以前のバージョンが作った署名も引き続き検証できます
Version 2.758.1
Fixed
AttachSignatureFieldAppearanceが未署名の署名フィールドに与えるデフォルト外観が、薄いグレーの背景を再び描くようになりました。従来は塗りつぶし矩形に 2 つのオペランドが欠けていて、パスの内側で色を設定していたため、ビューアがこれを拒否していました- 新しいページに作成するフリーテキスト注釈が、ISO 32000-1 が求めるデフォルト外観文字列を持つようになりました。ビューアは空のボックスを表示する代わりに、テキストをレイアウトできます
Version 2.758.0
Fixed
- 内蔵 JBIG2 デコーダーは、テキストストリップ内の 2 個目以降の各シンボルを、ISO/IEC 14492 が指定する位置に配置するようになりました。従来はシンボルが 1 個進むごとに 1 ピクセルずつ右へずれていき、他のエンコーダーが作った JBIG2 スキャンのテキストが崩れていました
- ネイティブ算術エンコーダーと、グリフを 1 個だけ持つシンボル辞書で書かれた JBIG2 画像を、他の PDF ビューアでも読めるようになりました。従来はシンボル識別子が 0 ビットではなく 1 ビットで符号化され、それらのビューアは最初のグリフで失敗していました
- リファインメントと集約でグリフを組み合わせるシンボル辞書が、標準のスペーシングでデコードされ、他の JBIG2 デコーダーと一致するようになりました
- グローバルシンボル辞書を共有する JBIG2 画像は、
/Filter配列に対応する配列として/DecodeParmsを書き込むようになりました。他のビューアは単独の辞書を無視して共有グリフを見つけられず、そのような画像は表示に失敗していました
Version 2.757.0
Fixed
DirectDrawBarcodeとSimple*バー関数が、すべてのシンボロジで本物のバーコードを描くようになりました。従来はその大半が、データを何も運ばない等間隔の縞模様を返していました。コードセット C の GS1-128(タイプ 22)は Code 39 へフォールバックせずに描画され、POSTNET の短いバーは高さの 40 % で描かれますDirectDrawBarcodeがバーの幅と高さをページ座標系でスケールするようになりました。ドキュメントのスケールが 1 単位 = 1 ポイントでなくても、バーコードは読み取り可能なままです- Code 128、Code 93、EAN / UPC ファミリーは、
Ratioの設定値にかかわらず 1〜4 モジュールの正確な要素幅を保つようになりました。従来は 2 以外の比率を設定すると読み取れなくなっていました - EAN-8、EAN-13、UPC-A、UPC-E にデータ桁だけを渡すと、チェックデジットが追加されるようになりました。従来は最後のデータ桁がチェックデジットとして扱われていました。
Checksum有効時、UPC-A は最後のデータ桁を落とさなくなり、UPC-E のチェックデジット(バーのパリティ選択も兼ねます)は展開後の UPC-A 番号から計算されます - MSI のチェックデジットは奇数桁の番号でも正しく計算され、POSTNET コードには訂正桁が付きます。Interleaved 2 of 5 は先頭に 0 を追加することで、奇数長の番号の最後の桁を保持するようになりました
- Code 128 A は小文字をスペースや制御文字に置き換える代わりに SHIFT で符号化し、Code 39 は小文字を大文字へ正規化し、Codabar は指定されたスタート・ストップ文字をそのまま使うようになりました
- シンボロジが表現できない文字は例外を発生させるようになりました。従来は Code 39 と Code 128 がそのような文字を落としたり置き換えたりし、Codabar は文字テーブルの外を読んでいました
Checksumを有効にした GS1-128 は、バーコードを計測したり描画したりするたびにTextへチェックデジットを重ねて追加しなくなりました
Version 2.756.0
Fixed
DrawQRCodeで描いた、またはTHPDFQRCodeで作った QR コードが、標準のリーダーで読み取れるようになりました。フォーマット情報が ISO/IEC 18004 の指定どおりに配置され、誤り訂正ブロック構造がバージョン 10〜40 のすべて(および 7-Q)で正しくなります- 自動モード選択は、小文字を含むテキストをバイトモードに保つようになりました。
https://example.comのような URL が大文字でエンコードされ、読み戻されることはなくなります - 長さの末尾が 1〜2 桁の数字、または 1 文字の英数字で終わるテキストでも、それに足りるサイズのシンボルが選ばれるようになりました。従来は末尾の文字が欠落していました
- 同じ
THPDFQRCodeインスタンスで 2 回エンコードしても、前のシンボルが新しいシンボルに混ざらなくなりました - 明示的に要求したバージョンが小さすぎる場合や、要求した数値・英数字モードではデータを表現できない場合、
Encodeは途中で切れたシンボルを作る代わりにFalseを返すようになりました - マスク選択が、ISO/IEC 18004 7.8.3 のファインダパターン様ペナルティと暗モジュールバランスのペナルティを適用するようになりました
- 内蔵バーコードデコーダーが標準の QR コードを読めるようになりました。Reed-Solomon 検証付きのマルチブロックシンボル、数値・英数字・バイト・ECI セグメント、UTF-8 ペイロード、複数のアライメントパターンを持つバージョンに対応します
Added
HPDFQRFunctionMapとHPDFQRExtractDataWordsを追加しました。QR シンボルを読むコードに向けて、モジュールレイアウトと、誤り検出付きブロックのデインターリーブを公開します
Version 2.755.9
Changed
- 画像ソフトマスクのレンダリングは、正確な水平サンプルインデックスを再利用し、対応する Delphi x86 / x64 ターゲットでは SSE2 によるアルファ事前乗算を使うようになりました。ピクセルの丸めとキャンセルを保ちつつ、一時ストレージは上限付きに抑え、スカラー実装のフォールバックも用意しています
Version 2.755.8
Fixed
- キャンセルされたページプリフェッチがドキュメントリソースを解放した後なら、フォアグラウンドのレンダリングはワーカースレッドの終了を待たずに再開できるようになりました。明示的なキャンセル・置き換え・再読み込み・破棄では、これまでどおりスレッドの終了を待ち合わせます。無効なページ範囲で、一時停止中のワーカーがリークしなくなります
Version 2.755.7
Fixed
- ページレンダリングは、グラフィックス状態の復元をまたいでもカレントパスを保持し、Form XObject と Type3 グリフのパス・クリッピング・保存済み状態を分離するようになりました。不正な余分な復元やキャンセルも含めて処理します
Version 2.755.6
Fixed
- SIMD 矩形レンダラーが、複合的な even-odd と nonzero の塗りつぶしルールに従うようになりました。穴、反転したサブパスの向き、端数を含むエッジ配置が保持されます。ラスタライズ中のキャンセルは部分的なビットマップを破棄し、正しく伝播します
Version 2.755.5
Fixed
- 複数選択フォームのインポートは、XFDF の 16 進互換表記を解釈する前に、正確なオプション値を確保するようになりました。リテラル値が別のオプションを選んでしまうのを防ぎ、保存される値と選択インデックスの一致を保ちます
Version 2.755.4
Fixed
- 縦書き(WMode 1)CID テキストからのテキスト抽出は、ISO 32000-1 9.4.4 の変位量に従ってペンを進めるようになりました。文字間隔は仕様どおり列を下るステップを短くし、長くしなくなります
- 縦書きテキストの
TJ位置調整は、横方向ではなく列に沿って上下へペンを動かすようになりました。抽出された列が分断されなくなり、読み取り順序は上から下に保たれます - 抽出時、CIDFont の
/DW2配列は指定された[v1y w1y]の順序で読まれるようになりました。デフォルト値に依存するグリフは 0.88 em ではなくフル em で送りされます - 抽出される縦書きグリフの原点は列の中心線上に保たれ、グリフボックスは垂直原点から位置ベクトルを引いた場所に置かれます。水平成分のデフォルトはグリフ幅の半分です
- 複数の連続する CID を記述する
/W2リストエントリは、抽出時に先頭の CID だけでなく、連続範囲のすべての CID にメトリクスを適用するようになりました - ページレンダラーとテキスト抽出インタプリタが、グリフと
TJ変位ルールの実装を 1 つに共有するようになりました。描画位置と抽出位置がずれることはありません
Version 2.755.3
Added
THPDFQCStatementInfoにHasPSD2Statement、PSD2RolesOfPSP、PSD2NCAName、PSD2NCAIdが加わりました。CMS レベルの記述子も同じフィールドを持ちますHPDFParsePSD2QcStatementは、手元にある PSD2 ステートメントを DER として解析し、不正な形式の入力はすべて拒否します
Deprecated
PSD2RolesPayerとPSD2RolesPayeeはソース互換性のために残っていますが、仕様が支払人・受取人のロールリストを定義していないため、常に空になります。PSD2RolesOfPSPを使用してください
Fixed
- PSD2 の修飾証明書ステートメントは、ETSI TS 119 495 の構造に沿って読まれるようになりました。決済サービスプロバイダ(PSP)のすべてのロールを、ロール OID とロール名、各国の主管当局(NCA)の名前と当局識別子とともに報告します。従来は実際の PSD2 証明書からロールがまったく報告されていませんでした
- 長さの超過や非最小長、コンポーネントの欠落・過剰、誤った文字列型、有効な UTF-8 でない名前を含む、不正な PSD2 ステートメントは、部分的に報告される代わりに全体を無視するようになりました
Version 2.755.2
Fixed
- 縦書き(WMode 1)テキストのページレンダリングは、各グリフを ISO 32000-1 9.4.4 のテキストスペース変位量で進めるようになりました。ワードスペーシングはフォントサイズでスケールされなくなり、2 バイトの CID コードに加算されなくなります。ワードスペーシングが適用されるのは 1 バイトのスペースコードだけです
- 縦書きテキストの文字間隔は、仕様が定めるとおり書字方向に沿って正確に適用されるようになりました。0 以外の
Tcを設定した列も、他の準拠ビューアと同じ高さで描画されます - 不可視テキスト(レンダリングモード 3 と非表示のオプショナルコンテンツ)は、描画テキストと同じルールで縦の列を進めるようになりました。後から来る可視グリフが正しい位置に保たれます
- CIDFont の
/DW2配列は指定された[v1y w1y]の順序で読まれるようになりました。デフォルト値に依存するフォントは 0.88 em ではなくフル em で送りされます - 縦書きグリフは、垂直原点から位置ベクトルを引いた位置に描かれるようになりました。水平成分のデフォルトはグリフ幅の半分で、列はペン位置を中心に揃います
- 複数の連続する CID を記述する
/W2リストエントリは、先頭の CID だけでなく、連続範囲のすべての CID にメトリクスを適用するようになりました
Version 2.755.1
Fixed
- ExportLoadedFormToFDF は、出力先ファイルを作成する前に FDF ボディ全体を生成するようになりました。エクスポート途中で失敗しても、出力先が途中までのドキュメントで置き換わることはありません
- FDF ストリームの相互交換スキャナーは 16 進文字列を追跡するようになり、hex 値が辞書終端子に直接接して終わってもフィールド辞書が壊れないようになりました
- 選択フィールドの選択インデックス再構成は、PDFDocEncoding、UTF-16、16 進表記が混在していても 1 つのマッチャーでデコードするため、等価なエクスポート値から /I が一貫して再構築されます
- XFDF インポートは、プレーンなリテラルテキストで渡されたオプションのエクスポート値の 16 進表記も受け入れるようになり、サードパーティーツールが書き出したデータのラウンドトリップが復活しました
- FDF エクスポートは、フィールド名のないウィジェット専用フィールドをスキップします。XFDF エクスポーターと、どのインポーターの挙動とも一致します
- Delphi の Stamp デモは、透かしとゴム印注釈を実際のページサイズに固定するようになりました。横向きや A4 以外の入力でも表示が消えません
- C++Builder の DigiPrint デモは、画像とページごとの行リストを解放し、ヘッダーの行間係数を初期化し、demo.xml が見つからない場合はクラッシュではなくエラーを報告するようになりました
- Win64 ABI DLL とコーデックワーカーのビルドスクリプトは、RAD Studio 12 以降では bin64 配下の dcc64 を見つけるようになりました。C++Builder ライブラリのフルビルドは、共有出力ディレクトリに残ったトライアル版の残骸を検出して掃除します
Version 2.755.0
Added
- 読み込んだ複数選択の choice フィールドが、FDF のファイル API とストリーム API、XFDF の配列対応コールバックを通じて個々の選択値をやり取りできるようになりました。オプションの境界を保持し、インポート時に選択インデックスを同期します
Version 2.754.6
Fixed
SetLoadedFormFieldExportValueは通常のフィールド値更新経路を使うようになりました。ボタンの値型、選択インデックス、外観状態、エンコード済み文字列、計算の変更追跡が保持されます
Version 2.754.5
Fixed
- XFDF のフォーム値と注釈テキスト要素は、整形用の空白を挿入せずに内容をそのまま保持するようになりました。先頭・末尾の空白、タブ、改行も含みます
Version 2.754.4
Fixed
- 読み込んだフォームの値・デフォルト・最大長ヘルパーは、継承されたエントリや間接参照のエントリも扱うようになりました。フィールドのリセットはデフォルト値の型を保持し、choice の選択とボタン状態を同期し、兄弟フィールドには手を触れません。再生成されたボタン外観は選択状態と有効な描画範囲を保ちます
Version 2.754.3
Fixed
- 名前付きの子フィールドは、フィールド型が継承されている場合でも個別にアドレスできるようになりました。継承された型・フラグ・オプションはフィールドヘルパーから参照でき、削除時も兄弟フィールドとそのウィジェットは保持されます
Version 2.754.2
Fixed
- 再生成された choice フィールドの外観は、エクスポート値を保ったまま Unicode のオプションラベルを表示するようになりました。未選択のリスト項目も描画し、単一・複数の選択をフィールドの値とインデックスに一致させて強調表示します
Version 2.754.1
Fixed
- 読み込んだ choice フィールドの更新時に、選択オプションのインデックスが新しい値と一致するようになりました。オプションのエクスポート値に加え、オプションリストの外にある編集可能な項目も扱います。共有の選択配列は変更しません
Version 2.754.0
Added
- オプションの HPDFCreateTesseractOCREngine と HPDFCreateRapidOCREngine ファクトリーにより、ローカルの認識プログラムと呼び出し側提供のモデルを検索可能テキストレイヤーに接続できるようになりました。Unicode テキスト、単語座標、タイムアウト、キャンセル、出力予算に対応します
Fixed
- テキストマトリクスのアドバンス、間接 CID フォントの幅、q/Q と Form のクリッピング復元、reduced JPEG の向き、画像ソフトマスク、Indexed ストリームのパレットを修正し、影響を受けたページでテキストレイアウトと画像内容が復元されるようにしました
- 小さい埋め込み TrueType の塗りグリフはローカルカバレッジのアンチエイリアシングを使うようになり、低 DPI での細いストロークが改善されました。キャンセルされた OCR 要求は、認識エンジンが失敗を返してもキャンセルとして報告されます
- RenderOutputDither が描画バックエンドと並列ページ描画の全体で適用されるようになりました。キャッシュ無効化とキャンセルも一貫します
Version 2.753.0
Added
- SetLoadedFreeTextPlainText が、対応している読み込み済み FreeText 注釈を ASCII の Helvetica プレーンテキストへ明示的に変換し、完全再書き込みと増分保存に向けて可視外観を再構築します
Fixed
- 読み込んだページの変換と保存時の検証は、間接参照および継承されたページボックスを解決するようになりました。共有されているページサイズが A4 に置き換えられることはありません
Version 2.752.5
Fixed
- ページビットマップの初期化は、上限付きブロックのクリア中にキャンセルを確認し、未完成のビットマップを解放します。キャンセルされたプリフェッチ処理が初期化を終えるのを待って、フォアグラウンドの描画が遅れることもありません
Version 2.752.4
Fixed
- ドキュメントを閉じたり再読み込みしたりするときに、所有する PDF オブジェクトグラフとストリームペイロードが解放されるようになりました。共有や循環する所有関係も含み、リンクされた参照を二重解放することはありません
Version 2.752.3
Fixed
- 読み込んだチェックボックスの値変更で、通常外観辞書に選択状態しか含まれていない場合でも、外観状態が同期されるようになりました
Version 2.752.2
Fixed
- ドキュメント構築後に再現可能出力を有効にした場合も、作成タイムスタンプが固定されるようになりました。クロックが進んでも等価な保存はバイト単位で同一に保たれます
Version 2.752.1
Fixed
- 読み込んだフォームフィールドの名前が PDF 文字列として一貫してデコードされるようになりました。UTF-16 の名前を持つフィールドも、同一性を変えずに検索・更新できます
Version 2.752.0
Fixed
- 読み込んだウィジェット以外の注釈を移動しても、注釈オブジェクトの同一性が保たれ、オプションのページ参照が移動先ページへ更新されるようになりました
Version 2.751.0
Fixed
- 読み込んだページを削除しても、名前付きデスティネーション、アウトラインのデスティネーション、構造ツリー、親ツリー、注釈オブジェクト参照が維持されるようになりました。完全再書き込みと増分保存のどちらでも、到達可能な null 参照が残りません
Version 2.750.0
Fixed
- 完全な PDF 再書き込みでは、オブジェクトストリームコンテナを置き換える前に未読の圧縮オブジェクトを展開するようになりました。フォント、カラースペース、ActualText が保持され、中国語テキストの文字化け、ページ表示の変化、抽出テキストの変化が解消されます
- ユーザーパスワードが空の暗号化ドキュメントは、そのまま読み込んで再書き込みを開始できるようになりました。ロックされたオブジェクトストリームがある場合は、不完全なドキュメントを生成するのではなく、はっきりと失敗します
- 変更されていない数値オブジェクトはソースの精度を保持します。再書き込み後に色や透過が微妙にずれるのを防ぎます
- コピーしたページは検証済みのリソース名と参照を保持します。間接リソース辞書のエラーや誤ってバインドされた画像が解消されます
Version 2.748.6
Fixed
- テーブルが実際に保持しているより多いエントリ数を宣言する相互参照サブセクションが、読むべきデータがもうないのに宣言数ぶんの巡回を続ける問題を修正しました。このため、40 バイトの壊れたファイルを拒否するのに数十秒かかっていました
- 操作が例外を投げたときに job runner がそれまでに生成した結果をすべて失う問題、および周囲のストリームが作成できない場合に HTML インポートが画像オブジェクトを失う問題を修正しました
Version 2.748.5
Fixed
- 非 ASCII パスワードの PKCS#12 ファイルが開けない問題を修正しました。パスワードは UTF-8 バイト列ですが、1 バイトずつ拡張されただけでデコードされていなかったため、ASCII 外のすべての文字で導出キーが誤っていました。新しい PBES2 方式で保護されたファイルは影響を受けないので、両者で挙動が違っていました
- 無効なオプションを渡して構築したとき、署名バッチ検証器と失効証拠キャッシュが独自のエラーではなく access violation を投げる問題を修正しました。デストラクタが、解放対象のメンバーが生成される前に走っていたためです
- 証拠ダウンロードタスクが、引数が拒否されたときにデストラクタ内で失敗する問題を修正しました。チェックがスレッド本体の生成前に走っていたためです
- クラウド署名プロバイダーが、第 2 アークが 39 を超えるアルゴリズム識別子をエンコードする問題を修正しました。壊れた識別子は変換エラーではなくプロバイダー自身のエラーを投げるようになります
- 証明書コンテナと署名コンテナは、包含する要素を超える長さを宣言するネスト要素を拒否するようになりました。検証対象と署名がカバーする範囲がずれることはもうありません
- RSA 署名の後、秘密鍵の値はメモリから消去されます。次の確保のためにメモリ上に放置されることはありません
Version 2.748.4
Fixed
- Type 1 フォントの読み込みがフォントプログラムの最初の行からすべてのプロパティを読む問題を修正しました。トークンリストが空にされずに補充されていたため、バージョン・ファミリー・ウェイトの文字列、stem hints、charstring キー長がすべて古いトークンから取られていました。Type 1 フォントは自分自身のメタデータを報告するようになります
- charstring キー長が、すでに解放済みの文字列へのポインタとして保持され、範囲チェックなしで使われる問題を修正しました。今後は値として保存し、フォーマットが許す範囲にクランプします
- 埋め込まれていないフォントが常にシステムの既定フェイスへフォールバックする問題を修正しました。要求されたフェイス名がワイド文字のフォントレコードへバイト単位でコピーされていたため、インストール済みのどのファミリーとも一致しませんでした
- 埋め込み TrueType / OpenType のパースが、グリフアウトライン、コンポジットグリフ引数、OpenType コンテナの CFF テーブルのデコード時に、切り詰められたフォントプログラムの終端を超えて読む問題を修正しました。壊れた文字マップが負のグリフ配列を要求することもなくなります
- 宣言オブジェクト番号がオーバーフローする相互参照テーブルとストリームの問題を修正しました。整数上限付近の番号を名乗るエントリが負のインデックスに折り返してテーブルの外に書き込まれ、ファイルの実際のサイズよりはるかに大きな宣言オブジェクト数や
/Sizeが、その宣言だけでローダーの配列サイズを決めていました
Version 2.748.3
Fixed
- Data Matrix が有効な入力を拒否する問題を修正しました。シンボルサイズを桁数の半分で見積もっていましたが、コードワードを共有するのは隣接する桁だけなので、
1a2a3aのようなテキストは自分のデータに対して小さすぎるシンボルを選び、エンコードに失敗していました - XFDF 内の 4 バイト UTF-8 文字(絵文字など)が誤ったサロゲートペアにデコードされる問題を修正しました。認識できないバイトが後続の 3 文字を飲み込むこともなくなります
- 拡張メタファイルのリージョンレコードが、リージョンヘッダーの数を盲信する代わりにレコードサイズで矩形数を上限づけするようになりました。レコードを大きく読み越し得る問題です
- 宣言された幅×高さがアドレス可能範囲を超える PNG 画像は、負の長さのピクセルバッファを確保する代わりにヘッダー時点で拒否されます
- 高品質画像リサンプリングは、中間バッファのサイズをオーバーフローさせる代わりに範囲外の要求を報告するようになりました
- ピクセル数より多いエントロピーグループを名乗る WebP メタプレフィックス画像は、数百バイトの入力から数百メガバイトのプレフィックステーブルを確保する代わりに拒否されます
- Aztec エンコード、WebP ビットマップデコード、object stream デコードのワーカープールの失敗パスでのリークを修正しました。後続ステップが例外を投げたとき、構築途中のオブジェクトが放置されていました
Version 2.748.2
Fixed
- QR Code シンボルが最後のコードワードビットを落とす問題を修正しました。モジュール配置の巡回が左端の列をスキップしており、最終誤り訂正ブロックの末尾がシンボルに書き込まれていませんでした
- QR ターミネータがデータブロックの残り全体をゼロビットで埋め、ISO/IEC 18004 が要求する 0xEC / 0x11 パディングコードワードの場所がなくなる問題を修正しました。バージョン 1 のシンボルは代わりにゼロコードワードを 6 個抱えていました
- 新しいテストは生成されたシンボルをモジュールから読み戻します。データブロック、パディングコードワード、誤り訂正ブロック、マスク、配置をすべて、エンコーダー自身の出力ではなく標準規格に対して検証します
Version 2.748.1
Fixed
- 壊れた入力を報告する代わりにハングするパーサーを 3 件修正しました。配列内の
>>や辞書内の]で固まる object パーサー、迷子の括弧や波括弧で固まる CMap リーダー、タグ名を持たない構文(文書型宣言など)や属性間の迷子バイトで固まる XFDF リーダーです。いずれもカーソルの前進が止まり、1 バイトの想定外データがパースを無限ループに変えていました - XFDF の CDATA セクションがマークアップとして読まれる問題を修正しました。内容は要素テキストとして扱われ、セクションマーカーは最初の文字を飲み込む代わりに正しく計測されます
- 2 GB 近い WebP チャンク長がサイズチェックをオーバーフローさせ、ファイルバッファの終端を超えて payload をコピーする問題を修正しました。チャンク長は 64 ビット演算で範囲チェックされるようになります
- 0xFFFFFFFF の PNG チャンク長が、チャンクが宣言長を報告し続けるままチャンクバッファを解放し、後続の読み取りが解放済みメモリを指す問題を修正しました。過長チャンクは拒否されます
- CCITT fax デコードが、非常に大きな宣言ページジオメトリで行バッファサイズ計算をオーバーフローさせ、バッファを超えて書き込む恐れがあった問題を修正しました。行ストアは上限づけされ、デコードは上限できれいに停止します
- 幅が 8 の倍数のとき、CCITT エンコーダーがスキャンライン終端の 1 バイト先を読む問題を修正しました
- 拡張メタファイルのコメントレコードが 64 ビットビルドで 32 ビットに切り詰められたポインタ経由で読まれ、GDI コメントを持つすべての EMF で無関係なアドレスを読む問題を修正しました
- パレットエントリが 256 未満の 8 ビット画像が、カラーテーブルの末尾として未初期化メモリを公開する問題を修正しました。テーブルは実際のエントリ数を宣言するようになります
- 署名コンテナや証明書コンテナのパース中に、深くネストした不定長 BER 構造がスタックを使い切る問題を修正しました。128 レベルを超えるネストは拒否されます
Version 2.748.0
Fixed
- ライブラリが描画するすべての 2D バーコードの誤り訂正を修正しました。QR Code、Data Matrix、PDF417、Aztec は生成多項式を定数項から組み上げておきながら、最高次項が先頭にあるものとして除算していたため、どのシンボルも規格準拠のリーダーが受け付けないチェックワードを抱えていました。チェックワードは ISO/IEC 18004、ISO/IEC 16022、ISO/IEC 15438 の計算例と一致するようになります
- Aztec シンボルが payload を失う問題を修正しました。エンコーダーはコードワード配列をその場で除算し、呼び出し側はその同じ配列を出力するため、メッセージワードが除算で上書きされ、シンボルにはデータも有効なモードメッセージも載っていませんでした
- Data Matrix の生成多項式がルートを 1 次低い位置から始め、ISO/IEC 16022 附属書 E が定める多項式と異なる多項式になる問題を修正しました
- Data Matrix のファインダーパターンを修正しました。塗りつぶしの L は左列と最下行、交互のクロックトラックは最上行と右列に置かれ、それぞれ L と共有するコーナーで黒から始まります。両者が入れ替わっており、リーダーがシンボルの向きを確定できませんでした
Version 2.747.4
Fixed
- 読み込んだドキュメントの編集がシステムの小数点区切り文字で PDF の数値を書き出す問題を修正しました。ページ連結、矩形の黒塗り、テキスト/画像スタンプ、複合透かし図形、楕円外観は常にピリオドを出力するようになり、小数点にカンマを使うロケール(たとえばドイツ語やフランス語の Windows)で編集したドキュメントにも、ビューアが拒否するコンテンツストリームが含まれなくなります
- Type 1 フォントの読み込みがシステムのロケールに依存する問題を修正しました。FontMatrix、BlueValues、stem hints、charstring の実数はピリオド付きの PostScript 数値としてパースされるようになったため、カンマ小数点のシステムでも PFB フォントはメトリクスとアウトラインを保ち、黙って崩れることがなくなります
- デフォルト外観(
/DA)のフォントサイズと色のパース、HTML の width・size属性、FormCalc の結果、job JSON の数値がプロセスのロケールに従っていた問題を修正しました。今後は読み書きどちらの向きでも invariant フォーマットを使います - 内蔵バーコード描画がロケール依存のフォーマットでバー矩形を書き出し、カンマ小数点のシステムでは無効なコンテンツストリームが生成される問題を修正しました
- Free Pascal ビルドも、コンテンツストリームのオペランド、テキスト抽出のメトリクス、JavaScript の数値を invariant フォーマットでパース・フォーマットするようになり、ロケール依存の変換にフォールバックする代わりに Delphi ビルドと揃いました
- 数値ライターが呼び出しごとにホストアプリケーションのグローバル書式設定の小数点区切りを書き換える問題を修正しました。プログラムの他の部分が自分の数値を整形する方法まで変わってしまい、複数スレッドが同時にドキュメントを生成している場合は安全ではありませんでした
Version 2.747.3
Fixed
- 圧縮されたページへの編集が消える問題を修正しました。矩形の黒塗り、ページ連結、複合透かし図形、注釈のフラット化は、まだ圧縮された状態のページコンテンツストリームにオペレータを追記していたため、黒塗りバー、連結されたページ、透かし図形、焼き込まれた注釈が保存ファイルに黙って欠落していました。今後は何かを追記する前にページコンテンツを展開します
- 空白で終わっていないページにコンテンツを追記したとき、既存の最後のオペレータと融合して
Q0.5のような読み解けないトークンが生成され、ビューアーがページ全体を拒否する恐れがあった問題を修正しました。今後は必要な位置に改行を挿入します
Version 2.747.2
Added
- Free Pascal の Win32 サポートを追加しました。Lazarus パッケージが専用のビルドエントリポイント経由で
i386-win32とx86_64-win64の両方に対応し、スモークテストスイートがアーキテクチャ引数を受け付け、32 ビットコンパイラと C シンボルのリンク問題も修正済みです。PDF の作成・読み込み・Flate 圧縮・AES 暗号化・CBZ ドキュメント処理は両ターゲットでカバーされています
Version 2.747.1
Fixed
- 内蔵バーコードデコーダーの回転マスクリトライが、回転マスクの未処理セルに前の状態のバイトを残し、そこから存在しないはずのインクを捏造して90度回転した Code 39 シンボルが読めなくなる問題を修正しました。回転バッファを明示的にゼロ埋めするようになったため、回転した Code 39 の写真やスキャンも回転リトライ経由でデコードできます
Version 2.747.0
Added
- WebP 画像インポートを追加しました。
AddImageFromFileが、RFC 9649 を実装する内蔵ロスレス(VP8L)デコーダー経由で.webpファイルを受け付けるようになりました。正規プレフィックスコード、空間メタプレフィックスコード、近傍ディスタンスマップ付き LZ77 後方参照、カラーキャッシュ、4 種類すべての逆変換(predictor、color、subtract-green、ピクセルバンドリング付き color indexing)を実装しており、ロッシー VP8 フレームは明確なメッセージとともに拒否されます
Version 2.746.0
Added
- 内蔵バーコードデコーダーが、撮影・スキャンされたページが来得る 8 通りすべての向きで QR シンボルを読み取れるようになりました。ファインダーパターンで欠けたコーナーを特定し、サンプリングしたモジュール行列をデコード前に期待されるレイアウトへ回転・ミラー反転させるため、90度回転やミラーされた撮影画像でも前処理なしで読み取れます
Version 2.745.0
Added
- 読み込んだ署名に対する eIDAS 有資格証明書の評価を追加しました。GetLoadedSignatureQCStatements が、署名者証明書の ETSI EN 319 412-5 QCStatements(QcCompliance、QcSSCD、QcType 値、QcLimitValue の通貨/金額/指数、PDS ロケーション)に加えて TS 119 495 の PSD2 支払人・受取人ロールを報告し、QcCompliance と QcSSCD が両方主張されている場合に有資格署名のヒューリスティックを上げます(QTSP としての信頼判断は呼び出し側に留まります)
Version 2.744.0
Added
- 読み込んだドキュメントに対する N-up 面付けを追加しました。ComposeLoadedPagesNUp が各ページをソース紙サイズのグリッド合成シート(2-up、4-up、6-up、最大 16x16)へ再配置して印刷用にそのまま使える出力を生成します。各ページの
/Rotateを配置マトリクスに吸収させ、合成フォームとページリソースを共有し、必要なら調整可能な余白付きの細線セル枠も描画します
Version 2.743.0
Added
- FlattenLoadedAnnotations が、アピアランスストリームを持たない注釈を黙ってスキップする代わりにベイクするようになりました。ウィジェットはまずフィールド値からフィールドアピアランスを生成し(ブラウザ印刷のフォームで典型的な
/NeedAppearancesのケース)、入力済みの値がページコンテンツに残ります /APを持たないマークアップ注釈は、自身のプロパティから合成されたアピアランスを描画します。/DAスタイリングと/Q揃えを適用した FreeText・Stamp テキスト、/C//ICの色と/BSの幅を持つ Square・Circle 図形、Line・Ink ストローク、そして/QuadPointsと/CA不透明度を尊重する Highlight / Underline / StrikeOut / Squiggly のクワッドマークアップが対象です- 隠し注釈(
/Fhidden フラグ)は、アピアランスを持たない場合は注釈のまま残されます。不可視のメモをベイクすると見えてしまうためです
Version 2.742.0
Fixed
- 2.738.0 以降で Free Pascal パッケージのビルドが失敗する問題を修正しました。LTV エビデンスとシード値のメンバー宣言が Delphi 専用の条件ブロック内に置かれていた一方で実装は無条件だったため、Free Pascal パッケージがコンパイルできなくなっていました。実装側に同じ条件を付けることで、パッケージが再びビルドできるようになりました
Added
- HTML インポートが完全な占有グリッドでテーブルを解決するようになりました。
rowspan/colspanセルが正しく列を確保し、後続の行は確保済みスロットを左に詰める代わりにスキップします - テーブル行の高さは、文字数推定の代わりにセル自身のフォントでセルテキストを折り返して計算されるようになりました。幅の狭い内容と広い内容が混在しても、あふれや過大なセルが発生しなくなります
- 列幅は
<col>の幅ヒントとセルごとの width 属性に従い、<thead>でマークアップされたヘッダー行(または先頭の全<th>行)は、テーブルがページ境界をまたぐと継続ページのそれぞれの先頭で繰り返されます - rowspan グループはページ境界をまたいでも分割されません。スパンセルで結ばれた行はまとめて次のページへ移動するため、スパンセルが切断されることはありません
Version 2.741.0
Fixed
- リンクしていないコーデックをドキュメントが必要としたとき、エラーを報告せずプロセスを終了させていた Free Pascal ビルドの問題を修正しました。TIFF を開く、JPEG 2000 や JBIG2 画像をデコードする、プログレッシブや縮小スケールの JPEG を読む、ICC カラートランスフォームを適用する、Zopfli 再圧縮を要求する、のいずれかがプロセスを即座に終了させていました
- これらの操作は、呼び出し側が既に想定している形で失敗するようになりました。該当機能を使うドキュメントはその機能をスキップして読み込まれ、アプリケーションごと落ちることはなくなります
Added
- 構造順テキスト抽出を追加しました。ExtractLoadedPageStructureText がドキュメント構造ツリーをオーサリング順(ISO 32000-1 14.8.4)でたどり、ページの marked-content ランを MCID ごとに連結します。政府様式やアクセシブルな出版物のようなタグ付きドキュメントは、幾何学的な推測ではなく信頼できる読み順で抽出され、ツリーが宣言しないグリフは幾何学的テールに回され、タグなしレポートに計上されます
Version 2.740.0
Fixed
- Free Pascal ビルドでカラーグリフの透明度が失われる問題を修正しました。埋め込みカラービットマップがアルファチャンネルを破棄する経路で読み込まれていたため、絵文字やカラーフォントのグリフがすべて不透明な矩形として描画されていました。ビットマップはピクセルごとのアルファを保持するようになりました
Fixed
- P-384 ECDH 鍵共有を有効化しました。CIOS Montgomery 乗算の最終条件減算が P リム + ボローと比較していて、P-384 / P-521 素数の全 1 の上位リムでゼロにラップして静かに誤ボローしていました。比較はオーバーフローする加算なしにボローを検出するようになり、P-384 の共有シークレットが OpenSSL のリファレンスベクトルとバイト単位で一致します
Version 2.739.0
Added
- Free Pascal ビルドでもドキュメントの暗号化・復号ができるようになりました。AES エントリポイントが未対応操作エラーの代わりにライブラリ独自の FIPS-197 実装で提供されるため、AES-128 / AES-256 保護ファイルの作成とオープンが可能です
- 大きなペイロード用のストリーミングコンテキストを含む AES-GCM の暗号化・復号が、Free Pascal ビルドで利用できます
- Free Pascal のスモークテストは、FIPS-197 の既知回答で暗号を検証し、PKCS#7 と GCM のラウンドトリップを試験し、パスワード拒否込みで AES-256 保護ドキュメントの作成と再読み込みを行います
Added
- HTML5 インポートエンジンに CSS2.1 の段落タイポグラフィを追加しました。text-align(旧 align 属性と center タグのマッピング込み)、PDF の Tc / word-space オペレータ経由の letter-spacing と word-spacing、字下げ用の text-indent、text-decoration の underline / line-through ルールに対応し、既存の Web やメール HTML の取り込みでも中央寄せ見出し・インデント・下線が保たれます
- 内蔵 QR デコーダーをバージョン 1 を超えて拡張しました。シンボルバージョンをファインダー幾何からのグリッド分割可能性で導出し(モジュールグリッドがきれいなバージョン 2〜40 をデコード)、バイトモードの長さ上限は ISO/IEC 18004 Table 7 のバージョン別容量に従い、上位シンボル向けのアラインメントパターンとバージョン情報ブロックを関数モジュールマップがカバーします
Version 2.738.0
Added
- Free Pascal ビルドでもドキュメントをネイティブに圧縮・展開できるようになりました。deflate コーデックは Free Pascal 同梱の Pascal zlib 実装の上に組み込みバックエンドで提供され、FlateDecode コンテンツが未対応操作エラーを報告しなくなります
- Free Pascal 環境でもデフォルト圧縮設定で圧縮ドキュメントの作成・再読み込みができ、クロスリファレンスストリーム、オブジェクトストリーム、埋め込みファイル、圧縮ページコンテンツはすべてそこでデコードされます
- バックエンドは zlib と raw deflate のラッパー、gzip ラッパーと自動ヘッダー検出をカバーするため、SVG インポートやマルチウィンドウサイズ展開のフォールバックは Delphi と同じ挙動になります
- Free Pascal のスモークテストは、ラッパーとチェックサムのセルフテストおよび圧縮ドキュメントのラウンドトリップでコーデックを検証するようになりました
Added
- AIA caIssuers によるチェーン補完を追加しました。HPDFFetchAIAIntermediates が、CMS 証明書セットのアクセスメソッド 1.3.6.1.5.5.7.48.2 エンドポイントを呼び出し側トランスポート経由でたどり(素の DER と PEM 本体のどちらもデコード)、FetchMissingIntermediates 検証オプションが取得した中間証明書をパス構築に投入するため、末端エンティティ証明書 1 枚だけのクラウド署名者の署名もパス構築失敗ではなく検証されます
- 1 呼び出しの LTV 有効化を追加しました。PopulatePAdESLTVEvidence が読み込んだすべての署名をたどり、中間証明書と OCSP/CRL エビデンスをオンラインで取得してドキュメントの DSS に書き込むため、手組みのエビデンス配列なしに新規 B-B 署名ドキュメントを B-LT へ更新できます
- 署名時のシード値強制を追加しました。CheckLoadedSignatureSeedValue が署名フィールドの /SV ディクショナリを読み、候補の SubFilter、DigestMethod、Reason、DocMDP プロファイルを ISO 32000-1 12.7.5.5 の force ビットセマンティクスで制約と照合するため、フォーム作成者の制約が署名の前に尊重されます
Version 2.737.0
Added
- VerifySavedOutput プロパティによる厳格な保存検証を追加しました。書き込み後、クロスリファレンス復元を無効化した新しいリーダーインスタンスがファイルを再読み込みするため、壊れたシリアライズは次の利用者で表面化するのではなく呼び出し箇所で即座に検出されます
- ReproducibleOutput を暗号化ドキュメントへ拡張しました。AES-CBC ストリームは静的な 14*(1+i) IV 規約を使い、鍵素材とソルトは決定論的に導出され、正規ドキュメント ID は揮発性の Info タイムスタンプを正規化するため、リグレッションパイプラインでバイト単位で同一の暗号化保存が得られます
Version 2.736.0
Added
- 新しい HPDFResample ユニットにより、高品質リサンプリングとモノクロディザリングを追加しました。ImageDownsampleKernel プロパティによる画像ダウンサンプリングでは、GDI のストレッチセマンティクスに代えて分離可能な Catmull-Rom バイキュービックと Lanczos3 カーネルを使用し、ページ合成の後には RenderOutputDither が Floyd-Steinberg 誤差拡散を適用するため、印刷プレビュー出力は写真のディテールを純白黒のまま保ちます
Version 2.735.2
Fixed
- Flate 展開ストリームが、ソースストリームからの再充填の際にバッファそのものの代わりにバッファ変数のアドレスを渡しており、読み込むたびにメモリを破壊してプロセスがクラッシュしうる問題を修正しました。圧縮ドキュメントの読み込み、inflate ストリームクラス、圧縮・展開ストリームヘルパーのすべてが影響を受けます
Version 2.735.1
Fixed
- データソースを持たない伸長可能な XFA フィールドが、フラット化時に 1 行に潰れる問題を修正しました。高さは現在、テンプレート自身が宣言するテキスト(まさにそのフィールドが表示するもの)から計測されます。空データにバインドされたフィールドは従来どおり空として計測されます
Version 2.735.0
Added
- Free Pascal ビルドがライブラリ全体をカバーするようになりました。以前はコアの作成・読み込みパスのみでしたが、現在はすべてのユニットが FPC 3.2.2 と Lazarus でコンパイルできます
- Free Pascal でも XPS、EPUB、CBZ コンテナをインポートできます。ZIP64 サイズ、stored と deflated エントリ、CRC 検証、Delphi パスと同じパスワードコールバックによる従来型暗号化エントリを扱う、組み込みの読み取り専用 ZIP リーダーによるものです
- XFA フォームのフラット化、FormCalc 計算エンジン、ウィジェットランタイム、ドキュメントビューアコンポーネント、Type 1 フォントハンドラ、HTML インポート、署名検証、ジョブランナーはいずれも Free Pascal ビルドでコンパイルできます。読み込んだドキュメントの XFA パケットのフラット化にはさらに deflate コーデックが必要ですが、これらのビルドはリンクしていません
Fixed
- PNG ヘルパーユニットの 64 ビットバイトスワップを修正しました。Win64 で誤った値を返しており、ユニット自体がビルドから外れたままになっていました
Added
- 描画時の未解決グリフ検出を追加しました。TrackUnresolvedGlyphs プロパティが、アクティブな Unicode フェースでは .notdef の tofu ボックスになるコードポイントをすべて記録し、検出ごとに OnUnresolvedGlyph イベントを発火します。未登録の純 GDI ドキュメントには影響しません
- レガシー kern テーブルのサポートを追加しました。RegisterUnicodeTTF が Apple/GDI 時代の kern テーブルを取り込み、フォントが GPOS kern ルックアップを持たない場合はカーニング出力が format-0 のバイナリペア検索にフォールバックするため、素の Arial のようなフォントで古典的なペアスペーシングが復活します
- 段落レイアウト内のラン単位フォントフォールバックを追加しました。WideTextOutBox が現在のフォントでマップできないコードポイントで折り返し行を分割し、各ランを解決済みのフォールバックフォントで描画するため、フォールバックチェーンを登録していれば Latin・絵文字・CJK の混在段落が tofu なしでレンダリングされます
Version 2.734.0
Added
- RFC 3161 タイムスタンプ要求の基盤を追加しました。HPDFRFC3161BuildRequest が新しい正の INTEGER nonce、オプションの policy OID、certReq 付きの DER TimeStampReq を生成し、HPDFRFC3161ParseResponse が PKIStatusInfo ヘッダーをデコードしてトークンを取り出します。TSA トランスポートコールバックは DER の勉強ではなく 3 行で書けるようになります
- ISO/TS 32002 開発者拡張宣言(THotPDF.EnsureISO32002Extensions)を追加しました。PDF 2.0 ドキュメントにおける EdDSA 署名アルゴリズムと追加の ECDSA 曲線をカバーし、32001 の SHA-3 宣言と同じく冪等でバージョンゲート付きです
Version 2.733.0
Added
- ポータブルな X25519 / X448 Montgomery-ladder 鍵共有と、CIOS Montgomery 乗算による P-256 / P-521 NIST 曲線 ECDH を追加しました。これにより鍵合意(KARI)公開鍵受信者の作成とアンラップが完全にプロセス内で完結します。RFC 7748 と OpenSSL 生成のリファレンスベクトルが、ラダーの挙動をリグレッションスイートに固定します
- HPDFUnwrapKeyAgreementRecipientEnvelope と、AddPubSecAgreementKeyMaterial および AddPubKeyAgreementRecipientWithSecret エントリポイントを追加しました。ECDH / X25519 / X448 受信者で暗号化されたドキュメントを、受信者の秘密スカラーで開き、外部 ECDH ツールなしで暗号化できます
Version 2.732.0
Changed
- 保存時にシリアライザ出力を 1 MiB のバッファードライトストリームへ流すようになりました。オブジェクトヘッダー、ディクショナリキー、xref 行のトークン単位の Write 呼び出しが、ファイルバックエンドの宛先では一括プッシュにまとめられます
- クロスリファレンスストリームのペイロードは FlateDecode の前に PNG Up 予測(/DecodeParms /Predictor 12)を適用し、/Index サブセクションでフリーリストの穴を潰すため、PDF 1.5 以降のすべてのドキュメントと疎なオブジェクト範囲で xref コンテナが縮みます
- CompressionLevel プロパティが、クロスリファレンスストリームとオブジェクトストリームコンテナの Flate の努力度も選択するようになり、clMaximum で保存時の構造ストリームが小さくなります
Fixed
- クロスリファレンスストリームの /W フィールド幅が、実際のオフセット範囲に適応するようになりました。従来の固定 [1 4 2] レイアウトは Cardinal キャストが 4 GiB を超えるオフセットを静かに切り捨て、出力を破損させていました
Version 2.731.0
Changed
- 内蔵テンプレートマッチング OCR を再構築しました。連結成分によるグリフ抽出、キャッシュ済みマルチフォントテンプレートに対するグレースケールカバレッジスコアリング、ローカルウィンドウフォールバック付きの Otsu 二値化、バイモーダルギャップによる単語分割、単語ごとのベースライン、ごま塩ノイズの除外、そして行レベルの高さクラスタリングと大文字小文字コンテキスト優先で大文字小文字混在 ASCII テキストを認識する 62 文字アルファベットへの拡張を行っています
Version 2.730.0
Added
- Free Pascal 3.2.2 と Lazarus 4.6 の Win64 サポートを追加しました。ランタイムパッケージ、再現可能ビルドスクリプト、互換レイヤー、非 GUI の作成・再読み込みスモークテストを含みます。ネイティブ静的コーデック統合は引き続き Delphi 専用で、Free Pascal ビルドでは明示的な未対応操作エラーを報告します
Version 2.729.0
Added
- Unicode 編集、フォーカスとヒットテスト、インスタンス対応バインディング、アトミックな検証と計算、境界付きリフロー、ソース XFA を保存する読み取り専用ロード済みドキュメントファクトリを備えた、ホスト非依存の動的 XFA ウィジェットランタイムを追加しました
Version 2.728.0
Fixed
- XFA の固有サイズ計測とテキスト継続を修正しました。明示的な空値と計算値を保持し、フィールドごと・繰り返し行ごとのバインディングコンテキストを使用し、breakAfter アクションを維持し、合成名の衝突を避け、キャッシュされたグローバル計測バジェットを強制します
Version 2.727.0
Changed
- XFA レイアウトが固有の最小・最大寸法を適用し、伸長可能フィールドをバインドされたテキストから計測し、対象の textEdit コンテンツを読み取り専用の継続フィールドと、テキスト・フラグメント・計測の各バジェット上限付きで、コンテンツ領域とページへアトミックに分割するようになりました
Version 2.726.0
Added
- 完全な NChannel のプロセス・スポット属性、ミキシングヒント、境界付き PDF 2.0 CxF/X-4 スペクトラルインクストリーム、スポットティント定義と外部出力インテントカラーラントテーブルのドキュメントレベル整合性チェックを追加しました
Version 2.725.0
Added
- スレッドセーフで決定論的な SIMD スキャンライン描画バックエンドを追加しました。対応する矩形ディスプレイリストをプリフライトし、中間ビットマップコピーなしでベクトルブロックとして最終ビットマップサーフェスへ書き込み、既存のソフトウェアフォールバックとテレメトリパイプラインを通じてリクエストごとの正確な拒否理由を返します
Version 2.724.0
Changed
- 境界付きネイティブ FormCalc 評価器を拡張しました。汎用 SOM ノードセット集計、スカラーとノードセットの混在引数、ネストした数値・文字列呼び出し、そして既存の操作・配列・深さ・時間・出力バジェットの下での決定論的な選択、文字列、三角関数、対数、変換の各関数に対応しています
Version 2.723.0
Changed
SubsetLoadedFontsが、埋め込み Type 1 の PFB、分割バイナリ・16 進 PFA プログラムを安全にサブセット化し、再帰的な TrueType 合成グリフの依存を保持し、色・ビットマップ・バリエーション・シェーピングの各テーブルを保ったまま COLR v0/v1 のアウトライン依存を閉じるようになりました
Version 2.722.0
Added
- 古典的な ZIP 暗号化 XPS、EPUB、CBZ エントリ向けに、エントリごとのリトライ上限、キャンセルチェック、メモリオンリーの資格情報扱い、利用不可・無効・未対応暗号化のフェイルクローズド拒否を含む境界付きパスワードコールバックを追加しました
Version 2.721.0
Changed
DownsampleLoadedImagesが、対応する 8 ビット Separation と DeviceN の画像サンプルをコンポーネント空間で直接リサイズし、元のカラースペースグラフ、ティント変換、カラーラント、/Decode範囲、オーバープリントセマンティクスを保存・再読み込みをまたいで保持するようになりました
Version 2.720.0
Added
- 高コントラスト大文字 ASCII の OCR、水平 Code 39、きれいに軸整列した QR バージョン 1 バイトモードシンボル向けの、境界付き内蔵認識オーバーロードを追加しました。呼び出し側エンジンなしで検索可能テキストレイヤーと読み込みページのバーコードデコードが可能になり、曖昧または未対応な入力はフェイルクローズドで失敗します
Version 2.719.0
Added
THPDFJpeg2000Decoder.LoadProgressiveFromByteArrayによる解像度・品質レイヤー単位の境界付き JPEG 2000 リファインメントと、TJpeg2000Bitmap.QualityLayersによるマルチレイヤーエンコードを追加しました。LRCP、RLCP、RPCL、PCRL、CPRL のすべてのプログレッション順序で最終ピクセルは同一です
Version 2.718.0
Changed
- 補助スカラーと標準的な縦書きデフォルトを含む、完全な UniJIS、UniGB、UniCNS、UniKS の UCS2 / UTF16 横書き・縦書き CMap を組み込みました。CJK テキスト抽出と幾何情報が、外部 Unicode マッピングファイルや半角 em の推測に依存しなくなります
Version 2.717.0
Added
- 明示的な linearized 共有オブジェクト依存範囲と、範囲到着時の再描画スケジューラを追加しました。すべてのオプション依存が到着する前にページを描画でき、新しく利用可能になったデータが結果を変える瞬間に正確に再描画します
Version 2.716.0
Added
- 対処可能な xref、trailer、catalog、ページツリー、ネームツリーのプリフライト検出事項に対する、境界付きオブジェクトグラフ修復を追加しました。検証済みトランザクションコミットと、危険または曖昧な入力に対する完全なロールバックを備えます
Version 2.715.0
Added
- PDF 2.0 暗号化ペイロードラッパーを追加しました。認証の前に可視のドキュメントコンテンツは読み取り可能なまま、埋め込みファイルの名前・説明・バイトは明示的なパスワードロック解除まで保護されます
Version 2.714.0
Changed
- 読み込みページの SVG エクスポートが、アキシアル・ラジアルグラデーション、Type 4〜Type 7 メッシュシェーディングの境界付き PNG 表現、デコード済みインライン画像を出力するようになりました。対応するスキップカウンターは増やしません
Version 2.713.0
Changed
- OpenType SVG カラーグリフが、円弧・ベクトルグラデーション・不透明度・幾何マスク・ローカル
#id再利用に、境界付き Form XObject パイプラインを使うようになりました。スクリプト、外部リソース、画像、未対応のアクティブコンテンツは引き続き拒否します
Version 2.712.0
Changed
ReplaceLoadedPageTextが、グリフソーススパンを通じてTJ文字列項目と配列にまたがる一致を置換するようになりました。カーニング数値、未一致の接頭辞・接尾辞、無関係なオペランド、元のコンテンツストリーム構造は保持されます
Version 2.711.0
Added
- 継承された Top / Private DICT 値、CharStrings、charset、Encoding、Local Subrs を伴う、CFF FontSet の
SyntheticBase解決を追加しました。決定論的なオーバーライドセマンティクスと、無効・循環・過度に深い継承の境界付き拒否を備えます
Version 2.710.0
Added
HPDFSelectFlatePredictorによる、決定論的で境界付きの Flate 予測子選択を追加しました。分散行サンプル、推定バイトコスト、設定可能な CPU ウェイト、明示的なバイト・行・作業バジェットを使用します
Version 2.709.0
Added
THPDFJBIG2Options.UseHuffmanEncodingによる、オプトインのネイティブ JBIG2 Huffman シンボルディクショナリ・テキストリージョン出力を追加しました。標準の DH、DW、BMSIZE、FS、DS、DT テーブル、raw 集合ビットマップ、シンボル ID テーブル、決定論的なネイティブルーティング、ピクセル一致のデコーダーラウンドトリップを含み、算術と MMR のデフォルトは維持されます
Version 2.708.0
Changed
- 登録フォントの世代ごとに、アラビア語と結合表示形式の逆 cmap マッピングをキャッシュするようになりました。
ApplyArabicGSUBRefinement、ApplyArabicGSUBContextualRefinement、汎用コンテキスト GSUB パスでの U+FB00..U+FDFF と U+FE70..U+FEFF の反復スキャンを置き換え、コードポイントの優先順位と整形結果は維持されます
Version 2.707.0
Added
THPDFPage.DrawAztecとスタンドアロンのTHPDFAztecユニットにより、Aztec 2D バーコードエンコーダ(ISO/IEC 24778)を追加しました。モードラッチ・シフト・バイナリシフトランを扱う動的計画法による高レベルエンコード、ビットスタッフィング、GF(16)〜GF(4096) の Reed-Solomon 誤り訂正、コンパクト 15x15〜27x27 またはフル 19x19〜143x143 シンボルの自動選択、固定シンボルサイズ向けの強制レイヤー制御を含みます- 縦書きページテキストの組み立てを追加しました。
THotPDF.ExtractLoadedPageTextと範囲・ストリーム集約 API が、WMode 1 のグリフをグリフ原点 X で列にクラスタリングし、列を右から左へ並べ、各列を上から下へたどります。縦書き CJK テキストがグリフごとの行に粉砕されなくなります
Fixed
- ピクセル寸法が小数になるページ(96 DPI の A4)で、並列バンドエクスポートが PNG バンド幅不一致で失敗する問題を修正しました。ラスタサイズがバンドライターと一貫して
Ceilで丸められるようになり、渡されるタイルは常にエンコーダの幅と一致します
Version 2.706.0
Added
THotPDF.SaveLoadedPageToPng、SaveLoadedPageToPngStream、SaveLoadedPagesToTiffBanded、SaveLoadedPagesToTiffStreamBandedによるストリーミングの読み込みページ PNG エクスポートと、バンド化マルチページ TIFF エクスポートを追加しました。バンドエンコーダ経由で圧縮画像データを 1 行ずつ書き込むため、非常に大きなページでも完全なフレームバッファが不要です。THPDFBandImageExportInfoがページ・バンド・行・ワーカー・メモリ・出力・タイミング・キャンセルのテレメトリを報告します
Version 2.705.0
Added
- 読み込み保存パスに PDF/A ファイナライズを追加しました。
THotPDF.SaveLoadedDocumentとSaveLoadedDocumentToStreamがGTS_PDFA1OutputIntent(ソースカタログから継承、または新規登録)を検証し、PDFACompliance設定時にはpdfaid:part/pdfaid:conformanceの XMP 識別を出力します。再保存時、既存の pdfaid パケットはバイト単位で保持されます - 読み込み側での縦書き(WMode 1)の消費を追加しました。CIDFont の
/W2と/DW2セルメトリックがテキスト抽出とページ描画を駆動し、水平の/Wアドバンスの代わりに v1x/v1y 位置指定ベクトルでテキスト空間の y 軸に沿って列をたどります
Version 2.704.0
Added
THotPDF.RenderLoadedPageTilesParallelとTHotPDF.RenderLoadedPageBandsParallelによる、並列タイル・バンド描画を追加しました。行優先の呼び出しスレッドコールバック、借用ビットマップ、協調キャンセル、呼び出し側制御のインフライトメモリ、ピークメモリのアドミッション、分離された描画コンテキスト間で共有される境界付き不変の Type 3 グリフ・ハーフトーンスクリーンキャッシュを備えます
Version 2.703.0
Added
THPDFCSCSignatureProvider.SignHashBatchによる、境界付き CSC マルチ署名ダイジェストバッチを追加しました。同一アルゴリズムの順序付きバッチに対して、ハッシュ固定の 1 つの SAD と 1 つのsignatures/signHash要求を使い、ローカルと資格情報のmultisign上限、厳格なレスポンスカーディナリティ、同期・非同期の結果順序、SHA-256 コンテンツアドレス式のべき等キー、完了バッチのリプレイを強制します
Version 2.702.0
Added
THotPDF.RenewPAdESLTATimestampを、呼び出し側提供の証明書・OCSP・CRL エビデンスで拡張しました。新しい RFC 3161 ドキュメントタイムスタンプの前に既存の DSS へマージし、それ以前のリビジョンをすべてバイト単位で保持し、連続する更新間で検証ストリームを正確に重複排除します
Version 2.701.0
Added
THotPDF.PreflightLoadedPAdESによる、条項アドレス可能な PAdES ベースライン・拡張プロファイルのプリフライトを追加しました。安定したルール ID、プロファイル、規範レベル、標準条項、PDF パス、オブジェクト番号、署名済みか現在リビジョンか、合否とともに適用可能な要件をすべて報告し、CMS カーディナリティ、署名者証明書の ESS 参照、署名ディクショナリ制約、バイトレンジカバレッジ、信頼時刻、DSS エビデンス、ドキュメントタイムスタンプカバレッジを検証します
Version 2.700.0
Added
- エンドツーエンドの ECDSA、Ed25519、Ed448 に対応した PFX / PKCS#12 秘密鍵の読み込みと CMS ドキュメント署名を追加しました。名前付き曲線 CNG ECDSA、オプションの OpenSSL 3 PureEdDSA、RFC 8410 鍵デコード、RFC 8419 ダイジェストとパラメータの規則、Ed448 向け 512 ビット出力の SHAKE256、自動鍵アルゴリズム選択、厳格な証明書と鍵のペアリングを含みます
Version 2.699.0
Added
HPDFEnumeratePFXIdentities、HPDFParsePFXByLocalKeyID、THPDFCMSSignOptions.PFXLocalKeyIDによる、決定論的な複数 ID の PFX / PKCS#12 資格情報選択を追加しました。厳格な単一値のlocalKeyIdとfriendlyNamebag 属性、公開鍵ペアリング、再帰的な safe コンテンツ bag、境界付きの曖昧性・循環診断、そして DER の正確な重複排除付きで一致する中間・ルート証明書チェーンの自動埋め込みを含みます
Version 2.698.0
Added
- プロセス内 PFX / PKCS#12 PBES2 復号を、AES-128-CBC と AES-192-CBC、PBKDF2 の HMAC-SHA-384 / HMAC-SHA-512 PRF まで拡張しました。暗号固有のオプション
keyLength検証、境界付きのソルト・反復・IV・パディングチェックを含み、AES-256-CBC と HMAC-SHA-1 / SHA-256 の互換性は維持されます
Version 2.697.0
Added
- 仕様に適合する XPS / OpenXPS Canvas の
FixedPage.NavigateUri継承を追加しました。子孫のPath、Glyphs、ネストした Canvas ビジュアルは、自分で上書きしない限りスコープされた URI を受け取ります。外部・メール・パッケージページ・パーセントデコード済みLinkTargetアクションが、変換、ネストしたクリップ、分離不透明度グループ、再利用ビジュアルの抑制、ネストした上書き後の復元、既存のリンク・URI・キャンセル・危険スキーム上限を通じて保持されます
Version 2.696.0
Added
- 境界付きネイティブ XPS / OpenXPS Canvas 透明度グループを追加しました。
Opacityと、ソリッド・グラデーション・画像のCanvas.OpacityMask値が、分離された DeviceRGB Form XObject を通じて重なる子ビジュアルを 1 回だけ合成します。畳み込まれた均一アルファ、共有の可変アルファソフトマスク、ネストしたグループ、変換されたクリップ、リソース転送、リンクの保持、そして不正・未対応・特異・過大コンテンツのフェイルクローズド拒否を備えます
Version 2.695.0
Added
- 省略幾何、ローカル・リモート
StaticResourceのPathGeometry値、直接プロパティ要素、構造化された直線・ベジエ・2 次・円弧フィギュア、幾何変換、空クリップ、PDFW*/W経由のネストしたEvenOdd・NonZeroクリッピングに対応する、境界付きネイティブ XPS / OpenXPSCanvas.Clip変換を追加しました。クリップされたナビゲーション境界、100,000 値の解析上限、不正・特異な変換のフェイルクローズド拒否を含みます
Version 2.694.0
Added
- 変換された
Path/Glyphsビジュアルに対する、境界付きネイティブ XPS / OpenXPS ナビゲーションを追加しました。HTTP・HTTPS・メールリンクを PDF URI 注釈として保持し、パッケージ相対ページとパーセントデコード済みLinkTargetフラグメントを、全ページが存在した後で前方・後方の PDF GoTo アクションとして解決します。メトリック対応のクリック境界、65,536 リンクと 8,192 文字の上限、VisualBrush キャプチャ抑制、キャンセル、危険スキーム診断のフェイルクローズドを備えます
Version 2.693.0
Added
- インラインまたはリソース由来の
Canvas・Path・Glyphsビジュアル、階層・リモートResourceDictionaryルックアップ、絶対Viewbox、絶対・相対Viewport、None・Tile・反射タイルモード、変換、不透明度、再利用 Form XObject、共有タイリングパターン、トークン対応のリソース転送、そして循環・不正入力・再帰・コンテンツ・キャッシュ・配置バジェットのフェイルクローズドに対応する、境界付きネイティブ XPS / OpenXPSVisualBrush変換を追加しました
Version 2.692.0
Added
- TrueType と OpenType プログラム、TTC メンバーフラグメント、GUID 難読化リソース、direct または cmap 由来グリフ ID、1 対多 Unicode クラスタ、明示的なアドバンスとオフセット、幅が正しい RTL 原点、共有フォントリソース、埋め込みとノーサブセット化の権限、オプションのグリフサブセット化、境界付き
ToUnicodeマップ、そして GDI フェース置換なしの償却線形 positioned-run 出力に対応する、ネイティブ XPS / OpenXPS パッケージフォント埋め込みを追加しました
Version 2.691.0
Added
- 厳格なクラスタコードユニット数とグリフ数、明示的な 1/100 em アドバンス、水平・垂直オフセット、奇数
BidiLevelの逆方向進行、ソリッド属性またはプロパティ要素フィル、不透明度、ネイティブ PDFTJバッチング、位置指定 Unicode クラスタフォールバック、テキスト抽出の保持、不正入力診断のフェイルクローズド、65,536 マッピング上限の償却線形バッファからなる、境界付き OpenXPSGlyphsIndicesレイアウトを追加しました
Version 2.690.0
Added
- ソリッド、可変アルファのマルチストップ線形・楕円放射グラデーション、通常・タイル・反射 PNG
ImageBrushマスクに対応する、OpenXPSPath.OpacityMaskサポートを追加しました。畳み込まれた均一アルファ、境界付きネイティブ DeviceGray 透明度グループ、共有シェーディングパターンと画像ソフトマスクストリーム、未対応コンテンツのフェイルクローズド処理、アルファ画像リソースバインディング付きの再利用可能なRegisterLuminositySoftMaskStateビルダーを通じて実現しています
Version 2.689.0
Added
- 1〜4 個の独立クリップ配置を持つネイティブ PDF タイリングパターン、共有画像と PNG ソフトマスクリソース、合成された fixed-page・パス・ブラシマトリクス、再利用可能な画像ベースパターン向けの境界付き
RegisterImageTilingPatternAPI を通じて、OpenXPSImageBrushのTile・FlipX・FlipY・FlipXYモードを追加しました
Version 2.688.0
Added
- 有限の 6 パラメータ属性マトリクスと
MatrixTransformプロパティ要素に対応する、OpenXPSImageBrush.Transformサポートを追加しました。ネイティブPathクリッピングの後、ビューポートクリッピングと画像配置の前に連結されるため、包含ベクトル幾何を変えずにブラシを回転・スケール・スキュー・平行移動できます。非標準のRelativeTransformと未解決のマトリクスリソースは、明示的な診断のままです
Version 2.687.0
Added
THPDFPage.ShowImageMatrixによるマトリクス制御の画像 XObject 配置と、パッケージ JPEG・PNG・TIFF・JPEG XRImageBrushフィル、絶対または境界相対のViewbox/Viewportマッピング、ネイティブパスと単一ビューポートクリッピング、画像とパスの不透明度、PNG ソフトマスクアルファ、DPI 認識の 96 DPI サイズ指定、共有デコード済みリソースキャッシュ、未対応タイリング・変換・色変換・画像ストロークのフェイルセーフ診断を含む拡張 XPS fixed-page インポートを追加しました
Version 2.686.0
Changed
- 再利用可能な境界付きマルチストップ放射グラデーション登録を追加し、ネイティブベクトル XPS パスインポートを、プロパティ要素の楕円
RadialGradientBrush値、Pad スプレッド、均一ストップアルファ、ブラシ不透明度、相対・絶対の center・origin・radius マッピング、ネイティブ Type 3 PDF シェーディング、パス幾何を変更しない座標復元で拡張しました
Version 2.685.0
Changed
- 順序付きネイティブベクトル XPS パスインポートを、クォート対応で境界付きのプロパティ要素解析、ソリッドおよびマルチストップ線形グラデーションブラシ、ネイティブ PDF シェーディングパターン、ブラシとストップのアルファ、デフォルトの境界相対または明示絶対グラデーション座標、範囲外ストップ補間、未対応変換・スプレッドモード・色補間・可変アルファ・縮退軸のフェイルセーフ診断で拡張しました
Version 2.684.0
Changed
- 境界付き省略幾何、フィルルール、ソリッド RGB / ARGB のフィルとストローク、パス不透明度、ストローク幅、6 パラメータ変換、未対応描画機能のフェイルセーフ診断を備えた、順序付きネイティブベクトル XPS パスインポートを追加しました
Version 2.683.0
Changed
- 実際に描画されるコンテンツに基づく PDF/X-6 検証を強化しました。定義時のシェーディングパターングラフィックスステート、非ストロークパターンの ExtGState セマンティクス、ソフトマスクサブタイプと背景のフェイルクローズドチェック、正確な Type 3 グリフメトリックと継承色ルール、厳格な結合ペイントアルファ分類、境界付き JPX 色推論、アピアランス対応の注釈合成を含みます
Version 2.682.0
Added
brainpoolP256r1、brainpoolP384r1、brainpoolP512r1ECDSA 署名の生成・検証サポートを追加しました。曲線固有の SHA-2 / SHA3 ダイジェストマトリクス、プロバイダー前の署名検証、厳格な名前付き曲線証明書パラメータ、パラメータなし ECDSA アルゴリズム識別子、正規 DER 署名値、Windows CNG 名前付き曲線インポート、明示・後続・不明・不一致パラメータの決定論的診断を含みます
Version 2.681.0
Changed
- 非プログレッシブビットマップ、direct-DC、Form、ディスプレイリストのコンテンツ実行を、
HPDFInterpretContentTokensDeviceとオプションの完全なIHPDFContentOperatorDevice拡張に統一しました。オペレータごとに 1 か所のキャンセルチェックポイント、オペランドスキャン不要のディスプレイリスト再生向けコンパイル時オペレータインデックスキャッシュ、公開OperatorCountメトリック、セマンティックデバイス互換性の保持、修正された"・v・yオペレータセマンティクス、誤フォールバック診断なしの正規EI終端処理を備えます
Version 2.680.0
Added
- 型付きオプション、詳細な修復レポート、共有検出事項プロベナンス、安全な PDF 2.0 ヘッダー・trailer ID・メタデータ・Catalog・表示正規化、名前空間対応 PDF/A 識別修復、設定可能な部分/完全準拠コミットポリシー、エラー退行検出、バイト完全なグラフと XMP ロールバック、そしてページコンテンツ・フォント・色・透明度・画像・グラフィックスオペレータ・抽出テキストを保持する厳格な境界を備えた、境界付きトランザクション
RepairPDFA4オーバーロードを追加しました
Version 2.679.0
Added
- 選択可能な ISO 15930-9:2020 または解決済みエラッタ 2025 ルール、実際の ICC ヘッダーとチャネルチェック、コンテンツ配列・Form XObject・タイリング/シェーディングパターン・画像・Type 3 グリフ・ソフトマスク・注釈アピアランスのリソース認識トラバーサル、オーバープリントモードと結合ペイント透明度診断、安定したルールプロベナンス、そして境界付きのデコードバイト・トークン・オブジェクト・問題・再帰・グラフィックスステート作業量を備えた、実際の描画コンテンツに基づく PDF/X-6 検証を追加しました
Version 2.678.0
Added
- キャッシュ済み ICC ヘッダーとコンポーネントチェック、ドキュメントとページの出力インテント整合性、コンテンツ配列・ネスト Form XObject・画像・画像マスク・シェーディング・注釈アピアランス全体の実際の描画デバイス色と透明度分析、継承グラフィックスステート、描画フォント埋め込み、CIDFont と CMap の関係、厳格な注釈フラグとアピアランス状態、UTF-8 XMP パケットと名前空間検証、論理ページツリー位置、条項対応の安定した診断、設定可能なデコードバイトとコンテンツトークンの上限によって、境界付き PDF/A-4 検証を深めました
Version 2.677.0
Added
- 境界付き PDF/UA-2 のドキュメント、人間可読文字列、オプショナルコンテンツ、注釈、AcroForm、構造デスティネーション、アウトライン、埋め込みファイル、ネストしたページラベル検証を完成させました。物理的な ParentTree 所有、スカラー構造子、アピアランスストリーム制限、名前空間 URI ベースの XMP プロパティ、Unicode 私用域検出、条項対応診断を含みます。構造化 HTML・XHTML・XML・JSON エクスポートは、言語、タイトル、ナビゲーション、ページラベル、安全なリンク、注釈、非機密フォームコントロール、marked-content 置換、アーティファクト、画像代替、幾何学的フォールバック、独立した上限、キャンセル、アトミックな公開を備えた、タグ優先のアクセシブル読み取りモデルを共通化しました
Version 2.676.0
Added
PlanProgressiveLinearizedPageRangesによる、linearized PDF の全ページを対象とする境界付き最小バイトレンジ計画を追加しました。raw と Flate のプライマリ・オーバーフローヒントデコード、相互運用可能なバイト整列の combined と Annex F 連続分割ヒントレイアウト、正確なブートストラップ・ページ・共有グループ・LF/CRLF 接頭の従来型またはストリーム xref 依存、正当な short-read 蓄積、フェイルクローズドなエンコード曖昧性解消付き 256 MiB デフォルトのプランナーメモリ上限、オーバーラップ認識マージ、厳格な構造クロスチェック、型付き上限と可用性診断、統一された[0, /E)先頭ページパスを含みます
Version 2.675.0
Added
ConfigureCryptFilterDefaultsとSetStreamCryptFilterによる、文字列・通常ストリーム・埋め込みファイルに対する独立した規格準拠の暗号フィルターポリシーを追加しました。パスワードと公開鍵の予約フィルター、/Identity、ライターとして正しいパスワード保護/EFFと先頭/Cryptパイプライン、フェイルクローズドな公開鍵ストリーム固有の受信者境界、大文字小文字を区別する外部名前付きフィルターの読み込みと検査、/CFM /None、V2 キー長報告、混合ポリシーの Direct File フォールバック、分割オブジェクトストリームコンテナとメンバー文字列ポリシー、ポリシーを保持する暗号化インクリメンタル更新を含みます
Version 2.674.0
Added
- パスワード対応
BeginIncrementalUpdateオーバーロードと割り当て済み受信者鍵素材による、資格情報を保持する Standard / 公開鍵の暗号化インクリメンタル更新を追加しました。ファイル鍵または FEK の安全な保持、文字列・ストリーム・メタデータ・Identity の独立した暗号フィルターポリシー、世代対応のレガシーオブジェクト鍵導出、正確な継承/Encrypt参照、バイト一致するソースリビジョン、元の user・owner・recipient アクセス、暗号化変更と未対応異種フィルターのフェイルクローズド拒否を含みます
Version 2.673.0
Security
- フルページ・リージョン・ネイティブ・外部デコードの前と、グローバルディクショナリ共有の前に、境界付き JBIG2 セグメントグラフ検証を追加しました。インデックス付きの重複・欠落参照チェック、反復的な循環と依存深さ検出、埋め込みストリームのページ関連付け強制、禁止セグメントの拒否、長参照と集約エッジのバジェット、シンボルディクショナリ割り当てガード、正確な失敗テレメトリを含みます
Version 2.672.0
Added
- 明示的なポリシー OID、既知または ETSI 未知ハッシュ、SPuri、SPUserNotice、SPDocSpecification 修飾子、境界付き Unicode とコレクション解析、ポリシードキュメントハッシュ、暗号作業前のプライマリ署名者 OID とハッシュのピン留め、専用の不一致ステータス、完全な JSON レポートを備えた、PAdES E-EPES
signature-policy-identifierの生成と厳格な検証を追加しました
Version 2.671.0
Added
HPDFCMSBuildMultiSignedDataとHPDFCMSMergeSignedDataによる、最大 256 の独立したプライマリSignerInfoレコードを持つ決定論的な RFC 5652 コンテナを追加しました。署名者の副作用の前のバッチ全体事前検証、署名者ごとの属性・アルゴリズム・証明書・プロバイダー、厳格な definite-length コンテナ検証、DER ソート済み重複排除セット、独立した検証結果、単一署名者バイト互換、副作用のない集約プレースホルダーサイズ計算を含みます
Version 2.670.0
Added
THPDFCMSSignOptions.SignerIdentifierによる、オプションの RFC 5652SubjectKeyIdentifier署名者識別を追加しました。コンパクトな IMPLICIT SID エンコード、自動SignerInfo/SignedDataバージョン選択、厳格な X.509 拡張抽出、プロバイダーとプレースホルダーサイズ計算のサポート、検証時のフェイルクローズドな SID・証明書・バージョン照合を含みます
Version 2.669.0
Security
SignedData.digestAlgorithms、SignerInfo、署名メカニズムパラメータ、RFC 6211CMSAlgorithmProtectionにまたがる、フェイルファストな CMS ダイジェストアルゴリズム整合性診断を追加しました。専用の検証ステータス、検証失敗コード、タイムスタンプ伝播、詳細な問題理由、JSON 出力を含みます
Version 2.668.0
Added
- デタッチド CMS、RSA PKCS#1 v1.5、RSA-PSS、ECDSA プロバイダー契約、RFC 3161 コンテンツ・署名タイムスタンプ、PAdES-LTA 更新、Seed Value ディクショナリ、ISO 32001 PDF 2.0 開発者拡張宣言にわたる、SHA3-256・SHA3-384・SHA3-512 の生成と検証を追加しました。対応する PDF MAC ポリシーと共有される、境界付きワンパスバイトレンジハッシュを含みます
Version 2.667.0
Added
THotPDF.ValidatePDFMACChainを追加しました。古い→新しい順のインクリメンタルリビジョン検証、累積的な classic / xref-stream インデックス化、正確なリビジョンと xref の失敗位置、過去 MAC 置換の検出、安定したKDFSaltの強制、ダイジェスト強度ダウングレードの拒否、認証済み/P//Permsチェック、プリフライトレポート、一時 PDF コピーなしの境界付きリビジョン解析を備えます
Version 2.666.0
Added
THotPDF.SignPDFWithPFXAndAttachedPDFMACと署名添付検証を追加しました。直接アクティブ trailer のAuthCode、間接SigObjRef、完全な署名リビジョンカバレッジ、生署名値ダイジェストバインディング、SHA-2 / SHA-3 PDF MAC ポリシー、ワンパス署名と MAC 範囲ハッシュ、プリフライトレポート、アトミックな出力置換を備えます
Version 2.665.0
Fixed
THotPDF.RegisterNChannelColorSpaceを修正し、/Subtype /NChannelとプロセスコンポーネントメタデータ付きの、ISO 32000-2 の 5 要素DeviceN形式を出力するようにしました。最小 PDF バージョンを 1.6 に引き上げ、ルミノシティソフトマスクが代替スペース経由で NChannel ペイントを解決します。レガシーな/NChannelファミリートークンとの読み込み互換性は維持されます
Version 2.664.0
Added
- Hue、Saturation、Color、Luminosity の整数ホットパス実装により PDF ブレンドモード描画を完成させ、全不透明の高速パスを修正しました。アクティブなすべての分離・非分離ブレンドモードが、背景に対して合成されます
Version 2.663.0
Security
- 暗号化された safe コンテンツを公開する前に PKCS#12 コンテナを認証するようにしました。境界付き PKCS#12 KDF 反復、SHA-1 / SHA-256 HMAC、定数時間ダイジェスト比較、フェイルクローズドな誤パスワード・改ざん処理による、オプションの外側
MacData検証を行います
Version 2.662.0
Added
- HotPDFCLI に 3 つのコマンドを追加しました。
renderは読み込みページビットマップパイプライン経由で選択ページを<prefix>-page<N>.pngにラスター化し(--pages範囲、--dpi10..2400、デフォルト 150)、tablesはExportLoadedTypedTables経由で型付きテーブルを CSV / JSON に抽出し(--json、-oはファイルまたはコンソール)、compareはHPDFDocCompareDocuments経由で 2 ドキュメントの JSON 比較レポートを出力します(--mode0..5 はページ数、ページテキスト、オブジェクト数、描画画像、フル、構造をカバー)
Fixed
- Win64 ICC 変換パイプラインが、8 ビットバッチ変換(
TransformBytes)で全ゼロの出力を返す問題を修正しました。Win64 lcms2 オブジェクト内の最適化された 1D-LUT 高速パスがゼロを返す一方で汎用リサンプリングパイプラインは正しいため、8 ビット変換は Win64 に限ってcmsFLAGS_NOOPTIMIZE付きでビルドするようになりました。16 ビット単色パスとすべての Win32 変換は最適化高速パスを維持します(バッチ sRGB プライマリは両プラットフォームでラウンドトリップするようになりました)
Version 2.661.0
Added
- 既存の 4 戦略 zlib ベースラインに加えて、真に予算付きの Zopfli 高圧縮率 Flate 圧縮を追加しました。厳格な無増大選択、入力・反復・ブロック・出力・経過時間の上限、詳細なストリームおよび並列画像テレメトリ、決定論的な固定コーパス節約ゲートを備えます
Version 2.660.0
Added
- 決定論的な XML 機械可読プリフライトレポートと、特徴抽出およびカスタム検証ルール向けの ABI バージョン付きトラステッドプラグインを追加しました。安定した順序、ポリシーバンドル統合、キャンセル伝播、フェイルクローズドな機能チェック、有限のプラグイン・検出事項・特徴・文字列・出力・経過時間バジェットを備えます
Version 2.659.0
Added
- 境界付き XFA FormCalc を条件ロジック、反復数値集計、検証済み動的インスタンスコールバックで拡張し、デフォルトオフのサンドボックス化 QuickJS フォームスクリプトを追加しました。完全な制御フロー、ネイティブ型付き配列、分離されたデータアクセス、有限の命令・時間・メモリ・スタック・値・インスタンス操作バジェット、実行テレメトリを備えます
Version 2.658.0
Added
- 完全な XDP ストリームと順序付きパケット配列向けの、境界付き編集可能 XFA パケット DOM を追加しました。ローカル名パスクエリ、パケットとノードの変更、正確な未変更バイト保存、パケット単位の選択的書き換え、決定論的な名前空間と属性出力、安全な CDATA 分割、エンティティエスケープ、有限の入力・出力・パケット・ノード・深さ・属性・テキスト・クエリバジェットを備えます
Version 2.657.0
Added
- 既存の CMS プロバイダーパイプラインによる CSC API v2 リモート署名を追加しました。アプリケーション所有のトランスポート、OAuth トークン更新、境界付き資格情報チェーン探索、明示的な認可と SAD 処理、同期・非同期ダイジェスト署名、RSA-PSS パラメータ、ポーリング、RFC 3161 タイムスタンプ、キャンセル、安定したべき等キー、有限の完了操作キャッシュを備えます
Version 2.656.0
Added
- コンテンツスコア付け可能な XPS、EPUB、CBZ ドキュメントハンドラを追加しました。置き換え可能なスレッドセーフ登録、1 回の検証済みアーカイブスキャン、fixed-page・スパイン・自然画像の順序、不変の PDF 変換キャッシュ、共有アーカイブ・リソース・リフロー・ページ・ピクセル・DPI・出力・キャンセルの各バジェット、ロールバック安全な PDF 公開を備えます
Version 2.655.0
Added
- 正規列、同ページ断片と連続ページのマージ、結合セルスパン、繰り返しヘッダー、ページ幾何、信頼度、プロベナンス、ロケール制御の整数・数値・ブーリアン・日付・日時・通貨・パーセント推論を備えた、境界付き型付きテーブル抽出とアトミックな CSV / JSON エクスポートを追加しました
Version 2.654.0
Added
- 1 つの読み取り順モデルで、ブロック、スタイル付きスパン、検出テーブル、座標、ソース順、オプションの境界付き PNG 画像、Unicode 安全なエスケープ、キャンセル、有限リソースバジェットを備えた、読み込みページから HTML・XHTML・XML・JSON へのアトミックな構造化エクスポートを追加しました
Version 2.653.0
Added
- 検索可能なベクター保持、画像と複雑リソースのロスレスなカラーマネージドラスター変換、回転安全な出力、明示的な描画忠実度とリソースバジェット、スポットプレートに対する保持・処理変換・拒否ポリシーを備えた、読み込みページの DeviceGray・DeviceRGB・DeviceCMYK へのアトミックな色書き換えを追加しました
Version 2.652.0
Added
- レビュー優先の読み込みページ墨消し検出を追加しました。チェックサム認識の PII パターン、プラガブルなエンティティ・顔検出器、confidence スコア付きのページ空間 findings、境界付き作業テレメトリ、必須のレビュアー識別子、アトミックな承認注釈ステージング、独立した明示的な burn-in 境界を備えます
Version 2.651.0
Added
- 境界付きの読み込みページ・リージョンバーコードデコードを追加しました。プラガブルなエンジン、段階的な低解像度レンダリング、フォールバックの 4 分の 1 回転スキャン、検証済みテキストと raw ペイロード、PDF 空間の境界と向き、confidence フィルタリング、重複排除、キャンセル、リソーステレメトリを備えます
Version 2.650.0
Added
- 境界付きキャンセル可能な検索可能 OCR テキストレイヤーを追加しました。プラガブルな認識エンジン、confidence と幾何の検証、回転整合の不可視 Unicode テキスト、optional-content グルーピング、リソーステレメトリ、アトミックなマルチページ公開を備えます
Version 2.649.0
Added
- バージョン付き JSON による完全なオブジェクトグラフのラウンドトリップを追加しました。ストリーミングのスナップショット・増分エクスポート、raw またはデコード済みの埋め込み・アトミック sidecar ペイロード、境界付きスキーマ互換インポート、構造とストリーム長の検証、トランザクション的公開を備えます
Version 2.648.0
Added
- 手編集された QDF 診断文書向けの境界付き修復を追加しました。オブジェクトとストリームのバイトを保持し、direct・indirect・欠落・古いストリーム長を修正し、classic クロスリファレンスオフセットと trailer を再構築し、安全でない構造を拒否し、出力を通常のローダーで検証します
Version 2.647.0
Added
- スレッドセーフなカスタムストリームフィルターレジストリを追加しました。境界付き push・pull 契約、共有デコードバジェット、協調キャンセル、明示的なシーク要件、分離されたカスタム失敗、実行テレメトリを備えます
Version 2.646.0
Added
- 境界付き content-operator visitor とイベント API を追加しました。読み取り専用オペランドビュー、決定論的な状態コールバック、inspect・measure・replace・delete・stop・reject の各アクション、協調キャンセル、検証済み出力、アトミックな読み込みページ更新を備えます
Version 2.645.0
Added
- プラガブルな読み込みページレンダーバックエンド契約を追加しました。コンパイル済みディスプレイリストアクセス、ネイティブ GDI 実装、スレッドセーフな並列ディスパッチ、決定論的なフォールバックポリシー、キャッシュ無効化、実行テレメトリを備えます
Version 2.644.0
Added
- 境界付きレイアウト重なり検出を追加しました。要素パス、オプトインのソースマッピング、ネイティブベクターの overflow・重なりオーバーレイ、ライブ診断コールバック、作業統計を備えます
Version 2.643.0
Added
- ネイティブの境界付きベクターチャートを追加しました。ライン・バー・エリア・円・散布図シリーズ、自動・手動の軸、テーマ、凡例、ラベル、PDF/UA Figure 代替、レンダリング統計を備えます
Version 2.642.0
Added
- 境界付き GUI スレッド RichEdit・RTF ページネーションを追加しました。ベクター EMF 出力、画像、オプトインの対応 OLE プレゼンテーション、キャンセル、ストリーム位置の保持、そして明示的な入力・文字・ページ・出力バジェットを備えます
Version 2.641.0
Added
- 境界付き SVG 2 インポートを、再利用可能な PDF Form XObject として追加しました。ネイティブジオメトリと円弧、CSS カスケード、ベクターグラデーション、クリップとマスク対応、Base 14 テキスト、不透明度リソース、配置認識のリンク注釈、インポート統計を含みます
Version 2.640.0
Added
- バージョン付き HTML5 paged-media インポートプロファイルを追加しました。寛容な DOM パース、印刷 CSS カスケード、ページ分割されたブロック・テーブルレイアウト、オプションの AcroForm コントロール、境界付きコールバック駆動リソース、操作ごとの統計を備えます
Version 2.639.0
Changed
- 大きなローカルファイルのマッピングが、設定されたマップドバイト上限を、大きなシーケンシャルウィンドウと最大 16 個の小さな MRU ランダムアクセスウィンドウの間で適応させるようになりました。明示的な固定ジオメトリオプションを保持し、アクティブなジオメトリ、遷移、アクセスパターン数、ピークマップドバイトを報告します
Version 2.638.0
Added
- 境界付きページ横断 JBIG2 シンボル学習を追加しました。外部・ネイティブ両バックエンド、1 つの共有グローバル辞書、完全重複ページの再利用、直接の PDF 画像バッチ挿入、バックエンド・サイズのテレメトリを備え、100 ページのリグレッションコーパスで 78.8% の圧縮削減を測定しています
Version 2.637.0
Changed
- 並列読み込みページレンダリングが、プロセス全体のメモリバジェットから要求ワーカー数を減らすようになりました。要求されたすべてのページを予約し、順序付き出力の予約をコールバック配信まで保持し、キャンセルや失敗時にバジェット待ちを起こします。並行性・予約・admission・遅延・待機のテレメトリも報告します
Version 2.636.0
Changed
- 読み込みページのプリフェッチが、キャッシュロックの外でコンパイルとレンダリングを行うようになりました。トークン化と再生を通じた協調キャンセル、フォアグラウンドのページレンダリングへの譲り、進行状況・失敗・preemption・キャンセルレイテンシのテレメトリ公開を備えます
Version 2.635.0
Added
- 順序付きストリーミング並列ページレンダリングを追加しました。呼び出しスレッドでのコールバック、境界付き completed-bitmap キュー、プロデューサー側の backpressure、協調キャンセル、借り受けビットマップのライフタイムを備え、キュー・バイト・待機・完了・配信のテレメトリも提供します
Version 2.634.0
Added
- 2 段階の並列読み込みページパイプラインを追加しました。レンダーキャッシュロックの外でディスプレイリストをコンパイルし、全ページセットのコンパイル完了前に再生を開始し、境界付きワーカーを動的にバランスさせ、入力順を保持し、content-token のアロケーションを削減します。ステージ・キャッシュ・完了・レイテンシのテレメトリも公開します
Version 2.633.0
Added
- 不変の参照カウント式デコード済みビットマップハンドルを追加しました。コピーなしのキャッシュヒット、直接のスレッドセーフレンダラー描画、必要時の分離されたミュータブルコピー、退避に依存しないライフタイム、累積のハンドル・コピーテレメトリを備えます
Version 2.632.0
Changed
- QuickJS の実行が、Win32 と Win64 の両方で静的オブジェクトと ABI ニュートラルなブリッジ DLL の両経路で動くようになりました。Unicode セーフな値、決定論的なステータス報告、設定可能なメモリ・スタック・スクリプト・時間・割り込み制限、安全な DLL ディスカバリー、拒否されたスクリプト後のリカバリー、再現可能なクロスプラットフォームランタイムビルドを備えます
Version 2.631.0
Changed
- Factur-X と ZUGFeRD のビジネスルール検証が、レビュー済み XPath 2 Schematron サーフェス全体を実行するようになりました。外部コードデータベース、順次バインディング、量化子、FLWOR の sum、安定したフォールバックルール識別子、安全な境界付き XML パース、明示的な評価エラー検出、サイレントスキップゼロ、フェイルクローズドな結合検証を備えます
Version 2.630.0
Added
- 組み込み TrueType 可変フォント instancing を追加しました。マップされた軸、共有・プライベート
gvarタプル、IUP 補間、simple・composite のアウトライン更新、ファントムポイントメトリック、HVAR・VVAR・MVARの baking、コンパクトな静的グリフ再構築、チェックサム正しい出力、コールバックなしの Unicode フォント登録を含みます
Version 2.629.0
Added
- 副作用なしの CMS プレースホルダー推定を追加しました。明示・プロバイダー・RSA 証明書の各署名サイズからの推定、正確な静的コンテナ shaping、保守的な動的ペイロード予約、署名前の再構築、capability ゲート付きプロバイダーリトライ、厳格な外部署名者 1 回呼び出し保証、境界付きサイジング、詳細な試行診断を含みます
Version 2.628.0
Added
- 読み込んだ PDF に埋め込み済みフォントの到達可能性ベースのサブセット化を追加しました。ページコンテンツ、ネストした Form XObject、注釈アピアランス状態、共有フォントプログラム、TrueType と CFF フォーマット、エンコードサイズの選択、安定した CID と ToUnicode マッピング、詳細な結果、署名存在時のデフォルト拒否を含みます
Version 2.627.0
Added
- 宣言的レイアウトツリー向けの自動 PDF/UA 構造生成を追加しました。見出し、リスト、テーブル、図、言語と代替テキストのメタデータ、ページネーションアーティファクト、継続安全な marked-content 参照、読み順の保持、セマンティック検証、構造統計を含みます
Version 2.626.0
Added
- 宣言的ドキュメント DOM を追加しました。継承可能なスタイル、再利用可能なコンポーネントファクトリー、テキスト、スペーサー、スタック、コンテナ、セクション、繰り返しヘッダーとフッター、繰り返しヘッダー行付きの重み付きテーブル、境界付き継続深度、ページネーション統計、非コピーのテキスト・テーブルフラグメント、線形のトップレベル走査、即時ページフラッシュ、そして対応する Delphi と C++Builder サーフェスを備えます
Version 2.625.0
Added
- 繰り返し実行可能な Win32・Win64 統計パフォーマンスゲートを追加しました。ロード、セーブ、レンダリング、テキスト抽出を分離し、ウォームアップと 30 個の raw サンプルを p50、p95、サンプル分散、RSS、プロセス I/O、環境、決定論的なフィクスチャ識別子とともに記録します。その後安定した JSON しきい値で評価し、リグレッション時は失敗の終了コードを返します
Version 2.624.0
Changed
- 単純な辞書と配列のパースを、不変のソーススパン、直接数値変換、1 パスのネストコンテナ、インデックス付き辞書挿入を軸に再構築し、公開の materialization テレメトリを備えました。30,000 ペアの Win32 フィクスチャで、5 パスのアロケーションバイトを 64.7% 削減し、経過時間を 3,656 ms から 46 ms へ短縮しています
Version 2.623.0
Added
- 設定可能なパーサー制限を追加しました。個々のトークンバイト、合計トークン、配列・辞書エントリー、不正トークンを対象に、厳格な untrusted-input プリセット、型付き制限例外、ロードごとのテレメトリを伴います。リグレッションゲートは 2 MiB のトークンと 100 万トークンのコンテナを 250 ms 未満・プロセスピーク 37 MiB 未満で拒否します
Version 2.622.0
Added
- 明示的な読み込みページオブジェクトグラフ解放とテレメトリ API を追加しました。クリーンなページ所有ルートとレンダーキャッシュを破棄しつつ、間接共有リソースとリロードメタデータは保持します。100,000 ページの逐次処理でもピークは安定した 69.3 MiB にとどまり、解放された通常・圧縮ページは元のオブジェクト同一性を保ったまま再 materialize されます
Version 2.621.0
Changed
- デコード済み object-stream コンテナが、設定可能なバイト上限付き LRU キャッシュを使うようになりました。コンテナごとの即時退避、退避後のソースバックリロード、ゼロ保持モードを備え、ピークバイト・退避・リロードのテレメトリも報告します
Version 2.620.0
Changed
- 大きな通常ページツリーが、コンパクトなプレースホルダーとして開くようになりました。ランダムページは
/Countガイド付き走査と間接オブジェクトハッシュインデックスで解決し、解決済みページをキャッシュし、materialization のテレメトリと制御を公開し、構造変更やセーブ操作の前に自動展開します
Version 2.619.0
Changed
- 読み込まれた AcroForm フィールド、修飾名、ウィジェット、注釈、ページが、遅延評価の双方向リレーションシップキャッシュを共有するようになりました。逆注釈ルックアップ、ウィジェットごとのページルックアップ、活動テレメトリ、raw なオブジェクトグラフ編集向けの明示的無効化、変更安全な自動保守を備えます
Version 2.618.0
Changed
- ページオブジェクトのルックアップが、オブジェクト番号と解決済みページポインター向けの遅延再構築・変更認識の逆インデックスを使うようになりました。ページコピー、アウトライン、名前付きデスティネーション、アクション、フォーム、アクセシビリティ、ページツリー照合での繰り返しページテーブル走査を置き換え、有効性と活動のテレメトリも公開します
Version 2.617.0
Changed
- レンダリング文書比較が、呼び出し側指定の DPI、RGB または輝度の色許容差、変更ピクセル比と SSIM 風の類似度ゲート、決定論的な連結変更リージョン、オプションの PNG 差分オーバーレイに対応しました。明示的なレンダリング診断付きの、フェイルクローズドなページ・集約ピクセルバジェットも備えます
Version 2.616.0
Changed
- 文書比較が、決定論的な catalog ベースのパスで間接オブジェクトグラフを辿るようになりました。明示的なリソース制限内で値とストリームをハッシュし、挿入・削除・移動・変更を分類する前にページを整列させ、移動オブジェクトを追加・削除と区別します。バジェット制限のかかった結果を同一と扱う代わりに、不完全な比較として報告します
Version 2.615.0
Changed
- 読み込み画像のデコードが、16 個のキャッシュメタデータシャードとキーごとの厳密な singleflight 協調を使うようになりました。独立した高コストのデコードは並行実行しつつ、重複リクエストには 1 つのオーナーデコードを保持し、設定されたバイト・エントリーバジェットを全シャードで強制します。キャッシュ済みデコードのエントリーポイントと並行性テレメトリも公開します。4 つの独立した 12,000 ピクセル JPEG リクエストは 4 つの Win64 ワーカーで 3.72 倍にスケールし、同一キーの 8 リクエストは 1 回だけデコードします
Version 2.614.0
Changed
- 低解像度のグレースケール・RGB JPEG レンダリングが、境界付き 1/2・1/4・1/8 の逆 DCT スケールを選択するようになりました。スケール済みスキャンラインを固定小数点リサンプラーで正確なターゲットビットマップへ直接流し込み、デコードバジェット、キャンセル、codec ワーカー分離を保持します。ソース・スケール済み・ターゲット・スキャンライン・メモリの各テレメトリは
GetLastJPEGReducedDecodeInfoで公開します。12,000 × 12,000 から 300 × 300 へのリグレッションフィクスチャは、432 MB のソースラスターを割り当てずにフルデコードの 24.05 倍で走ります
Version 2.613.0
Changed
- 読み込みページの
/Contents配列が、遅延評価のシーク可能な連結ストリームを公開するようになりました。未フィルターセグメントはソースバックのストレージに保持し、フィルター済みセグメントは同時に最大 1 個だけデコードし、トークンとバイトの蓄積は償却線形で行い、編集時は新しいセグメントの追記で元のストリームを保存します。1 GiB・10,000 セグメントのシーケンスでも追加ワーキングメモリは 64 MiB 未満です
Version 2.612.0
Changed
- 増分アップデートが、完全なソースバイトを保持する代わりにソースファイルを書き込みロックしたファイルバックのまま扱うようになりました。変更・新規・削除オブジェクトだけを疎な xref サブセクションで訪れて出力し、元のプレフィックスを新しいターゲットへストリーミングし、同一ターゲットへのセーブではロールバック付きで直接追記します。4 GiB の 1 オブジェクトリビジョンでも追加ワーキングメモリは 128 MiB 以内に収まります
Version 2.611.0
Added
- 境界付きドキュメントスコープのロード済みフォントデコーダーキャッシュを追加しました。32 MiB と 128 エントリーの LRU 上限、ページ・テキスト抽出・SVG エクスポート・テキスト置換をまたぐ singleflight パース再利用、
GetLoadedFontDecoderからの独立したディープコピー結果、設定可能なメモリバジェットとテレメトリ API、そしてグラフ・ページ・リロード・JSON Patch・CMap 設定の自動無効化を備えます。共有間接フォントの反復使用は、保持されている間はエンコーディング、幅、ToUnicode、CIDToGIDMap、子孫マッピングを 1 回だけパースするようになります