mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-06-27 18:45:48 +02:00
Merge pull request #21487 from calixteman/issue17333
Render non-empty glyph 0 for char code 0
This commit is contained in:
commit
d8526132f5
@ -3159,6 +3159,23 @@ class Font {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The char code 0 isn't associated with any glyph name in the standard
|
||||
// encodings, hence it can only refer to glyph 0 (i.e. the ".notdef"
|
||||
// glyph). Some embedded fonts use a non-empty glyph 0 (e.g. a checkbox
|
||||
// in a symbol font) and the page content draws it with the char code 0,
|
||||
// so map it explicitly when it would otherwise be left unmapped, but
|
||||
// only when the glyph is non-empty to avoid displaying a ".notdef" box
|
||||
// for fonts that don't (issue 17333). This is restricted to embedded
|
||||
// fonts since the ".notdef" glyph of a standard substitution font must
|
||||
// never be rendered.
|
||||
if (
|
||||
!properties.isInternalFont &&
|
||||
charCodeToGlyphId[0] === undefined &&
|
||||
hasGlyph(0)
|
||||
) {
|
||||
charCodeToGlyphId[0] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (charCodeToGlyphId.length === 0) {
|
||||
|
||||
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -939,3 +939,4 @@
|
||||
!bug1873345.pdf
|
||||
!cff_bluescale_small_zones.pdf
|
||||
!multimedia_annotations.pdf
|
||||
!issue17333.pdf
|
||||
|
||||
140
test/pdfs/issue17333.pdf
Normal file
140
test/pdfs/issue17333.pdf
Normal file
@ -0,0 +1,140 @@
|
||||
%PDF-1.7
|
||||
% ò¤ô
|
||||
1 0 obj <<
|
||||
/Type /Catalog
|
||||
/Pages 2 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj <<
|
||||
/Type /Pages
|
||||
/Count 1
|
||||
/Kids [3 0 R]
|
||||
>>
|
||||
endobj
|
||||
3 0 obj <<
|
||||
/Type /Page
|
||||
/Contents 4 0 R
|
||||
/Resources <<
|
||||
/Font <<
|
||||
/TT3 5 0 R
|
||||
>>
|
||||
>>
|
||||
/Parent 2 0 R
|
||||
/MediaBox [0 0 100 100]
|
||||
>>
|
||||
endobj
|
||||
4 0 obj <<
|
||||
/Length 48
|
||||
>>
|
||||
stream
|
||||
q
|
||||
BT
|
||||
1 0 0 1 50 50 Tm
|
||||
/TT3 20 Tf
|
||||
(\000) Tj
|
||||
ET
|
||||
Q
|
||||
endstream
|
||||
endobj
|
||||
5 0 obj <<
|
||||
/Type /Font
|
||||
/Subtype /TrueType
|
||||
/BaseFont /BQGUTS+SymbolMT
|
||||
/Encoding /MacRomanEncoding
|
||||
/FirstChar 0
|
||||
/FontDescriptor 6 0 R
|
||||
/LastChar 165
|
||||
/Widths [600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 460]
|
||||
>>
|
||||
endobj
|
||||
6 0 obj <<
|
||||
/Type /FontDescriptor
|
||||
/Ascent 1005
|
||||
/AvgWidth 600
|
||||
/CapHeight 669
|
||||
/Descent -220
|
||||
/Flags 32
|
||||
/FontBBox [0 -220 1113 1005]
|
||||
/FontFile2 7 0 R
|
||||
/FontName /BQGUTS+SymbolMT
|
||||
/ItalicAngle 0
|
||||
/MaxWidth 1042
|
||||
/StemV 0
|
||||
/XHeight 577
|
||||
>>
|
||||
endobj
|
||||
7 0 obj <<
|
||||
/Filter [/ASCII85Decode /FlateDecode]
|
||||
/Length 3706
|
||||
/Length1 4260
|
||||
>>
|
||||
stream
|
||||
GhS,n%9-;,qRcL92t-8a"!RfAnYR\<0Hb,-#Qt7RTK.keJBjh<$j2)._CC_E[@B>pNCgJ<Og`uNZ9LKV
|
||||
D_Tn=/Z%0Mc<8maFlMbb[;)jig+6$([Vdj=^\;=cEBS[BIWN8N^RokfTDQ=rk&tUoe,o0e$Oj,NG&Jbl
|
||||
/TES@$t"4F'VW&^!'Ia%ZaDq_`uINo:[>T`ePZ8m&.Q(UGafp7>f&\.%2fb@bXF@`XhALk<*usVY3YRG
|
||||
jb^S\);;cnU\<Y+G%nY!]d5u`HaWO;*?2VbF=j4iSJtb,qSWQQ2EjT2Z2e;F<ps<p+?384"^^@g0L?p>
|
||||
i9VD3:Lk>dP_FGeq=_bT+2mE<c@0BQlQt9[@JI$cWZ!K'^D,^iN77Hplbp;P)<0c:".*VW?]Ic32]Abn
|
||||
Y"56H#h_$R3_1a#gof\63\K$(Tn[:??t!YZLs@!qWt"lWdrTMr@?!@:OZ>KN3O:P4USh9gf&^M8fUna\
|
||||
')R6M3LP;lF#(450>u_,[&01r5<#nnVk^rc^5i*$q2h&&^*G(_ee%Z:eV9<UPaM8t&34Q4+9^O4!XFEE
|
||||
Wt8q[!\8ph[1J]Q"D.uAM\*rB!],KD0j->jPJh]#<YRuTaGEk!0dWWeYZeCBU_o'E@,Nlcl#S*"0T@?6
|
||||
&s:%?:aRt'FZ:n.6Q,EFUIe?939:^.X_Um\\WSA_%WKp!VC=qL7n?IC.J#,$7AsMV$51eU7]o)T63QRZ
|
||||
+ei_Qm3X-iau'T\W7uNbU8-HPWSQZMjiM(*$`\'q5b9C4r7o^O=#NQccg-Za2M$Cgl_'@8LnJaYa:7@g
|
||||
JAr&^gpH=gDMQ];m%<]Hk%GEN\sj\@(p\%a\&``RCi@/X;0I&jV(')POqb85B`^k7fq'NtRl5RsPTdTV
|
||||
VH@E!'Wfr-%Ik3.>TqjRYf0r;$?!,WfENk-'mA8GEt:VIBaX"q:GDOYATPbN8"0F(`t2t5[`m2Of(<=e
|
||||
@_X7md4G!,(AftI2:`]%U4&#EJ@2PQ#aOhX<KZeoNJkc^n<hGfb#Dk`R=6h9k-TJ/YAlg6J2iHkM3f`X
|
||||
"RMSUTVA)G'4J^jU.NF$N/H'O.5@;u,;2GR7V!mgQ!i9U\Z0Mr)Pl'<fX-[1%'(V[G;)$uNl>i9r`5E2
|
||||
hZB4uVm0N8!`2Z^qrt=h4icF\Ed4^44=:_6oTa*N1bWCUD30YZq\G]W6R31W@736c5&en2T`Fm!_=(e8
|
||||
4pN#`@u4i[XWXT=^k7^XgL)Zci%ie*\-:08M3&'#TU9hO!N+eek=K\6D?^@6;$%-a!SDq4%f&>P,*WXp
|
||||
Kj2t$/pJ?G_4T\)OH)EJKM`qT+4WS@'faTr/MIU*o9K4`Qjg`akM\jS'E1a=P'uCAp5M,/*`;rgX)_W,
|
||||
b_)2-K^^ZXKmM(_T;]u*;)?]Rl3lnS0Fb][J5O&fn"?cj6mBg2O$:U1_Z*ZgWs:<hn`VcTO&1DTe3Fg4
|
||||
MjgF1'8]#bQV+WTqSGhh<:*6X#qY:I"15s/cj)WeMT9*8]F8FE3GB][ODee6mA5U6>+nEaM)d]lM7QNs
|
||||
J2ZE'N8C^f4('kIHl*oUh73#)[.QqBo.WYrOV1P]DC3QJ6f^H%/GU*icsu\q2Mi`cI-,#^[[!Cm(I`dh
|
||||
Bm:bJ<39.Z@kR:oK_`j/XP'6f<^A*LKKETmIbjjn+!H0f4+Nu34qAmN%A1HQ#\W'HHqc$J0ud=YLG0+0
|
||||
KNQ?*dQh[tX^iXo+Kpq>3CM^I?]jgA>WRouTM+N)g.FG@(Ca2p#3fQBRf3u6/7s(6Oo:.X?uN=EfgkC-
|
||||
XSTo+QWq@Eic];KpBc&8qjn2e^rm!>GqZpVm-1`!]Md!T9@P;2V]%f[M`JK]UWJ61N2IFeeH`.[E]Oe]
|
||||
M9pmcgPum5L*n^">4u9V&A4$'qA,[k]5SHJ`V;WL;t)#:`8kV%9d++H5\=MTD^#Q$)Y'?/a]?h_qT367
|
||||
k9(X/(a6pSatQ;pS@[s%[$ts046Z`nS.=![3f5;Y1'=+9)I(9&C^"%bDIZsg2g^efL-<ZPYRha^mrFXC
|
||||
k%_F9gbpe#4jC[a]uPQF*Tq)*-+k<ciJ71epbRY8K?5h!i&$)iK@kf`g+XM"pE0`/=+*qsoFW;S_XGR4
|
||||
N+9Qn#^+NS3_Ji%4sW.5!i6%pITR-<Tnh+=7s$pt_0i$jo62ij9if,LfeiCZ>7=$sou+se8M`?:!P$(_
|
||||
%:7me#8uY%ClDVp#G;P&koF7eWbsQuS7E^i%P-[Z."tnY"%MMVDO=t^>^BLsM1hNq0X(_^=A2+t+8Z,q
|
||||
FGbq9/+BiCq#$Z#B58B5%c7S*aDkW;H8iiM7\./bN9gp"_2GsqHH7qSO5)M!D<rqBEHMd`Vl'O7P/\tb
|
||||
'inRl\t:$qDdac9OZNT!kV6bd[t[\.Ek]G(mnS8Z/;HkT!M:_e^.15df)"sCRn?>2(DP-/EUF9WB$Vrs
|
||||
=cdRDbPak)G1I)tHF&i]h=PEYN:aKVWDc\A-RTcF-RH^O`Q!^cJ`djrODgJd4d(uq;7LFfd@p]%QG(B/
|
||||
?GZ+Z'!eMbl6qfc=-FtG>#BA6<LVKpVKH.-(o:+Y/]a:FZD;kUPGJh)XE3?JVbM>-auOma7%\PR3g"rG
|
||||
fo.F,HWln5;M[iK/(NHmI_3XTqZZ"hX5p:HfReJV`l?so%VNp`\MHdRQ4\O3VqR&]'Z:.H9$*03FsUG&
|
||||
BeCebbO04JC?o,JS&oJi(Z[*BasT+sTRF0u\dDF$Ae[Ut,3WX72-MuD6OMt:p`Bn^Tugf$DjHm+X'?#'
|
||||
\htEu(:7jUVVZGVm:R%ja)Bo7=%Z32DbjR^Br'X9^SL4uF'U4PCY8$o4`E!tWqQ4gdI`'Y7>Ff.CNR2C
|
||||
V3((X;UQc:U5Hl*q<DU<ek/Pn>Ud/Xf6Zq&1AhJ1lS/o^A6=W;'9HXhr:M\qXH]2b\(<MiQid7u4U9H<
|
||||
;YidQ6%71J'M3+[;IX_\T5`nfAR)+YFEMH_=>laRU3S$AN"r$W4paAlaV[s=L0BJMmjg^^Ci4j*P\*%?
|
||||
2+gQ-a)<N[ptC%JcSEY+rs-=HOO&><OlMFA$sCRl5auM211"`E^H>RK(*tV0.hSH^cP1dYe*.eZo".8r
|
||||
6LH[&3+2TU(3Aea(DgQWc"??nGD*'EKS7cXkDIV!1mnQa>)<2iW(3&1>aA&tcm6;k-0*03103rrqDD`>
|
||||
,%co9&rilSm;9fL8c9ajQAF>TPT=n+0$3PU7!%[mT0Pj+7H:];9UT/I@O<"a;%qET=Hol+Pr6DnYAdY>
|
||||
1[%9`*"kZ@8tA>FC;oC>'Z'3>ZhaW+'N37mX7YB6APkCO@`q0NA-+p1]m)b/LUh6dW,M>*@jf@e!NupS
|
||||
UouCa-%4'.f.^N2UqV0,+=4D;;s=e;5acC)0=k2T9?4R]-#"&Q#SubL'm5XQfS[.2?-;C?SbD"o7H]Mo
|
||||
Gm&L<)W;QV*ju..5(H]-'!0V:8Wd4e4T9,Qa77i&%_s''8+3Ur[GhpdiI?CklZEEJLMpjto.c%Yn34j*
|
||||
7Z>.Y#c*Bh7;8&+j7fBC`_($*(J:#2a%E&<FKAI-ZY/*UA5:9&-^e1!\0S>A93**_!f7kQgjq\ea3^_D
|
||||
0Fn71Y?30k#`t0V8<6RAeuW_(WB"fX"6E2$c(7@%%.a)E2pRt<_jj\PCinU_dEtGh7VP;%*7]JgRqd[i
|
||||
\5q)HLt'eYC#-@dY04<=jCm<Q^jkL3FUK/RSJGj6HW.tr-2#?>r=<q87AB~>
|
||||
endstream
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000015 00000 n
|
||||
0000000068 00000 n
|
||||
0000000131 00000 n
|
||||
0000000284 00000 n
|
||||
0000000384 00000 n
|
||||
0000000946 00000 n
|
||||
0000001206 00000 n
|
||||
trailer <<
|
||||
/Root 1 0 R
|
||||
/Size 8
|
||||
>>
|
||||
startxref
|
||||
5021
|
||||
%%EOF
|
||||
@ -14439,5 +14439,13 @@
|
||||
"firstPage": 1,
|
||||
"lastPage": 1,
|
||||
"type": "eq"
|
||||
},
|
||||
{
|
||||
"id": "issue17333",
|
||||
"file": "pdfs/issue17333.pdf",
|
||||
"md5": "3af896c003dea994c58ab4a875d59829",
|
||||
"rounds": 1,
|
||||
"lastPage": 1,
|
||||
"type": "eq"
|
||||
}
|
||||
]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user