THotPDF.BuildLoadedPageSVG Method
選択したロード済み PDF ページから、単独で完結する SVG ドキュメントを生成します
宣言
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
ユニット
HPDFDoc
パラメータ
| 名前 | 目的 |
|---|---|
PageIndex | ロード済みページの 0 始まりのインデックス |
EmbedFonts | True は埋め込みフォントのグリフをアウトラインとして SVG に書き込むため、それらのフォントがインストールされていない環境でもページは同じ見た目になります。False およびこのパラメータのないオーバーロードでは、テキストはビューアのインストール済みフォントに委ねられます |
戻り値
完全な SVG ドキュメントを返します。ページをエクスポートできない場合は空文字列を返します
使用上の注意
- パス、デコード済みテキスト、画像 XObject、インライン画像、再帰的な Form XObject は、共有の content-device インタープリターを通じて出力されます。Form XObject は、それが描画される位置で有効な色から始まります
- キャンバスはページの見えている部分、つまり
/MediaBoxに対してクリップされた/CropBox(GetLoadedPageVisibleBoxを参照)を/Rotateで回転した範囲をカバーします。ボックスが原点から始まらない場合でも、ボックスの左下隅がキャンバスの隅に対応します - テキストは文字ごとに 1 つの
x位置とxml:space="preserve"を付けて UTF-8 で書かれるため、空白は保持されます。合字グリフはそれが表すすべての文字へ展開され、XML 1.0 が許可しないコードは U+FFFD になります - テキスト配置は完全なテキスト行列に従い、文字間隔・ワード間隔、水平スケーリング、ライズ、
TJ調整が含まれます。レンダーモード 0〜2 は塗る、線を引く、またはその両方を行い、モード 3 は何も描きません。モード 4〜7 で表示されるテキストのグリフは、テキストオブジェクトの終わり(ET)からグラフィックス状態の終わりまでのクリッピングパスにもなります - デフォルトではテキストはインストール済みフォントを使います。標準 14 ファミリとその TrueType 相当は Helvetica または Arial、Times New Roman、Courier New に対応付けられ、その他のフォントはファミリ名で、語間に空白を入れた名前でも(
MyriadPro, Myriad Pro)参照され、その後にフォント記述子のフラグまたは名前から取った総称ファミリが続きます。ボールドとイタリックのテキストは、フォント名のスタイル部分(Arial-BoldMT、Helvetica-Oblique、MinionPro-It)とフォント記述子の weight、フラグ、イタリック角度からfont-weightとfont-styleを得ます EmbedFontsをTrueに設定すると、TrueType または CFF プログラムが PDF に埋め込まれているフォントのテキストは、そのプログラムのグリフアウトラインから描画されます。各グリフは<defs>内に 1 回だけ<path>として定義され、現れる場所ごとに<use>で置かれるため、繰り返し文字がアウトラインを重複させません。塗りと線のモード、線幅、テキストクリッピングは、SVG テキストの場合と同様にテキストに従います。テキスト自体はアウトラインの上に透明な SVG テキストとして保持されるため、選択、検索、支援技術による読み取りが可能です- 埋め込まれていないフォント、Type 1 フォントプログラム(
/FontFile)、縦書き CJK、埋め込みプログラムにグリフがないコードを含む一連のテキストは、EmbedFontsを設定しても SVG テキストのままです。アウトラインはファイルを大きくします。テキストの多いページでは 2〜3 倍になることがよくあります - 任意のカラースペース(
DeviceGray、DeviceRGB、DeviceCMYK、ICCBased、キャリブレート、Lab、Indexed、Separation、DeviceN)で設定された塗りつぶし色と線色は、ページレンダラーと同じ変換で sRGB に変換されます - タイリングパターンで塗られるパスは、
XStepとYStepごとにパターンセルを繰り返す SVG<pattern>で塗られ、その/BBoxでクリップされます。ノンカラーパターンは、パターンとともに指定された色でセルを描画します。シェーディングパターンで塗られるパスは、そのシェーディングのグラデーションまたはメッシュをパスでクリップして得られます。パターンマトリクスはページの空間、またはそのパターンを使うフォームの空間で適用されます。パターンを使うストロークはその色を使い、カラーパターンでは黒になります - Type 2 の axial シェーディングと Type 3 の radial シェーディングは、サンプル数に上限のあるストップを持つ SVG グラデーションを使用します。
Extendで延長されていない端は、PDF と同じく描画されません - Type 4 から Type 7 までのメッシュシェーディングは、最大 1,600 万ピクセルまでの、透明な PNG の data URI を使用します
- インライン画像は、ロード済みドキュメントと同じ画像パスでデコードされ、PNG の data URI として埋め込まれます
- イメージマスク(インラインのものを含む)は、現在の塗りつぶし色の PNG 画像になり、描かれていない部分は透明になります。
/SMaskと/Maskステンシルは画像にアルファチャンネルを与え、マスクの解像度が画像より細かい場合はその解像度で与えられます。カラーキーの/Mask配列は、Flate、LZW、無フィルタの画像で一致するピクセルを透明にします WとW*のクリッピングパスは、設定されたグラフィックス状態の終わりで閉じる SVG の<clipPath>要素になります。Form XObject はその/BBoxで、axial・radial シェーディングも同様にクリップされます- Type 3 フォントのテキストは、SVG テキストとしてではなく、フォントのグリフプロシージャを使い、その
/FontMatrixを通して配置して描画されます。d1で始まるグリフは現在の塗りつぶし色で描画します。Type 3 グリフは、レンダーモード 4〜7 のクリッピングパスには追加されません - シェーディングの
Background色は、シェーディングの前にシェーディングパターンの領域を塗るため、シェーディングが描画しない場所で見えます。PDF と同様に、shで描画されるシェーディングでは無視されます - Type 1 の関数ベースシェーディングは、その
Domainにわたって最大 256 × 256 サンプルの PNG data URI にサンプリングされ、シェーディングのMatrixを通して配置されます。拡大されるときはビューアが平滑化します