)Ej(*dZddlmZmZddlmZddlmZddlm Z m Z m Z m Z m Z mZmZmZddlmZddlZdd gZejd ZGd d eZd ZdZddZedkr,ddlZejeejdddSdS)zCFF to CFF2 converter.)TTFontnewTable)makeOutputFileName)T2WidthExtractor) TopDictIndex FDArrayIndexFontDict buildOrdertopDictOperatorsprivateDictOperatorstopDictOperators2privateDictOperators2)BytesIONconvertCFFToCFF2mainzfontTools.cffLibceZdZdZdZdS)_NominalWidthUsedErrorc|Nselfothers LC:\PYTHON\MyICR_Suite\python\Lib\site-packages\fontTools/cffLib/CFFToCFF2.py__add__z_NominalWidthUsedError.__add__ c|rrrs r__radd__z_NominalWidthUsedError.__radd__rrN)__name__ __module__ __qualname__rrrrrrrs2rrc |jd}t|dr|jnd}|j}|j}|r d|Dn3t|dr"t|jdr |jjgng}|D].}||\}} | /|g|zD]} | D]}} | j } t| x} } | d} n#t$rYnwxYw | d}n#t$rYnwxYwg| t| |d<~d }t}|D]}||\}} |j } | || n't|drt!|jdgng}t#|||d} ||n#t$rt| d kr| d d vrd }| d}t)|t*s J|| d}|dkr|jn|j}||z }|dkr|n|}||j }|| dd<t| d kr | d d vt| d ks J| | dYnwxYw| r | ddkr| |r|d |_|jj}t9d|}|jD]}||||_|d}t|dr|j}nd}t=t>}||_ ||_!t|dstEx}|_d|_#|j|_||j_$|j}|j%r ||j&_$n||_$tO}|(d ||||_t=tR}|GtTD]?}|d } | |vr1| |j+vr|j+| =t|| rtY|| @n|j}t=tR}|D]}|(d t[|j+D]3} | |j vr(|j+| =t|| rtY|| 4|j}tTD]^}|d } | |vrP| t[|j+vr|j+| =t|| rtY|| _t\D]F}|d } | dkr| |vr1| |j+vr|j+| =t|| rtY|| Gt_}!|0|!|d |!1d| |!|d dS)aConverts this object from CFF format to CFF2 format. This conversion is done 'in-place'. The conversion cannot be reversed. This assumes a decompiled CFF table. (i.e. that the object has been filled via :meth:`decompile` and e.g. not loaded from XML.)rFDArrayNc:g|]}t|jdgS)Subrs)getattrPrivate).0fds r z%_convertCFFToCFF2../s&<<>J>>2[[^^.0J.>.>y**IDXd" ,.*,<,<..+%j19 ) g,,!## 6O(O(Ow<<1$$$g$$$ KKNNNNN# &  wr{i// KKMMM( %%'''CI 0t%677K !!4    "C!nGw ""o  *++GGM 1G 7I & &-2$0NN2'/%1&-#)  , *3:K ( 0 0")K ::x   &#$9::  "- 2 2Ahn,,k111'/4{C002 S111/#$9:: 2 2H   T " " "H,113344 / /hn,, (-x--/#..."*K- 2 2Ahn,,d;#6#;#;#=#=>>>>'/4{C002 S111 2"&&Ah )    g  go%%OC(w$$ &%%% 99DKKfTK***IIaLLLMM$tM,,,,,s7C55 DDD D)(D)G$$C8KKc||dj}|d=t||tdx}|d<||_dS)NzCFF CFF2)rXrvr)fontrXtables rrrsF v, C V c4   #F+++EDLEIIIrc|ddl}|jdd}ddl}|dd}|ddd |d d d dd|dddd|d}|dddd|dddd||}ddlm}||j rd n |j rd!nd"#ddl }|j }|j |s(|d$||jst%|d%d&'n|j} t'||jd(} t+| t,d)| | | dS)*z%Convert CFF OTF font to CFF2 OTF fontNrr/zfonttools cffLib.CFFToCFF2zUpgrade a CFF font to CFF2.) descriptioninputz INPUT.ttfzInput OTF file with CFF table.)metavarhelpz-oz--outputz OUTPUT.ttfz3Output instance OTF file (default: INPUT-CFF2.ttf).)r~defaultrz--no-recalc-timestamprecalc_timestamp store_falsez:Don't set the output font's timestamp to the current time.)destactionrF)requiredz-vz --verbose store_truezRun more verbosely.)rrz-qz--quietzTurn verbosity off.) configLoggerDEBUGERRORINFO)levelzNo such file '{}'Tz-CFF2) overWritesuffix)recalcTimestamp recalcBBoxesz Saving %s)sysargvargparseArgumentParser add_argumentadd_mutually_exclusive_group parse_args fontToolsrverbosequietosr}pathisfileerrorformatoutputrrrrloginfosave) argsrrparser loggingGroupoptionsrrinfileoutfilerys rrrs[ | x|OOO  $ $$1%F +K   B    I  666FFL k,5J i 3H%%G&&&&&&L!/Sww'-/SwwVIII ]F 7>>& ! !9 (//77888~ 6T'BBBB ^ &'*BQV W W WDTHH IIgr__main__r/r) __doc__fontTools.ttLibrrfontTools.misc.cliToolsrfontTools.misc.psCharStringsrfontTools.cffLibrrr r r r r riorlogging__all__ getLoggerr Exceptionrrvrrr rexitrrrrrs,,,,,,,,666666999999                     v &g*++Y---D@@@@F zJJJ CHTT#(122,       r