Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C PDF:如何知道字符的总宽度,包括前进宽度_C_Pdf_Width_Measurement_Em - Fatal编程技术网

C PDF:如何知道字符的总宽度,包括前进宽度

C PDF:如何知道字符的总宽度,包括前进宽度,c,pdf,width,measurement,em,C,Pdf,Width,Measurement,Em,以XML格式打印时,Wiht MuPDF显示: <char bbox="144.1 547.9049 152.682 564.2018" x="144.1" y="560.9" c="T"/> <char bbox="152.682 547.9049 161.488 564.2018" x="152.682" y="560.9" c="h"/> <char bbox="161.488 547.9049 165.38002 564.2018" x="161.488"

以XML格式打印时,Wiht MuPDF显示:

<char bbox="144.1 547.9049 152.682 564.2018" x="144.1" y="560.9" c="T"/>
<char bbox="152.682 547.9049 161.488 564.2018" x="152.682" y="560.9" c="h"/>
<char bbox="161.488 547.9049 165.38002 564.2018" x="161.488" y="560.9" c="i"/>
<char bbox="165.38002 547.9049 175.36201 564.2018" x="165.38002" y="560.9" c="s"/>
<char bbox="175.36201 547.9049 182.44601 564.2018" x="175.36201" y="560.9" c=" "/>
<char bbox="182.44601 547.9049 191.02802 564.2018" x="182.44601" y="560.9" c="a"/>
我还对fontfile的
hmtx
表进行了解码,该表显示了
进阶宽度
,如下所示:

Width[000]=0600 Width[001]=0770 Width[002]=0277 Width[003]=0817 Width[004]=0612
Width[005]=0633 Width[006]=0317 Width[007]=0634 Width[008]=0634 Width[009]=0633 
Width[010]=0317 Width[011]=0684 Width[012]=0634 Width[013]=0615 Width[014]=0277
Width[015]=0392 Width[016]=0684 Width[017]=0411 Width[018]=0520 Width[019]=0633
Width[020]=0557 Width[021]=0352 Width[022]=0294 Width[023]=0549 Width[024]=0698
Width[025]=0611 Width[026]=0634 Width[027]=1000 Width[028]=0694 Width[029]=0610
Width[030]=0277 Width[031]=0974 Width[032]=0636 Width[033]=0636 Width[034]=0636
 0. advanceWidth= 1229; lsb=102     1. advanceWidth= 1577; lsb=201
 2. advanceWidth=  569; lsb=193     3. advanceWidth= 1675; lsb= 86
 4. advanceWidth= 1255; lsb=123     5. advanceWidth= 1298; lsb=186
 6. advanceWidth=  651; lsb=  0     7. advanceWidth= 1300; lsb=135
 8. advanceWidth= 1300; lsb=113     9. advanceWidth= 1298; lsb=186
10. advanceWidth=  651; lsb=219    11. advanceWidth= 1401; lsb= 16
12. advanceWidth= 1300; lsb=186    13. advanceWidth= 1260; lsb=113
14. advanceWidth=  569; lsb=193    15. advanceWidth=  803; lsb= 55
16. advanceWidth= 1401; lsb= 16    17. advanceWidth=  842; lsb=186
18. advanceWidth= 1067; lsb=111    19. advanceWidth= 1298; lsb=174
20. advanceWidth= 1141; lsb=201    21. advanceWidth=  721; lsb= 47
22. advanceWidth=  604; lsb=201    23. advanceWidth= 1126; lsb=113
24. advanceWidth= 1430; lsb=115    25. advanceWidth= 1253; lsb=113
26. advanceWidth= 1300; lsb=113    27. advanceWidth= 2048; lsb=236
28. advanceWidth= 1423; lsb=201    29. advanceWidth= 1251; lsb= -6
head
表格:

flags=31; unitsPerEm=2048; xMin=-106; yMin=-426; xMax=1958; yMax=1556;
macStyle=0; lowestRecPPEM=8;
HHEA
表格

Ascender=1901;
Descender=-483;
MaxP

 maxPoints=48; maxZones=2; maxTwilightPoints=16; maxStorage=153; 
 maxFunctionDefs=8; maxInstructionDefs=0; maxStackElements=1045;
 maxSizeOfInstructions=534; maxComponentElements=8; maxComponentDepth=4;
采用字体字典宽度时,值为:

029|T|084 X Start =>144.100006; X End => 152.640006; Y => 231.100006
009|h|104 X Start =>152.639999; X End => 161.502000; Y => 231.100006
002|i|105 X Start =>161.501999; X End => 165.379999; Y => 231.100006 
018|s|115 X Start =>165.380005; X End => 172.660005; Y => 231.100006 
006| |032 X Start =>172.660004; X End => 177.098004; Y => 231.100006 
004|a|097 X Start =>177.098007; X End => 185.666007; Y => 231.100006 
字体大小=14

htmx
表中提供的值属于
em
em
的值是如何更改为
点的?

em是“字体大小”点,因此如果字体大小是14,em是14点。请注意,htmx表格中的单位实际上是em的1/2048,如head表格中的
unitsPerEm=2048
条目所指定


持怀疑态度的选民的参考资料:

  • :“[an em]更准确地定义为当前点的大小。例如,在12点类型中,em是12点的距离。”

  • :“此单位表示元素的计算字体大小。”