ネイティブ FreeText デフォルト外観

ネイティブ FreeText フォールバックは、境界付きデフォルト外観状態を生成テキスト、レイアウト、自動フィット、デコレーションに適用します

提供された通常外観は、FreeText デフォルト外観とリッチテキストからの生成より優先します

デフォルト外観オペレータ

オペレータフォールバック動作
Tf元のフォントリソースとテキストサイズを選択します。サイズ 0 は境界付き自動フィットを要求します
g rg kテキストの塗りつぶし色をグレー、RGB または CMYK で初期化します
Tc Tw Tz文字間隔、単語間隔、水平テキストスケールを描画およびレイアウト計測に適用します
Ts TLテキストの盛り上げと明示的なベースライン分離を適用します。0 または負の行送りも含みます
Tm最大 1 つの行列を受け入れます。その線形部分は生成テキストを変換し、配置は注釈レイアウトが決定します
Trグリフ描画モードとテキストクリッピングモードを 0 から 7 で選択します
G RG K w J j M dテキストと生成デコレーションのために、ストローク色、width、cap、join、miter、dash 状態を初期化します

行列の並進オペランドは検証されますが、注釈矩形内の FreeText 配置を置き換えることはありません

水平スケールは 0 または負にもできます。盛り上げ、間隔、線形行列は、変換されたグリフ、アドバンス、デコレーションのジオメトリに関与します

これは境界付きデフォルト外観プロファイルであり、一般的な PDF コンテンツストリームインタプリタではありません。未対応オペレータ、無効なオペランド数、不正な値、テキスト行列の繰り返しはレンダリングエラーになります

ストローク色の成分は 0 から 1 の範囲、cap と join の値は 0 から 2 の整数、width は非負、miter リミットは 1 以上でなければなりません

dash 配列は最大 256 個の非負の有限値を含められ、空でない配列は正の値を含まなければなりません。空の配列は実線を選択し、奇数長の配列は繰り返し、フェーズは非負でなければなりません

レイアウト、折り返し、配置

FreeText の整列は、左寄せ、中央寄せ、右寄せの配置に可視アドバンスを使用します。生成ストリームが断片を保持する限り、エンコードされた末尾スペースとそのソースマッピングは残ります

単語境界での折り返しと強制段落改行は別個に扱われます。ノーブレークスペースは通常の ASCII ソフトセパレータにはなりません

元の raw フォントパスは、境界付きのスペースおよびハイフン折り返し規則を保持します。この受け入れ集合は、Unicode の行折り返し、双方向、複雑なシェーピングのすべてのケースを確立するものではありません

注釈の物理矩形、ルート Form の境界、内側クリップは固定のままです。一時的な子 Form の境界は、祖先と配置のチェーン全体を考慮します

グリフ描画とテキストクリッピング

Trグリフ描画クリップへの寄与
0塗りつぶしなし
1ストロークなし
2塗りつぶしとストロークなし
3グリフを描画しないなし
4塗りつぶしグリフ輪郭
5ストロークグリフ輪郭
6塗りつぶしとストロークグリフ輪郭
7グリフを描画しないグリフ輪郭

モード 4 から 7 は、1 つのテキストオブジェクト内で生成 run にわたってグリフ輪郭を蓄積します。蓄積されたテキストクリップは、そのテキストオブジェクトの後に、後続の生成下線および取り消し線デコレーションに適用されます

クリップは拡張ストロークシルエットではなくグリフ輪郭を使用します。描画状態は run ごとに固有のまま、囲む graphics state スコープがクリップの生存期間を制限します

初期 DA ストローク状態はテキストスコープだけでなくルートデコレーションスコープにも適用されます。run ごとの上書きと graphics state の save/restore はその意味を保持します

4 つの正のクリッピングケースは、手書きの 2 run 外観、正のクリップ済みデコレーション、グリフ結合の外側の白サンプルを用いた独立した受け入れゲートです

そのゲートは、バックエンドのテキストクリッピングを試すために明示外観の矩形塗りつぶしウィットネスも使用します。このウィットネスは、外観欠落時の生成が矩形塗りつぶしを出力すると主張するものではありません

Tr4 から Tr7 の独立した肯定的なリーダー検証は、公式 MuPDF 1.28.5 と Poppler で 4 つの有限 2 run ケースに合格しました。両方のグリフ内部、クリップ済みデコレーション、グリフ結合の外側の白サンプルを含みます

クリップのみの別試験リビジョンは、変更されていないページ空間ウィットネス点から完全なピクセルセルを選ぶために Scale4 を使用します。元の色しきい値を保持し、normal45 のレンダリングは Scale1 のままです

MuPDF 1.28.2 には、色変化が同一テキストオブジェクト内の後続 run より先に 1 つの run をフラッシュするときのクリッピング境界互換性問題があります。先行 run は蓄積クリップ境界から除外され得ます

公式 MuPDF 1.28.5 CLI と独立して固定された Poppler は、これらの変更されていない外観を受け入れました。リーダーのバージョンと有限の肯定的コントロールは、すべてのレンダリングパイプラインに対する保証とは別物です

自動フィット

DA フォントサイズ 0 は、初期生成レイアウトから、変換されていない行の高さだけでなく、変換されたグリフパス、アドバンス、デコレーションを用いた、境界付きの縮小と改善の探索を開始します

ストローク拡張には、dash 付きスクエアキャップの角と miter ジョインの保守的な変換サポートが含まれます

探索は確立済みの Cairo と FreeType のパス量子化を保持します。数学的に最大の理想フォントサイズや、リーダー間で同一のヒンティングは約束しません

境界付き探索が最小試行に達する前に適合する試行がない場合も、物理クリップが公開を制限します。非常に長いコンテンツが完全に可視のまま残る保証はありません

元のフォントとリソース上限

埋め込み Type1C、CIDFontType0C、素の Type1 の元フォールバックはすでにサポートされています。完全な OpenType CFF および CFF2 デフォルトインスタンス外観パスは、文書化済みのマッピングと埋め込み規則を保持します

スタンドアロンの raw CFF2 ストリームと非デフォルト変分座標の選択は、公開済み CFF2 パスの対象外です

トークン、オブジェクト、ワーキングメモリ、操作、デコードデータ、出力の上限が、パース、一時リソース、フィット、公開に適用されます。境界付き作業中はキャンセルがポーリングされます

失敗時はソースグラフが保持され、同一ドキュメント内の回復が可能です。上限に達しても、部分的に生成された外観が成功結果になることはありません

再現可能な受け入れと残る境界

公開スイートは Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py で、アセットと完全なアーカイブマニフェストとともに配布されます

通常モードは、45 組の候補/手書き AP ペアを最大チャネル差 2 で、7 つの元の上限グループと、イプシロン 1e-6 の独立した元 AP 連続幾何で実行します

肯定的な元 AP リーダーレンダリングと既知の垂直ピクセルセル観測は、連続幾何とは別に記録されます。ペアの一致もこれらの有限観測も、任意の生成候補幾何や任意の変換ラスタ包絡を証明するものではありません

有限 AP モードは、保持された 6 つの明示外観アフィンおよび dash コントロールを検査します。通常の受け入れ、生成候補チェック、上限テストの代わりにはなりません

保持された 45 の生成外観は、イプシロン 1e-6 の独立した連続幾何に合格しました。それらの 90 枚の固定 MuPDF・Poppler リーダー画像も、3,168,000 ピクセルセルすべてにわたる独立した全画像モデルに、最大チャネル差 0、スキップ画像なし、除外セルなしで合格しました

この有限モデルは、各リーダーの固定 FreeType カーネルを使い、元の手書き外観とフォント輪郭から、期待グリフ、変換、クリッピング、ストローク、合成を導出します。観測画像から期待ピクセルを学習することはありません

元の最大チャネル差は 2、インクしきい値は 245 のままです。これらの合格は保持されたコーパスと固定パイプラインをカバーするものであり、任意のフォント、すべてのレンダラービルド、数学的に最大のフィットサイズの証明ではありません

Linux および Windows の FPC ターゲットは FPC 3.3.1 以降を要求します。Windows FPC は、別途検証されたプライベート NoGUI 依存ビルドを使用し、デスクトップリーダーを起動しません

関連トピック:注釈フォールバック、注釈デコレーション、リッチテキスト run スペーシング、元の生フォント外観、OpenType CFF2 デフォルトインスタンス外観