fbpx
印刷

テキストが複数の要素に分割されているのはなぜですか?

BuildVuは、視覚的な精度を維持しつつ、テキストをできるだけ少ない要素にまとめるために最善の努力をしています。リアルテキストモードではBuildVuはシンプルで読み込みが速く、肥大化しない出力と引き換えに、少量の精度を犠牲にする方が良いという視点を持っています。

フォントサイズ、カラー、ファミリーが変更された場合や、ワードスペーシングやレタースペーシングでは処理できない方法で位置が変更された場合など、新しいテキスト要素が必要になる場合もあります。

また、グルーピングに影響を与えるHTMLにはないPDFの機能として、以下のようなものがあります。

  1. テキストのカーニング
  2. 代替文字の表示

 

1. テキストカーニング
PDFでは個々の文字の間にカスタムスペーシングを適用することができます。これは様々な方法で使用されていますが、例えば次のようなものがあります。

  • スタイル上の理由で少量のカーニングを行う(例:AWAYのAとWの間のギャップを少なくする)
  • 位置決めのために大量のカーニングを行う(例:表の次の列に移動する)
  • 位置決めのためにカーニングの量を大きくマイナスにする(例:表の前の列に移動する)
  • スペースキャラクタの代わりに使用されている(PDFリーダは隙間を検出してスペスペースキャラクタを抽出の中に挿入することが期待期待されている)
  • ワードスペーシングやレタースペーシングの代わりに使用する
  • 他のタイプのスペーシングを元に戻すために使用(例:ワードスペーシングまたはレタースペーシングを適用した後、カーニングでそれを取り除く)

BuildVu-HTMLは少量のカーニングを行全体に平均的に適用しますが、BuildVu-SVGはSVGの機能であるカーニングを正しく適用できます。大量のカーニングを行うには、テキストを正確に配置するために複数のテキスト要素が必要になる場合があります。

テキストのカーニングがどのように処理されるかについての詳細は、テキストカーニングはどのように処理されますか?を参照下さい。

2. 文字の交互表示
HTMLでは、1つの文字はフォント内で1つの外観しか持ち得ません。PDFでは、文字は1つのフォント内で複数の外観を持つことができます。

例えば、HTMLでは文字列「AAA」は常に3回同じ姿で表示されます。しかし、PDFでは文字列「AAA」はページ上で「ABC」として表示される可能性があります。

BuildVuは、すでにフォント内に存在する文字が異なる外観で表示された場合に、フォントの新しいバリアントを作成することでこの問題に対処します。新しいバリアントに切り替えるには、別の要素が必要です。

混沌としたテキストへの対応

PDFファイルの中では、テキストが思いもよらない方法で定義されていることがよくあります。これは、PDFファイルフォーマットがプレゼンテーションフォーマットとして設計されていることと、PDFファイルを作成するツールが「創造的」な方法で行うことが多いことが理由として挙げられます。

いずれの場合も、PDFのテキストはせいぜい1行ごとに定義されます(PDFフォーマットには、段落や表の概念は存在しません)。カーニングがクリエイティブな方法で使用されているだけでなく、PDFファイルでは各文字を個別に配置したり、単語ごとに配置したり、一見ランダムなグループで配置したりと、テキストを小刻みに定義することがよくあります。

表面的には単純に見えるかもしれませんが、ボンネットの中ではもっと複雑なことが行われています。

ほとんどの場合、BuildVuはPDF内のコンテンツを(そうでない場合でも)シンプルに見せます。

期待(または希望)するようにグループ化されていないテキストに遭遇した場合は、何が起こっているのかを調査し、BuildVuの処理方法を改善できるかどうかを検討させていただきます。ただし、これは複雑な問題でありテキスト要素を組み合わせることが必ずしも可能ではないことをご了承ください。

一般的に、出力の品質はPDFの品質に依存します。

    MENU
    PAGE TOP