そのため、PHPでFPDFを使用して、画像とテキスト(HTMLではない)からPDFファイルをプログラムで生成しています。
私が抱えている最大の問題の1つは、画像の周りにテキストをワードラップできることです。私の現在のアルゴリズムは次のようになります。
- 単語の配列としてテキストを取得する
- '現在の行'変数に一度に1つずつ単語を追加し、その変数でGetStringWidth()を呼び出して、現在の行の幅を決定します。
- 事前に決定された最大幅に達したら、現在の行を行の配列に渡し、新しい「現在の行」から開始します。
これを行うと、不適切に分割されてはならない行の配列を取得できますが、テキストが右揃えになっているため、GetStringWidth()で行の幅を正確に指定できないことがわかりました。正当化されます。
私はFPDFのMultiCell
方法を掘り下げて、正当化されたテキストを適切に分割する方法を理解しようとしましたが、実際にはその頭も尾も作成できません。要約すると、同様のアルゴリズムになります(そして、を使用して各行を書き込みますCell
)が、実際には幅を計算するようには見えず、などのPDF「コード」を書き込みます0.375 Tw
。
文字列と最大幅を指定して、両端揃えのテキストの幅を計算する方法を知っている人はいますか?