如何计算jspdf中文本的宽度和高度?
Posted
技术标签:
【中文标题】如何计算jspdf中文本的宽度和高度?【英文标题】:How to calculate width and height of text in jspdf? 【发布时间】:2013-10-07 05:22:02 【问题描述】:我在jspdf 中创建表时遇到了一些问题。我找不到任何好的相关文档,但如果有人知道,请分享。
我找到了两个相关的方法:
1) doc.getStringUnitWidth(text, widths:12,kerning:2);
2) doc.getTextDimensions(text)
第一种方法中的widths和kerning是什么意思?我应该提供什么?我应该使用哪种方法来获取文本的宽度和高度?
我的目标是解决一些与重叠单元格内容、文本换行和相对于页面宽度的文本溢出有关的问题。
【问题讨论】:
参考这个例子github.com/MrRio/jsPDF/blob/master/examples/basic.html 谢谢 :),但我需要 table api 示例。我想了解它。有链接吗? github.com/MrRio/jsPDF/blob/… 这是生成表格的插件 【参考方案1】:您可能想查看使用 jsPDF 生成表格的 AutoTable 插件。我发现内置插件很难使用,而且根本没有记录。
我发现计算宽度的最佳方法就是这样做:
var doc = new jsPDF();
var width = doc.getTextWidth('Text');
console.log(width);
如果你真的需要计算高度getDimensions()
可能是一个选择。但是,它不是像素完美的,并且查看源代码我怀疑它是否适用于 pt
之外的任何东西。这是一个例子:
var doc = new jsPDF('p', 'pt');
var dim = doc.getTextDimensions('Text');
console.log(dim); // Object w: 24.149968818897642, h: 19.499975433070865
【讨论】:
如果只需要文字宽度,建议getTextWidth
试试。
我不记得在 jspdf 中看到过 getTextWidth。你会如何使用它?【参考方案2】:
它现在包含在 jsPDF 中:
doc.getTextWidth(text);
【讨论】:
【参考方案3】:我发现这个问题是为了寻找类似问题的答案。不幸的是,提供的答案并没有解决我的问题,但我认为我发现的内容可能会帮助其他人遇到这个问题。
如前所述,.getStringUnitWidth(text) 将返回字符串的宽度(以 pt 为单位)。我永远无法在文档或实际的 .js 文件中找到任何关于“字距调整”或“宽度”等选项的解释。我还注意到我自己的使用方法实际上低估了宽度约 10%,这开始很快加起来。最后,这不包括粗体、斜体或粗体和斜体的字体。
由于我需要高度的准确性,我最终自己计算了每个字符的宽度,并使用它来计算字符串宽度(通过合计字符串中每个字符的宽度)。
以下是 jsPDF 接受的 3 种默认字体(helvetica、times、courier)中每个字符的大小为 1(以 pt 为单位)的字体宽度:
helvetica
char unicode normal bold italic bolditalic
32 0.278 0.278 0.278 0.278
! 33 0.278 0.333 0.278 0.333
" 34 0.355 0.474 0.355 0.474
# 35 0.556 0.556 0.556 0.556
$ 36 0.556 0.556 0.556 0.556
% 37 0.889 0.889 0.889 0.889
& 38 0.667 0.722 0.667 0.722
' 39 0.191 0.238 0.191 0.238
( 40 0.333 0.333 0.333 0.333
) 41 0.333 0.333 0.333 0.333
* 42 0.389 0.389 0.389 0.389
+ 43 0.584 0.584 0.584 0.584
, 44 0.278 0.278 0.278 0.278
- 45 0.333 0.333 0.333 0.333
. 46 0.278 0.278 0.278 0.278
/ 47 0.278 0.278 0.278 0.278
0 48 0.556 0.556 0.556 0.556
1 49 0.556 0.556 0.556 0.556
2 50 0.556 0.556 0.556 0.556
3 51 0.556 0.556 0.556 0.556
4 52 0.556 0.556 0.556 0.556
5 53 0.556 0.556 0.556 0.556
6 54 0.556 0.556 0.556 0.556
7 55 0.556 0.556 0.556 0.556
8 56 0.556 0.556 0.556 0.556
9 57 0.556 0.556 0.556 0.556
: 58 0.278 0.333 0.278 0.333
; 59 0.278 0.333 0.278 0.333
< 60 0.584 0.584 0.584 0.584
= 61 0.584 0.584 0.584 0.584
> 62 0.584 0.584 0.584 0.584
? 63 0.556 0.611 0.556 0.611
@ 64 1.015 0.975 1.015 0.975
A 65 0.667 0.722 0.667 0.722
B 66 0.667 0.722 0.667 0.722
C 67 0.722 0.722 0.722 0.722
D 68 0.722 0.722 0.722 0.722
E 69 0.667 0.667 0.667 0.667
F 70 0.611 0.611 0.611 0.611
G 71 0.778 0.778 0.778 0.778
H 72 0.722 0.722 0.722 0.722
I 73 0.278 0.278 0.278 0.278
J 74 0.500 0.556 0.500 0.556
K 75 0.667 0.722 0.667 0.722
L 76 0.556 0.611 0.556 0.611
M 77 0.833 0.833 0.833 0.833
N 78 0.722 0.722 0.722 0.722
O 79 0.778 0.778 0.778 0.778
P 80 0.667 0.667 0.667 0.667
Q 81 0.778 0.778 0.778 0.778
R 82 0.722 0.722 0.722 0.722
S 83 0.667 0.667 0.667 0.667
T 84 0.611 0.611 0.611 0.611
U 85 0.722 0.722 0.722 0.722
V 86 0.667 0.667 0.667 0.667
W 87 0.944 0.944 0.944 0.944
X 88 0.667 0.667 0.667 0.667
Y 89 0.667 0.667 0.667 0.667
Z 90 0.611 0.611 0.611 0.611
[ 91 0.278 0.333 0.278 0.333
\ 92 0.278 0.278 0.278 0.278
] 93 0.278 0.333 0.278 0.333
^ 94 0.469 0.584 0.469 0.584
_ 95 0.556 0.556 0.556 0.556
` 96 0.333 0.333 0.333 0.333
a 97 0.556 0.556 0.556 0.556
b 98 0.556 0.611 0.556 0.611
c 99 0.500 0.556 0.500 0.556
d 100 0.556 0.611 0.556 0.611
e 101 0.556 0.556 0.556 0.556
f 102 0.278 0.333 0.278 0.333
g 103 0.556 0.611 0.556 0.611
h 104 0.556 0.611 0.556 0.611
i 105 0.222 0.278 0.222 0.278
j 106 0.222 0.278 0.222 0.278
k 107 0.500 0.556 0.500 0.556
l 108 0.222 0.278 0.222 0.278
m 109 0.833 0.889 0.833 0.889
n 110 0.556 0.611 0.556 0.611
o 111 0.556 0.611 0.556 0.611
p 112 0.556 0.611 0.556 0.611
q 113 0.556 0.611 0.556 0.611
r 114 0.333 0.389 0.333 0.389
s 115 0.500 0.556 0.500 0.556
t 116 0.278 0.333 0.278 0.333
u 117 0.556 0.611 0.556 0.611
v 118 0.500 0.556 0.500 0.556
w 119 0.722 0.778 0.722 0.778
x 120 0.500 0.556 0.500 0.556
y 121 0.500 0.556 0.500 0.556
z 122 0.500 0.500 0.500 0.500
123 0.334 0.389 0.334 0.389
| 124 0.260 0.280 0.260 0.280
125 0.334 0.389 0.334 0.389
~ 126 0.584 0.584 0.584 0.584
€ 128 0.556 0.556 0.556 0.556
‚ 130 0.222 0.278 0.222 0.278
ƒ 131 0.556 0.556 0.556 0.556
„ 132 0.333 0.500 0.333 0.500
… 133 1.000 1.000 1.000 1.000
† 134 0.556 0.556 0.556 0.556
‡ 135 0.556 0.556 0.556 0.556
ˆ 136 0.333 0.333 0.333 0.333
‰ 137 1.000 1.000 1.000 1.000
Š 138 0.667 0.667 0.667 0.667
‹ 139 0.333 0.333 0.333 0.333
Œ 140 1.000 1.000 1.000 1.000
Ž 142 0.611 0.611 0.611 0.611
‘ 145 0.222 0.278 0.222 0.278
’ 146 0.222 0.278 0.222 0.278
“ 147 0.333 0.500 0.333 0.500
” 148 0.333 0.500 0.333 0.500
• 149 0.350 0.350 0.350 0.350
– 150 0.556 0.556 0.556 0.556
— 151 1.000 1.000 1.000 1.000
˜ 152 0.333 0.333 0.333 0.333
™ 153 1.000 1.000 1.000 1.000
š 154 0.500 0.556 0.500 0.556
› 155 0.333 0.333 0.333 0.333
œ 156 0.944 0.944 0.944 0.944
ž 158 0.500 0.500 0.500 0.500
Ÿ 159 0.667 0.667 0.667 0.667
160 0.278 0.278 0.278 0.278
¡ 161 0.333 0.333 0.333 0.333
¢ 162 0.556 0.556 0.556 0.556
£ 163 0.556 0.556 0.556 0.556
¤ 164 0.556 0.556 0.556 0.556
¥ 165 0.556 0.556 0.556 0.556
¦ 166 0.260 0.280 0.260 0.280
§ 167 0.556 0.556 0.556 0.556
¨ 168 0.333 0.333 0.333 0.333
© 169 0.737 0.737 0.737 0.737
ª 170 0.370 0.370 0.370 0.370
« 171 0.556 0.556 0.556 0.556
¬ 172 0.584 0.584 0.584 0.584
- 173 0.333 0.333 0.333 0.333
® 174 0.737 0.737 0.737 0.737
¯ 175 0.552 0.552 0.552 0.552
° 176 0.400 0.400 0.400 0.400
± 177 0.549 0.549 0.549 0.549
² 178 0.333 0.333 0.333 0.333
³ 179 0.333 0.333 0.333 0.333
´ 180 0.333 0.333 0.333 0.333
µ 181 0.576 0.576 0.576 0.576
¶ 182 0.537 0.556 0.537 0.556
· 183 0.333 0.333 0.333 0.333
¸ 184 0.333 0.333 0.333 0.333
¹ 185 0.333 0.333 0.333 0.333
º 186 0.365 0.365 0.365 0.365
» 187 0.556 0.556 0.556 0.556
¼ 188 0.834 0.834 0.834 0.834
½ 189 0.834 0.834 0.834 0.834
¾ 190 0.834 0.834 0.834 0.834
¿ 191 0.611 0.611 0.611 0.611
À 192 0.667 0.722 0.667 0.722
Á 193 0.667 0.722 0.667 0.722
 194 0.667 0.722 0.667 0.722
à 195 0.667 0.722 0.667 0.722
Ä 196 0.667 0.722 0.667 0.722
Å 197 0.667 0.722 0.667 0.722
Æ 198 1.000 1.000 1.000 1.000
Ç 199 0.722 0.722 0.722 0.722
È 200 0.667 0.667 0.667 0.667
É 201 0.667 0.667 0.667 0.667
Ê 202 0.667 0.667 0.667 0.667
Ë 203 0.667 0.667 0.667 0.667
Ì 204 0.278 0.278 0.278 0.278
Í 205 0.278 0.278 0.278 0.278
Î 206 0.278 0.278 0.278 0.278
Ï 207 0.278 0.278 0.278 0.278
Ð 208 0.722 0.722 0.722 0.722
Ñ 209 0.722 0.722 0.722 0.722
Ò 210 0.778 0.778 0.778 0.778
Ó 211 0.778 0.778 0.778 0.778
Ô 212 0.778 0.778 0.778 0.778
Õ 213 0.778 0.778 0.778 0.778
Ö 214 0.778 0.778 0.778 0.778
× 215 0.584 0.584 0.584 0.584
Ø 216 0.778 0.778 0.778 0.778
Ù 217 0.722 0.722 0.722 0.722
Ú 218 0.722 0.722 0.722 0.722
Û 219 0.722 0.722 0.722 0.722
Ü 220 0.722 0.722 0.722 0.722
Ý 221 0.667 0.667 0.667 0.667
Þ 222 0.667 0.667 0.667 0.667
ß 223 0.611 0.611 0.611 0.611
à 224 0.556 0.556 0.556 0.556
á 225 0.556 0.556 0.556 0.556
â 226 0.556 0.556 0.556 0.556
ã 227 0.556 0.556 0.556 0.556
ä 228 0.556 0.556 0.556 0.556
å 229 0.556 0.556 0.556 0.556
æ 230 0.889 0.889 0.889 0.889
ç 231 0.500 0.556 0.500 0.556
è 232 0.556 0.556 0.556 0.556
é 233 0.556 0.556 0.556 0.556
ê 234 0.556 0.556 0.556 0.556
ë 235 0.556 0.556 0.556 0.556
ì 236 0.278 0.278 0.278 0.278
í 237 0.278 0.278 0.278 0.278
î 238 0.278 0.278 0.278 0.278
ï 239 0.278 0.278 0.278 0.278
ð 240 0.556 0.611 0.556 0.611
ñ 241 0.556 0.611 0.556 0.611
ò 242 0.556 0.611 0.556 0.611
ó 243 0.556 0.611 0.556 0.611
ô 244 0.556 0.611 0.556 0.611
õ 245 0.556 0.611 0.556 0.611
ö 246 0.556 0.611 0.556 0.611
÷ 247 0.549 0.549 0.549 0.549
ø 248 0.611 0.611 0.611 0.611
ù 249 0.556 0.611 0.556 0.611
ú 250 0.556 0.611 0.556 0.611
û 251 0.556 0.611 0.556 0.611
ü 252 0.556 0.611 0.556 0.611
ý 253 0.500 0.556 0.500 0.556
þ 254 0.556 0.611 0.556 0.611
ÿ 255 0.500 0.556 0.500 0.556
times
char unicode normal bold italic bolditalic
32 0.250 0.250 0.250 0.250
! 33 0.333 0.333 0.333 0.389
" 34 0.408 0.555 0.420 0.555
# 35 0.500 0.500 0.500 0.500
$ 36 0.500 0.500 0.500 0.500
% 37 0.833 1.000 0.833 0.833
& 38 0.778 0.833 0.778 0.778
' 39 0.180 0.278 0.214 0.278
( 40 0.333 0.333 0.333 0.333
) 41 0.333 0.333 0.333 0.333
* 42 0.500 0.500 0.500 0.500
+ 43 0.564 0.570 0.675 0.570
, 44 0.250 0.250 0.250 0.250
- 45 0.333 0.333 0.333 0.333
. 46 0.250 0.250 0.250 0.250
/ 47 0.278 0.278 0.278 0.278
0 48 0.500 0.500 0.500 0.500
1 49 0.500 0.500 0.500 0.500
2 50 0.500 0.500 0.500 0.500
3 51 0.500 0.500 0.500 0.500
4 52 0.500 0.500 0.500 0.500
5 53 0.500 0.500 0.500 0.500
6 54 0.500 0.500 0.500 0.500
7 55 0.500 0.500 0.500 0.500
8 56 0.500 0.500 0.500 0.500
9 57 0.500 0.500 0.500 0.500
: 58 0.278 0.333 0.333 0.333
; 59 0.278 0.333 0.333 0.333
< 60 0.564 0.570 0.675 0.570
= 61 0.564 0.570 0.675 0.570
> 62 0.564 0.570 0.675 0.570
? 63 0.444 0.500 0.500 0.500
@ 64 0.921 0.930 0.920 0.832
A 65 0.722 0.722 0.611 0.667
B 66 0.667 0.667 0.611 0.667
C 67 0.667 0.722 0.667 0.667
D 68 0.722 0.722 0.722 0.722
E 69 0.611 0.667 0.611 0.667
F 70 0.556 0.611 0.611 0.667
G 71 0.722 0.778 0.722 0.722
H 72 0.722 0.778 0.722 0.778
I 73 0.333 0.389 0.333 0.389
J 74 0.389 0.500 0.444 0.500
K 75 0.722 0.778 0.667 0.667
L 76 0.611 0.667 0.556 0.611
M 77 0.889 0.944 0.833 0.889
N 78 0.722 0.722 0.667 0.722
O 79 0.722 0.778 0.722 0.722
P 80 0.556 0.611 0.611 0.611
Q 81 0.722 0.778 0.722 0.722
R 82 0.667 0.722 0.611 0.667
S 83 0.556 0.556 0.500 0.556
T 84 0.611 0.667 0.556 0.611
U 85 0.722 0.722 0.722 0.722
V 86 0.722 0.722 0.611 0.667
W 87 0.944 1.000 0.833 0.889
X 88 0.722 0.722 0.611 0.667
Y 89 0.722 0.722 0.556 0.611
Z 90 0.611 0.667 0.556 0.611
[ 91 0.333 0.333 0.389 0.333
\ 92 0.278 0.278 0.278 0.278
] 93 0.333 0.333 0.389 0.333
^ 94 0.469 0.581 0.422 0.570
_ 95 0.500 0.500 0.500 0.500
` 96 0.333 0.333 0.333 0.333
a 97 0.444 0.500 0.500 0.500
b 98 0.500 0.556 0.500 0.500
c 99 0.444 0.444 0.444 0.444
d 100 0.500 0.556 0.500 0.500
e 101 0.444 0.444 0.444 0.444
f 102 0.333 0.333 0.278 0.333
g 103 0.500 0.500 0.500 0.500
h 104 0.500 0.556 0.500 0.556
i 105 0.278 0.278 0.278 0.278
j 106 0.278 0.333 0.278 0.278
k 107 0.500 0.556 0.444 0.500
l 108 0.278 0.278 0.278 0.278
m 109 0.778 0.833 0.722 0.778
n 110 0.500 0.556 0.500 0.556
o 111 0.500 0.500 0.500 0.500
p 112 0.500 0.556 0.500 0.500
q 113 0.500 0.556 0.500 0.500
r 114 0.333 0.444 0.389 0.389
s 115 0.389 0.389 0.389 0.389
t 116 0.278 0.333 0.278 0.278
u 117 0.500 0.556 0.500 0.556
v 118 0.500 0.500 0.444 0.444
w 119 0.722 0.722 0.667 0.667
x 120 0.500 0.500 0.444 0.500
y 121 0.500 0.500 0.444 0.444
z 122 0.444 0.444 0.389 0.389
123 0.480 0.394 0.400 0.348
| 124 0.200 0.220 0.275 0.220
125 0.480 0.394 0.400 0.348
~ 126 0.541 0.520 0.541 0.570
€ 128 0.500 0.500 0.500 0.500
‚ 130 0.333 0.333 0.333 0.333
ƒ 131 0.500 0.500 0.500 0.500
„ 132 0.444 0.500 0.556 0.500
… 133 1.000 1.000 0.889 1.000
† 134 0.500 0.500 0.500 0.500
‡ 135 0.500 0.500 0.500 0.500
ˆ 136 0.333 0.333 0.333 0.333
‰ 137 1.000 1.000 1.000 1.000
Š 138 0.556 0.556 0.500 0.556
‹ 139 0.333 0.333 0.333 0.333
Œ 140 0.889 1.000 0.944 0.944
Ž 142 0.611 0.667 0.556 0.611
‘ 145 0.333 0.333 0.333 0.333
’ 146 0.333 0.333 0.333 0.333
“ 147 0.444 0.500 0.556 0.500
” 148 0.444 0.500 0.556 0.500
• 149 0.350 0.350 0.350 0.350
– 150 0.500 0.500 0.500 0.500
— 151 1.000 1.000 0.889 1.000
˜ 152 0.333 0.333 0.333 0.333
™ 153 0.980 1.000 0.980 1.000
š 154 0.389 0.389 0.389 0.389
› 155 0.333 0.333 0.333 0.333
œ 156 0.722 0.722 0.667 0.722
ž 158 0.444 0.444 0.389 0.389
Ÿ 159 0.722 0.722 0.556 0.611
160 0.250 0.250 0.250 0.250
¡ 161 0.333 0.333 0.389 0.389
¢ 162 0.500 0.500 0.500 0.500
£ 163 0.500 0.500 0.500 0.500
¤ 164 0.500 0.500 0.500 0.500
¥ 165 0.500 0.500 0.500 0.500
¦ 166 0.200 0.220 0.275 0.220
§ 167 0.500 0.500 0.500 0.500
¨ 168 0.333 0.333 0.333 0.333
© 169 0.760 0.747 0.760 0.747
ª 170 0.276 0.300 0.276 0.266
« 171 0.500 0.500 0.500 0.500
¬ 172 0.564 0.570 0.675 0.606
- 173 0.333 0.333 0.333 0.333
® 174 0.760 0.747 0.760 0.747
¯ 175 0.500 0.500 0.500 0.500
° 176 0.400 0.400 0.400 0.400
± 177 0.549 0.549 0.549 0.549
² 178 0.300 0.300 0.300 0.300
³ 179 0.300 0.300 0.300 0.300
´ 180 0.333 0.333 0.333 0.333
µ 181 0.576 0.576 0.576 0.576
¶ 182 0.453 0.540 0.523 0.500
· 183 0.333 0.333 0.250 0.250
¸ 184 0.333 0.333 0.333 0.333
¹ 185 0.300 0.300 0.300 0.300
º 186 0.310 0.330 0.310 0.300
» 187 0.500 0.500 0.500 0.500
¼ 188 0.750 0.750 0.750 0.750
½ 189 0.750 0.750 0.750 0.750
¾ 190 0.750 0.750 0.750 0.750
¿ 191 0.444 0.500 0.500 0.500
À 192 0.722 0.722 0.611 0.667
Á 193 0.722 0.722 0.611 0.667
 194 0.722 0.722 0.611 0.667
à 195 0.722 0.722 0.611 0.667
Ä 196 0.722 0.722 0.611 0.667
Å 197 0.722 0.722 0.611 0.667
Æ 198 0.889 1.000 0.889 0.944
Ç 199 0.667 0.722 0.667 0.667
È 200 0.611 0.667 0.611 0.667
É 201 0.611 0.667 0.611 0.667
Ê 202 0.611 0.667 0.611 0.667
Ë 203 0.611 0.667 0.611 0.667
Ì 204 0.333 0.389 0.333 0.389
Í 205 0.333 0.389 0.333 0.389
Î 206 0.333 0.389 0.333 0.389
Ï 207 0.333 0.389 0.333 0.389
Ð 208 0.722 0.722 0.722 0.722
Ñ 209 0.722 0.722 0.667 0.722
Ò 210 0.722 0.778 0.722 0.722
Ó 211 0.722 0.778 0.722 0.722
Ô 212 0.722 0.778 0.722 0.722
Õ 213 0.722 0.778 0.722 0.722
Ö 214 0.722 0.778 0.722 0.722
× 215 0.564 0.570 0.675 0.570
Ø 216 0.722 0.778 0.722 0.722
Ù 217 0.722 0.722 0.722 0.722
Ú 218 0.722 0.722 0.722 0.722
Û 219 0.722 0.722 0.722 0.722
Ü 220 0.722 0.722 0.722 0.722
Ý 221 0.722 0.722 0.556 0.611
Þ 222 0.556 0.611 0.611 0.611
ß 223 0.500 0.556 0.500 0.500
à 224 0.444 0.500 0.500 0.500
á 225 0.444 0.500 0.500 0.500
â 226 0.444 0.500 0.500 0.500
ã 227 0.444 0.500 0.500 0.500
ä 228 0.444 0.500 0.500 0.500
å 229 0.444 0.500 0.500 0.500
æ 230 0.667 0.722 0.667 0.722
ç 231 0.444 0.444 0.444 0.444
è 232 0.444 0.444 0.444 0.444
é 233 0.444 0.444 0.444 0.444
ê 234 0.444 0.444 0.444 0.444
ë 235 0.444 0.444 0.444 0.444
ì 236 0.278 0.278 0.278 0.278
í 237 0.278 0.278 0.278 0.278
î 238 0.278 0.278 0.278 0.278
ï 239 0.278 0.278 0.278 0.278
ð 240 0.500 0.500 0.500 0.500
ñ 241 0.500 0.556 0.500 0.556
ò 242 0.500 0.500 0.500 0.500
ó 243 0.500 0.500 0.500 0.500
ô 244 0.500 0.500 0.500 0.500
õ 245 0.500 0.500 0.500 0.500
ö 246 0.500 0.500 0.500 0.500
÷ 247 0.549 0.549 0.549 0.549
ø 248 0.500 0.500 0.500 0.500
ù 249 0.500 0.556 0.500 0.556
ú 250 0.500 0.556 0.500 0.556
û 251 0.500 0.556 0.500 0.556
ü 252 0.500 0.556 0.500 0.556
ý 253 0.500 0.500 0.444 0.444
þ 254 0.500 0.556 0.500 0.500
ÿ 255 0.500 0.500 0.444 0.444
courier
All characters in every style are 0.600 (font is monospaced)
使用上表确定字符串的宽度后,您需要将答案转换为所需的测量单位。
width (in inches) = (character or string width * font size) / (72 pt/in)
width (in mm) = (character or string width * font size * 25.4 mm/in) / (72 pt/in)
我能想到的使用上述内容的唯一警告是,如果您的输出 pdf 使用了字距调整对。我的输出文件似乎没有使用字距调整对,所以我没有进一步探讨这个问题。如果由于某种原因这对您来说是个问题,您需要在发生时为每个字距调整对稍微调整宽度。
高度的计算要少得多。单行文本的高度就是字体大小。一行大小为 10 的文本将占用 10 pt。
如果您想计算多行文本,则需要考虑“行高”(基本上是行之间的空白量)。在我的测试中,我发现 jsPDF 使用的默认行高为字体大小的 115% (1.15x)。因此,您对线高的计算将变为:
height = font size * number of lines * line height
Example:
height = 10 pt * 5 lines * 1.15
height = 57.5 pt
然后您只需按上述方式转换为所需的测量单位。
【讨论】:
这里只是补充一下信息,通过传入一个对象作为构造函数的第一个参数,您可以显式设置行高:var doc = new jsPDF(orientation: 'p', lineHeight: 1.3, unit: 'pt');
另外,关于字体高度:实际字符高度会因字体大小而异(通常更小)。这个答案提供了更多细节:graphicdesign.stackexchange.com/a/4069
您是如何获得表格中使用的各个字符宽度的?以上是关于如何计算jspdf中文本的宽度和高度?的主要内容,如果未能解决你的问题,请参考以下文章
如何计算 React Native 中 TextInput 组件中文本的宽度?