所以我在PHP中使用FPDF以编程方式从图像和文本(不是HTML)生成PDF文件。PHP和FPDF:计算合理的文本宽度
我一直以来遇到的最大问题之一是能够对图像进行文字换行。我的当前算法看起来像:
- 获取文本作为数组字
- 在一个时间添加词语一个为“当前行”的变量,并在其上调用GetStringWidth()来确定当前的宽度行
- 一旦达到预定的最大宽度,我将当前行传递给一行行,并开始新的“当前行”。
这样做可以让我得到一个不应该突破的行数,但是我发现由于我的文本是对齐的,GetStringWidth()不能准确地给我宽度当它被证明是合理的时候。
我已经深入研究了FPDF的MultiCell
方法,试图找出它是如何正确打破正确的文本,但不能真正做到正面和反面。它似乎归结为一个类似的算法(并且它使用Cell
写入每行),但它似乎从不计算宽度,它写出PDF“代码”,如0.375 Tw
。
有谁知道如何计算对齐文本的宽度,给定一个字符串和最大宽度?
这对你有多准确?从我原来的问题来看,我正在做一些具有相同意图的事情(据此我手动“计算”我将写入的行中的单词) – 2010-07-25 23:44:52
在测试中运行良好!我需要进行一些用户测试来捕获所有奇怪的情况......但GetStringWidth()似乎返回了正确的#行。 – realcals 2010-07-27 04:47:14