HPDFCreateXPSDocumentHandler 関数

function HPDFCreateXPSDocumentHandler: IHPDFDocumentHandler;

オプションの XPS および OpenXPS 固定ページハンドラを作成します。順序付けられた Glyphs テキストとネイティブベクタの Path 変換を備えています

パスインポートは、境界付きの簡略ジオメトリ、F0 と F1 の塗りつぶし規則、属性またはプロパティ要素の単色 ARGB と RGB の塗りつぶしおよび線、プロパティ要素のマルチストップ LinearGradientBrush と楕円 RadialGradientBrush 値、一様なストップアルファ、ブラシとパスの不透明度、相対境界および絶対グラデーションのマッピング、線幅、6 パラメータの RenderTransform 値を受け入れます

パッケージ JPEG、PNG、TIFF、JPEG XR の ImageBrush 塗りつぶしは、None、Tile、FlipX、FlipY、FlipXY のタイルモード、絶対または RelativeToBoundingBox の Viewbox と Viewport マッピング、ネイティブパスとプレースメントのクリッピング、ブラシローカル座標での有限の 6 パラメータ Transform 属性または ImageBrush.Transform の MatrixTransform 要素、ブラシとパスの不透明度、PNG ソフトマスクアルファ、DPI 対応の固有サイズ、変換ごとのデコード済みリソースキャッシュをサポートします

繰り返し画像ブラシはネイティブ PDF 画像タイリングパターンを使用し、通常または鏡像セルに対して 1、2、または 4 つのクリップされたプレースメントを配置します。一方、1 つの画像 XObject とそのソフトマスクは共有されたままです。パターンマトリックスはベクタパスジオメトリを変更せずに固定ページ、パス、ブラシの変換を連結します

Path.OpacityMask は単色、マルチストップの線形または楕円放射グラデーション、および PNG ImageBrush マスクを通常、タイル、または鏡像プレースメントで受け入れます。一様なアルファは既存の塗りつぶしと線の状態に組み込まれ、変動アルファはシェーディングパターンと画像ソフトマスクストリームを再利用する境界付きのネイティブ DeviceGray 透過グループを使用します

VisualBrush はインラインまたはリソースバックアップの Canvas、Path、Glyphs ビジュアルを受け入れ、ネストされたリモートの ResourceDictionary スコープを通じて StaticResource 値を解決し、絶対 Viewbox を絶対または RelativeToBoundingBox の Viewport にマッピングします

各固有ビジュアルは、必要なフォント、XObject、パターン、グラフィックス状態、カラースペースリソースを持つ再利用可能な PDF フォーム XObject に一度コンパイルされます。通常のプレースメントはフォームを直接実行し、Tile、FlipX、FlipY、FlipXY はセルごとにビジュアル描画コマンドを展開する代わりに境界付きのネイティブタイリングパターンを使用します

ビジュアル、ブラシ、包含パスの変換と不透明度はそれぞれの座標空間で合成されます。一方、再帰的なリソース、不正なマッピング、非対応のネストコンテンツ、超過した深度、コンテンツ、キャッシュ、またはプレースメント予算は、部分的なフォームが公開される前にフェイルクローズします

Canvas.Clip は簡略ジオメトリ、ローカルまたはリモートの StaticResource PathGeometry 値、および境界付きの構造化 PathFigure の直線、ポリライン、ベジェ、二次、円弧セグメントを含む直接プロパティ要素を受け入れます。ジオメトリ変換と EvenOdd または NonZero の塗りつぶし規則は、ネイティブ PDF の W* または W クリッピングの前に Canvas 変換と合成されます

ネストされた Canvas クリップは PDF のグラフィックス状態の交差を保持し、子孫のリンク注釈をアクティブな変換済みクリップ境界に制約し、空のジオメトリを診断なしで空のクリップとして扱い、解析済みジオメトリを 100,000 値に制限し、ジオメトリまたはその有効行列が不正または特異な場合は子の描画前にフェイルクローズします

Canvas の Opacity と、単色、線形グラデーション、放射グラデーション、または PNG 画像の Canvas.OpacityMask 値は、重なる子がグループアルファが適用される前に合成されるように、子孫を単一の分離された DeviceRGB フォーム XObject に取り込みます。一様なマスクアルファはそのグループ状態に組み込まれ、空間的に変動するアルファは境界付きのネイティブソフトマスクリソースを再利用します

ネストされた Canvas グループは、自身の変換、クリップ、転送されたフォント、XObject、パターン、グラフィックス状態、カラースペースリソース、クリップされたリンクを保持します。変換はグループごとに最大 4,096 個の Canvas グループフォームと 16 MiB の取り込み済みコマンドを許可し、部分的なリソースや到達不能なリソースを公開する前に、重複、非対応、不正、特異、または過大なマスクを拒否します

Glyphs は最大 65,536 の厳密な Indices マッピングを解析し、クラスタのコード単位とグリフ数、明示的な 1/100 em の前進、水平と垂直のオフセット、奇数 BidiLevel の逆進行、単色属性または Glyphs.Fill プロパティブラシ、不透明度、Unicode 抽出を保持し、単純なマッピングをネイティブ PDF の TJ 配列にバッチ処理し、不正または無制限の入力ではフェイルクローズします

パッケージの FontUri リソースは TrueType と OpenType プログラム、TTC メンバーフラグメント、GUID 難読化された XPS フォントを受け入れ、直接の GlyphIndex 値または cmap から派生したグリフを保持し、実行全体でフォントバイトを再利用し、埋め込みとサブセット省略の権限を尊重し、クラスタ対応の ToUnicode マップを公開します

変換された Path と Glyphs ビジュアル上の FixedPage.NavigateUri は、クリック境界がパスジオメトリまたはグリフメトリックに従うネイティブ PDF リンク注釈を作成します。HTTP、HTTPS、メールリンクは URI アクションになり、パッケージ相対のページ参照とパーセントデコードされた LinkTarget フラグメントは、すべてのページの作成後に前方または後方の GoTo アクションになります

Canvas の FixedPage.NavigateUri は、子孫がそれをオーバーライドするまで、子孫の Path、Glyphs、ネストされた Canvas ビジュアルに継承されます。各注釈はビジュアルの境界と変換を保持し、アクティブな Canvas クリップが継承されたクリック領域を制約し、ネストされたスコープは外側のターゲットを復元し、分離された不透明度グループは注釈を保持し、再利用可能な VisualBrush の取り込みは非インタラクティブのままです

ナビゲーションは URI ごとに最大 65,536 リンクと 8,192 文字を受け入れ、公開中にキャンセルをチェックし、再利用可能な VisualBrush コンテンツの取り込み中は注釈を抑制し、制御文字、安全でないスキーム、欠落したターゲット、ページとフラグメントの不一致ではフェイルクローズします

非対応の非標準 RelativeTransform、未解決の行列リソース、Repeat または Reflect のグラデーションスプレッド、非 sRGB の補間、ペイントブラシの変動ストップアルファ、縮退した軸、色変換、画像の線、相対 VisualBrush ビューボックス、スタイルシミュレーション、横向きグリフ、高度な線プロパティは明示的な診断のまま残ります

オプションのドキュメントハンドラ