рдпрд╣рд╛рдВ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ (рдЕрдиреБрд╢рдВрд╕рд┐рдд) рдпрд╛ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ:
EMG8 -рдХреИрдореНрдмреНрд░рд┐рдЬ рдПрд╕реЗрдВрдЯреЗрд▓ рдЧреЛрд▓реНрдб рдореИрдереНрд╕ 8-рдмреА 117.pdf
рд╡рд┐рдиреНрдпрд╛рд╕:
рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? (рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЛрдбрд╝реЗрдВ)
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреАрдбреАрдПрдл рд░реАрдбрд░ рдкрд░ рдпрд╣ рдареАрдХ рд╣реИ:
рдХрд┐рд╕реА рджрд░реНрд╢рдХ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ (рдпрджрд┐ mozilla.github.io/pdf.js рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд╛рдЗрдЯ рдкрд░ рдпрд╛ Firefox/Chrome рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):
рд╡рд░реНрддрдорд╛рди рдЬреАрдердм рдкреЗрдЬ рд╡реНрдпреВрдЕрд░: https://mozilla.github.io/pdf.js/web/viewer.html
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:
рд╣рдордиреЗ рдкреАрдбреАрдПрдл рдХреЗ рднреАрддрд░ рдлреЛрдВрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ "рдЯрд╛рдЗрдореНрд╕ рдиреНрдпреВ рд░реЛрдорди рдкреАрдПрд╕" рд╣реИ, рдЗрд╕реЗ "рдЯрд╛рдЗрдореНрд╕ рдиреНрдпреВ рд░реЛрдорди" рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред
рдХреЛрдИ рдХрдВрд╕реЛрд▓ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХреЛрдИ рдЕрдиреНрдп рджреГрд╢реНрдпрдорд╛рди рд╕рдВрдХреЗрдд рдЬреИрд╕реЗ рдЧреБрдо рд╕реАрдПрдордПрдкреА рд╣реИрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдореЗрдВ PDF рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рд╡реНрдпрд╛рдкрдХ рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА
рдкреАрдбреАрдПрдл рдПрдХ рд╣реА рдлреЛрдВрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реЙрдиреНрдЯ LULQLP+TimesLTStd-Roman
рдХреЛ рдиреМ рдмрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╣реА FontDescriptor рдФрд░ рдПрдХ рд╣реА рдПрдореНрдмреЗрдбреЗрдб CFF рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
core/evaluator.js рдореЗрдВ PartialEvaluator.prototype.preEvaluateFont()
рдореЗрдВ рдПрдХ рдлрд╝реЙрдиреНрдЯ рд╣реИрд╢ рдЧрдгрдирд╛ рд╣реИред рдпрд╣ рд╣реИрд╢ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, ToUnicode рдФрд░ Width рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкреАрдбреАрдПрдл рдореЗрдВ рдХреБрдЫ рдлреЛрдВрдЯ рд╕рдорд╛рди рд╣реИрд╢ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╕рдорд╛рди рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЪреМрдбрд╝рд╛рдИ рднреАред рдХреЗрд╡рд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ FirstChar рдФрд░ LastChar рднрд┐рдиреНрди рд╣реИрдВред рдЕрдЧрд░ рдлреЛрдВрдЯ рдХреЛ рд╕рдорд╛рди рд╣реИрд╢ рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдлрд╝реЙрдиреНрдЯ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдУрдкрди рдЯрд╛рдЗрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ?
рдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯрд╛ рдкреАрдбреАрдПрдл рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореВрд▓ рдкреАрдбреАрдПрдл рд╕реЗ рджреЛ рдлреЛрдВрдЯ рд╣реИрдВ
рдореБрджреНрджрд╛10665_reduced.pdf
core/evaluator.js рдореЗрдВ
PartialEvaluator.prototype.preEvaluateFont()
рдореЗрдВ рдПрдХ рдлрд╝реЙрдиреНрдЯ рд╣реИрд╢ рдЧрдгрдирд╛ рд╣реИред рдпрд╣ рд╣реИрд╢ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, ToUnicode рдФрд░ Width рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкреАрдбреАрдПрдл рдореЗрдВ рдХреБрдЫ рдлреЛрдВрдЯ рд╕рдорд╛рди рд╣реИрд╢ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╕рдорд╛рди рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЪреМрдбрд╝рд╛рдИ рднреАред рдХреЗрд╡рд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ FirstChar рдФрд░ LastChar рднрд┐рдиреНрди рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдзрдиреНрдпрд╡рд╛рдж; рдЗрд╕рдиреЗ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛!
рдЕрдЧрд░ рдлреЛрдВрдЯ рдХреЛ рд╕рдорд╛рди рд╣реИрд╢ рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдлрд╝реЙрдиреНрдЯ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдУрдкрди рдЯрд╛рдЗрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ?
рдХреБрдЫ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЙрддреНрдкрдиреНрди рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдорд╛рди рдлреЛрдВрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ preEvaluateFont
рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рд▓реЛрдб/рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ред рдЗрд╕рд▓рд┐рдП loadFont
hash
es рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдЧрд╛, рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб/рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЧрдП рдлрд╝реЙрдиреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рдкрд░ рдЯрд┐рдХрд╛ рд╣реИ рдХрд┐ hash
es рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА/рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЙрд╕ рдХреЛрдб рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХреБрдЫ рдмрдЧ рд╣реИрдВред
рдпрд╣ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИ рдорджрдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдкреАрдбреАрдПрдл рдПрдХ рд╣реА рдлреЛрдВрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реЙрдиреНрдЯ
LULQLP+TimesLTStd-Roman
рдХреЛ рдиреМ рдмрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╣реА FontDescriptor рдФрд░ рдПрдХ рд╣реА рдПрдореНрдмреЗрдбреЗрдб CFF рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИредcore/evaluator.js рдореЗрдВ
PartialEvaluator.prototype.preEvaluateFont()
рдореЗрдВ рдПрдХ рдлрд╝реЙрдиреНрдЯ рд╣реИрд╢ рдЧрдгрдирд╛ рд╣реИред рдпрд╣ рд╣реИрд╢ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, ToUnicode рдФрд░ Width рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкреАрдбреАрдПрдл рдореЗрдВ рдХреБрдЫ рдлреЛрдВрдЯ рд╕рдорд╛рди рд╣реИрд╢ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╕рдорд╛рди рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЪреМрдбрд╝рд╛рдИ рднреАред рдХреЗрд╡рд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ FirstChar рдФрд░ LastChar рднрд┐рдиреНрди рд╣реИрдВред рдЕрдЧрд░ рдлреЛрдВрдЯ рдХреЛ рд╕рдорд╛рди рд╣реИрд╢ рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдлрд╝реЙрдиреНрдЯ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдУрдкрди рдЯрд╛рдЗрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ?рдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯрд╛ рдкреАрдбреАрдПрдл рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореВрд▓ рдкреАрдбреАрдПрдл рд╕реЗ рджреЛ рдлреЛрдВрдЯ рд╣реИрдВ
рдореБрджреНрджрд╛10665_reduced.pdf