divs
HTML ドキュメントに含まれるテキストを PDFにレンダリングする必要があります。PhantomJS を使おうと思っているのですが、とても重要なことがあります。ブラウザやプラットフォームが異なれば、テキストのレンダリングも異なります。したがって、次のコードがある場合:
<div style='width:150px; height:80px; position:absolute; top:130px; left:78px'>
<p> Some text, yayy! :) </p>
</div>
次のように、1 つのブラウザーでレンダリングできます。
Some text, yayy!:)
しかし、このような別のもの:
Some text,
yayy!:)
何が起こったのかというと、(フォントヒンティングのためだと思います)、最初の例のテキストは、含まれている に収まる特定の幅になってしまいましたがdiv
、2 番目のブラウザーでのフォントレンダリングのために、テキストはちょうどコンテナに収まらないもう少しのスペースがあり、次の行に折り返さなければなりませんでした。出力がどのようになるかについて、この種の不確実性を許すことはできません。HTML が 1 行にある場合、PDF も同じ行にある必要があります。
私は実際にここで関連する質問をしました: Make fonts on Windows render like Mac/Linux: disable font-hinting and/or deal with anti-alias on client side運が悪いが、基本的にはこの同じ問題を解決しようとしていた.
PhantomJS はこれについて何かできますか? または、PhantomJS は、フォントのヒントやその他の操作を行わずに、テキストの実際の幅を何らかの方法で計算できますか? または、ヒンティングが含まれている場合にレンダリングされるものを計算しますか? HTML で表示されるのと同じように PDF で表示される限り、何でもかまいません。(私が取り組んでいるアプリケーションを考えると、含まれているのCSSスタイルを自由に変更することはできませんDIV
)。