package Ġcn . yi ig ux ing . plugin . fig let Ċ Ċ import Ġcn . yi ig ux ing . plugin . fig let . FIG let . Layout .* Ċ import Ġcom . github . dt mo . j fig let . Fig Font Ċ import Ġcom . github . dt mo . j fig let . Fig Font Reader Ċ import Ġcom . github . dt mo . j fig let . Layout Options Ċ import Ġjava . io . InputStream Reader Ċ Ċ object ĠF IG let Ġ{ ĊĊĠĠĠ Ġconst Ġval ĠDEFAULT _ FONT Ġ= Ġ" G ra ff iti " ĊĊĠĠĠ Ġval ĠFEATURE D _ FONT S : ĠList < String > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠDEFAULT _ FONT , ĊĠĠĠĠĠĠĠ Ġ" Rect angles ", ĊĠĠĠĠĠĠĠ Ġ" Sl ant ", ĊĠĠĠĠĠĠĠ Ġ" Standard ", ĊĠĠĠĠĠĠĠ Ġ" ANSI ĠShadow " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġfonts : ĠList < String > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" 1 Row ", ĊĠĠĠĠĠĠĠ Ġ" 3 - D ", ĊĠĠĠĠĠĠĠ Ġ" 3 D ĠDiag onal ", ĊĠĠĠĠĠĠĠ Ġ" 3 D - ASCII ", ĊĠĠĠĠĠĠĠ Ġ" 3 x 5 ", ĊĠĠĠĠĠĠĠ Ġ" 4 Max ", ĊĠĠĠĠĠĠĠ Ġ" 5 ĠLine ĠOb lique ", ĊĠĠĠĠĠĠĠ Ġ" Ac rob atic ", ĊĠĠĠĠĠĠĠ Ġ" All ig ator ", ĊĠĠĠĠĠĠĠ Ġ" All ig ator 2 ", ĊĠĠĠĠĠĠĠ Ġ" Alpha ", ĊĠĠĠĠĠĠĠ Ġ" Alphabet ", ĊĠĠĠĠĠĠĠ Ġ" AM C Ġ 3 ĠLine ", ĊĠĠĠĠĠĠĠ Ġ" AM C Ġ 3 ĠLiv 1 ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠA AA 0 1 ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠN ek o ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠR azor ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠR azor 2 ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠSl ash ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠSlider ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠTh in ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠT ubes ", ĊĠĠĠĠĠĠĠ Ġ" AM C ĠUnt itled ", ĊĠĠĠĠĠĠĠ Ġ" ANSI ĠShadow ", ĊĠĠĠĠĠĠĠ Ġ" Ar rows ", ĊĠĠĠĠĠĠĠ Ġ" ASCII ĠNew ĠRoman ", ĊĠĠĠĠĠĠĠ Ġ" Avatar ", ĊĠĠĠĠĠĠĠ Ġ" B 1 FF ", ĊĠĠĠĠĠĠĠ Ġ" Banner ", ĊĠĠĠĠĠĠĠ Ġ" Banner 3 - D ", ĊĠĠĠĠĠĠĠ Ġ" Banner 3 ", ĊĠĠĠĠĠĠĠ Ġ" Banner 4 ", ĊĠĠĠĠĠĠĠ Ġ" Bar b wire ", ĊĠĠĠĠĠĠĠ Ġ" Basic ", ĊĠĠĠĠĠĠĠ Ġ" Be ar ", ĊĠĠĠĠĠĠĠ Ġ" B ell ", ĊĠĠĠĠĠĠĠ Ġ" Ben jamin ", ĊĠĠĠĠĠĠĠ Ġ" Big ĠCh ief ", ĊĠĠĠĠĠĠĠ Ġ" Big ĠMoney - ne ", ĊĠĠĠĠĠĠĠ Ġ" Big ĠMoney - nw ", ĊĠĠĠĠĠĠĠ Ġ" Big ĠMoney - se ", ĊĠĠĠĠĠĠĠ Ġ" Big ĠMoney - sw ", ĊĠĠĠĠĠĠĠ Ġ" Big ", ĊĠĠĠĠĠĠĠ Ġ" Big fig ", ĊĠĠĠĠĠĠĠ Ġ" Binary ", ĊĠĠĠĠĠĠĠ Ġ" Block ", ĊĠĠĠĠĠĠĠ Ġ" Blocks ", ĊĠĠĠĠĠĠĠ Ġ" B lo ody ", ĊĠĠĠĠĠĠĠ Ġ" B ol ger ", ĊĠĠĠĠĠĠĠ Ġ" Br aced ", ĊĠĠĠĠĠĠĠ Ġ" B right ", ĊĠĠĠĠĠĠĠ Ġ" Broad way ĠKB ", ĊĠĠĠĠĠĠĠ Ġ" Broad way ", ĊĠĠĠĠĠĠĠ Ġ" Bubble ", ĊĠĠĠĠĠĠĠ Ġ" Bul b head ", ĊĠĠĠĠĠĠĠ Ġ" Cal ig raph y ", ĊĠĠĠĠĠĠĠ Ġ" Cal ig raph y 2 ", ĊĠĠĠĠĠĠĠ Ġ" Cal vin ĠS ", ĊĠĠĠĠĠĠĠ Ġ" Cards ", ĊĠĠĠĠĠĠĠ Ġ" Cat walk ", ĊĠĠĠĠĠĠĠ Ġ" Ch ise led ", ĊĠĠĠĠĠĠĠ Ġ" Chunk y ", ĊĠĠĠĠĠĠĠ Ġ" Coin st ak ", ĊĠĠĠĠĠĠĠ Ġ" Col a ", ĊĠĠĠĠĠĠĠ Ġ" Co loss al ", ĊĠĠĠĠĠĠĠ Ġ" Computer ", ĊĠĠĠĠĠĠĠ Ġ" Cont ess a ", ĊĠĠĠĠĠĠĠ Ġ" Contrast ", ĊĠĠĠĠĠĠĠ Ġ" Cos mike ", ĊĠĠĠĠĠĠĠ Ġ" C raw ford ", ĊĠĠĠĠĠĠĠ Ġ" C raw ford 2 ", ĊĠĠĠĠĠĠĠ Ġ" Cr azy ", ĊĠĠĠĠĠĠĠ Ġ" Cr icket ", ĊĠĠĠĠĠĠĠ Ġ" Cur s ive ", ĊĠĠĠĠĠĠĠ Ġ" Cy ber large ", ĊĠĠĠĠĠĠĠ Ġ" Cy ber medium ", ĊĠĠĠĠĠĠĠ Ġ" Cy bers mall ", ĊĠĠĠĠĠĠĠ Ġ" C yg net ", ĊĠĠĠĠĠĠĠ Ġ" D AN C 4 ", ĊĠĠĠĠĠĠĠ Ġ" D ancing ĠFont ", ĊĠĠĠĠĠĠĠ Ġ" Decimal ", ĊĠĠĠĠĠĠĠ Ġ" Def ĠL ep par d ", ĊĠĠĠĠĠĠĠ Ġ" Delta ĠCor ps ĠPri est Ġ 1 ", ĊĠĠĠĠĠĠĠ Ġ" Di amond ", ĊĠĠĠĠĠĠĠ Ġ" Di et ĠCol a ", ĊĠĠĠĠĠĠĠ Ġ" Digital ", ĊĠĠĠĠĠĠĠ Ġ" Do h ", ĊĠĠĠĠĠĠĠ Ġ" Do om ", ĊĠĠĠĠĠĠĠ Ġ" DOS ĠRe bel ", ĊĠĠĠĠĠĠĠ Ġ" Dot ĠMatrix ", ĊĠĠĠĠĠĠĠ Ġ" Double ĠShort s ", ĊĠĠĠĠĠĠĠ Ġ" Double ", ĊĠĠĠĠĠĠĠ Ġ" Dr ĠP ep per ", ĊĠĠĠĠĠĠĠ Ġ" D Wh ist led ", ĊĠĠĠĠĠĠĠ Ġ" E ft i ĠChe ss ", ĊĠĠĠĠĠĠĠ Ġ" E ft i ĠFont ", ĊĠĠĠĠĠĠĠ Ġ" E ft i ĠIt alic ", ĊĠĠĠĠĠĠĠ Ġ" E ft i ĠP iti ", ĊĠĠĠĠĠĠĠ Ġ" E ft i ĠRobot ", ĊĠĠĠĠĠĠĠ Ġ" E ft i ĠWall ", ĊĠĠĠĠĠĠĠ Ġ" E ft i ĠWater ", ĊĠĠĠĠĠĠĠ Ġ" Electron ic ", ĊĠĠĠĠĠĠĠ Ġ" El ite ", ĊĠĠĠĠĠĠĠ Ġ" Epic ", ĊĠĠĠĠĠĠĠ Ġ" F ender ", ĊĠĠĠĠĠĠĠ Ġ" Filter ", ĊĠĠĠĠĠĠĠ Ġ" Fire ĠFont - k ", ĊĠĠĠĠĠĠĠ Ġ" Fire ĠFont - s ", ĊĠĠĠĠĠĠĠ Ġ" F lipped ", ĊĠĠĠĠĠĠĠ Ġ" Flow er ĠPower ", ĊĠĠĠĠĠĠĠ Ġ" Four ĠT ops ", ĊĠĠĠĠĠĠĠ Ġ" Fr ak tur ", ĊĠĠĠĠĠĠĠ Ġ" Fun ĠFace ", ĊĠĠĠĠĠĠĠ Ġ" Fun ĠF aces ", ĊĠĠĠĠĠĠĠ Ġ" F uzzy ", ĊĠĠĠĠĠĠĠ Ġ" Ge org i 1 6 ", ĊĠĠĠĠĠĠĠ Ġ" Ge org ia 1 1 ", ĊĠĠĠĠĠĠĠ Ġ" Ghost ", ĊĠĠĠĠĠĠĠ Ġ" Gh oul ish ", ĊĠĠĠĠĠĠĠ Ġ" G len yn ", ĊĠĠĠĠĠĠĠ Ġ" G oo fy ", ĊĠĠĠĠĠĠĠ Ġ" Go th ic ", ĊĠĠĠĠĠĠĠ Ġ" Grace ful ", ĊĠĠĠĠĠĠĠ Ġ" Gradient ", ĊĠĠĠĠĠĠĠ Ġ" G ra ff iti ", ĊĠĠĠĠĠĠĠ Ġ" G reek ", ĊĠĠĠĠĠĠĠ Ġ" Heart ĠLeft ", ĊĠĠĠĠĠĠĠ Ġ" Heart ĠRight ", ĊĠĠĠĠĠĠĠ Ġ" H en ry Ġ 3 D ", ĊĠĠĠĠĠĠĠ Ġ" Hex ", ĊĠĠĠĠĠĠĠ Ġ" H ier og lyph s ", ĊĠĠĠĠĠĠĠ Ġ" H ol ly wood ", ĊĠĠĠĠĠĠĠ Ġ" Horizontal ĠLeft ", ĊĠĠĠĠĠĠĠ Ġ" Horizontal ĠRight ", ĊĠĠĠĠĠĠĠ Ġ" IC L - 1 9 0 0 ", ĊĠĠĠĠĠĠĠ Ġ" Imp ossible ", ĊĠĠĠĠĠĠĠ Ġ" Inv ita ", ĊĠĠĠĠĠĠĠ Ġ" I some tric 1 ", ĊĠĠĠĠĠĠĠ Ġ" I some tric 2 ", ĊĠĠĠĠĠĠĠ Ġ" I some tric 3 ", ĊĠĠĠĠĠĠĠ Ġ" I some tric 4 ", ĊĠĠĠĠĠĠĠ Ġ" Italic ", ĊĠĠĠĠĠĠĠ Ġ" Iv rit ", ĊĠĠĠĠĠĠĠ Ġ" Jack y ", ĊĠĠĠĠĠĠĠ Ġ" J az mine ", ĊĠĠĠĠĠĠĠ Ġ" J er us ale m ", ĊĠĠĠĠĠĠĠ Ġ" JS ĠBlock ĠLet ters ", ĊĠĠĠĠĠĠĠ Ġ" JS ĠBr acket ĠLet ters ", ĊĠĠĠĠĠĠĠ Ġ" JS ĠCap ital ĠCur ves ", ĊĠĠĠĠĠĠĠ Ġ" JS ĠC urs ive ", ĊĠĠĠĠĠĠĠ Ġ" JS ĠSt ick ĠLet ters ", ĊĠĠĠĠĠĠĠ Ġ" K ata k ana ", ĊĠĠĠĠĠĠĠ Ġ" K ban ", ĊĠĠĠĠĠĠĠ Ġ" Keyboard ", ĊĠĠĠĠĠĠĠ Ġ" Kn ob ", ĊĠĠĠĠĠĠĠ Ġ" K onto ĠSl ant ", ĊĠĠĠĠĠĠĠ Ġ" K onto ", ĊĠĠĠĠĠĠĠ Ġ" L arry Ġ 3 D Ġ 2 ", ĊĠĠĠĠĠĠĠ Ġ" L arry Ġ 3 D ", ĊĠĠĠĠĠĠĠ Ġ" LCD ", ĊĠĠĠĠĠĠĠ Ġ" Lean ", ĊĠĠĠĠĠĠĠ Ġ" Letters ", ĊĠĠĠĠĠĠĠ Ġ" L il ĠDev il ", ĊĠĠĠĠĠĠĠ Ġ" Line ĠBlocks ", ĊĠĠĠĠĠĠĠ Ġ" Linux ", ĊĠĠĠĠĠĠĠ Ġ" Locker gnome ", ĊĠĠĠĠĠĠĠ Ġ" Mad rid ", ĊĠĠĠĠĠĠĠ Ġ" Mar quee ", ĊĠĠĠĠĠĠĠ Ġ" Max four ", ĊĠĠĠĠĠĠĠ Ġ" Mer lin 1 ", ĊĠĠĠĠĠĠĠ Ġ" Mer lin 2 ", ĊĠĠĠĠĠĠĠ Ġ" Mi ke ", ĊĠĠĠĠĠĠĠ Ġ" Mini ", ĊĠĠĠĠĠĠĠ Ġ" Mirror ", ĊĠĠĠĠĠĠĠ Ġ" Mnemonic ", ĊĠĠĠĠĠĠĠ Ġ" Mod ular ", ĊĠĠĠĠĠĠĠ Ġ" M orse ", ĊĠĠĠĠĠĠĠ Ġ" M orse 2 ", ĊĠĠĠĠĠĠĠ Ġ" M os cow ", ĊĠĠĠĠĠĠĠ Ġ" Ms he brew 2 1 0 ", ĊĠĠĠĠĠĠĠ Ġ" M uzzle ", ĊĠĠĠĠĠĠĠ Ġ" N ancy j - F ancy ", ĊĠĠĠĠĠĠĠ Ġ" N ancy j - Impro ved ", ĊĠĠĠĠĠĠĠ Ġ" N ancy j - Under lined ", ĊĠĠĠĠĠĠĠ Ġ" N ancy j ", ĊĠĠĠĠĠĠĠ Ġ" N ipp les ", ĊĠĠĠĠĠĠĠ Ġ" NS cript ", ĊĠĠĠĠĠĠĠ Ġ" NT ĠG reek ", ĊĠĠĠĠĠĠĠ Ġ" NV ĠScript ", ĊĠĠĠĠĠĠĠ Ġ" O 8 ", ĊĠĠĠĠĠĠĠ Ġ" Oct al ", ĊĠĠĠĠĠĠĠ Ġ" O gre ", ĊĠĠĠĠĠĠĠ Ġ" Old ĠBanner ", ĊĠĠĠĠĠĠĠ Ġ" OS 2 ", ĊĠĠĠĠĠĠĠ Ġ" P ator jk 's ĠChe ese ", ĊĠĠĠĠĠĠĠ Ġ" P ator jk - He X ", ĊĠĠĠĠĠĠĠ Ġ" P aw p ", ĊĠĠĠĠĠĠĠ Ġ" Pe aks ĠSl ant ", ĊĠĠĠĠĠĠĠ Ġ" Pe aks ", ĊĠĠĠĠĠĠĠ Ġ" P eb bles ", ĊĠĠĠĠĠĠĠ Ġ" Pep per ", ĊĠĠĠĠĠĠĠ Ġ" Po ison ", ĊĠĠĠĠĠĠĠ Ġ" P uff y ", ĊĠĠĠĠĠĠĠ Ġ" P uzzle ", ĊĠĠĠĠĠĠĠ Ġ" Py ramid ", ĊĠĠĠĠĠĠĠ Ġ" Ram m stein ", ĊĠĠĠĠĠĠĠ Ġ" Rect angles ", ĊĠĠĠĠĠĠĠ Ġ" Red ĠP ho enix ", ĊĠĠĠĠĠĠĠ Ġ" Rel ief ", ĊĠĠĠĠĠĠĠ Ġ" Rel ief 2 ", ĊĠĠĠĠĠĠĠ Ġ" Reverse ", ĊĠĠĠĠĠĠĠ Ġ" R oman ", ĊĠĠĠĠĠĠĠ Ġ" Rot 1 3 ", ĊĠĠĠĠĠĠĠ Ġ" Rot ated ", ĊĠĠĠĠĠĠĠ Ġ" Rounded ", ĊĠĠĠĠĠĠĠ Ġ" Row an ĠCap ", ĊĠĠĠĠĠĠĠ Ġ" Ro zz o ", ĊĠĠĠĠĠĠĠ Ġ" Run ic ", ĊĠĠĠĠĠĠĠ Ġ" Run yc ", ĊĠĠĠĠĠĠĠ Ġ" S ĠB lood ", ĊĠĠĠĠĠĠĠ Ġ" Santa ĠC lar a ", ĊĠĠĠĠĠĠĠ Ġ" Script ", ĊĠĠĠĠĠĠĠ Ġ" Ser if cap ", ĊĠĠĠĠĠĠĠ Ġ" Shadow ", ĊĠĠĠĠĠĠĠ Ġ" Sh im rod ", ĊĠĠĠĠĠĠĠ Ġ" Short ", ĊĠĠĠĠĠĠĠ Ġ" SL ĠScript ", ĊĠĠĠĠĠĠĠ Ġ" Sl ant ĠRel ief ", ĊĠĠĠĠĠĠĠ Ġ" Sl ant ", ĊĠĠĠĠĠĠĠ Ġ" Slide ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠC aps ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠI some tric 1 ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠKeyboard ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠPo ison ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠScript ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠShadow ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠSl ant ", ĊĠĠĠĠĠĠĠ Ġ" Small ĠT eng war ", ĊĠĠĠĠĠĠĠ Ġ" Small ", ĊĠĠĠĠĠĠĠ Ġ" Soft ", ĊĠĠĠĠĠĠĠ Ġ" Speed ", ĊĠĠĠĠĠĠĠ Ġ" Spl iff ", ĊĠĠĠĠĠĠĠ Ġ" St ace y ", ĊĠĠĠĠĠĠĠ Ġ" Stamp ate ", ĊĠĠĠĠĠĠĠ Ġ" Stamp ate l lo ", ĊĠĠĠĠĠĠĠ Ġ" Standard ", ĊĠĠĠĠĠĠĠ Ġ" Star ĠStri ps ", ĊĠĠĠĠĠĠĠ Ġ" Star ĠW ars ", ĊĠĠĠĠĠĠĠ Ġ" St ellar ", ĊĠĠĠĠĠĠĠ Ġ" St fore k ", ĊĠĠĠĠĠĠĠ Ġ" Stick ĠLet ters ", ĊĠĠĠĠĠĠĠ Ġ" Stop ", ĊĠĠĠĠĠĠĠ Ġ" Str aight ", ĊĠĠĠĠĠĠĠ Ġ" Strong er ĠTh an ĠAll ", ĊĠĠĠĠĠĠĠ Ġ" Sub - Zero ", ĊĠĠĠĠĠĠĠ Ġ" Sw amp ĠLand ", ĊĠĠĠĠĠĠĠ Ġ" Sw an ", ĊĠĠĠĠĠĠĠ Ġ" S weet ", ĊĠĠĠĠĠĠĠ Ġ" Tan ja ", ĊĠĠĠĠĠĠĠ Ġ" T eng war ", ĊĠĠĠĠĠĠĠ Ġ" Term ", ĊĠĠĠĠĠĠĠ Ġ" Test 1 ", ĊĠĠĠĠĠĠĠ Ġ" The ĠEdge ", ĊĠĠĠĠĠĠĠ Ġ" Th ick ", ĊĠĠĠĠĠĠĠ Ġ" Th in ", ĊĠĠĠĠĠĠĠ Ġ" THIS ", ĊĠĠĠĠĠĠĠ Ġ" Th orn ed ", ĊĠĠĠĠĠĠĠ Ġ" Three ĠPoint ", ĊĠĠĠĠĠĠĠ Ġ" Ticks ĠSl ant ", ĊĠĠĠĠĠĠĠ Ġ" Ticks ", ĊĠĠĠĠĠĠĠ Ġ" Tiles ", ĊĠĠĠĠĠĠĠ Ġ" T inker - To y ", ĊĠĠĠĠĠĠĠ Ġ" T omb stone ", ĊĠĠĠĠĠĠĠ Ġ" Train ", ĊĠĠĠĠĠĠĠ Ġ" Tre k ", ĊĠĠĠĠĠĠĠ Ġ" T sal agi ", ĊĠĠĠĠĠĠĠ Ġ" T ub ular ", ĊĠĠĠĠĠĠĠ Ġ" Tw isted ", ĊĠĠĠĠĠĠĠ Ġ" Two ĠPoint ", ĊĠĠĠĠĠĠĠ Ġ" Un ivers ", ĊĠĠĠĠĠĠĠ Ġ" USA ĠFlag ", ĊĠĠĠĠĠĠĠ Ġ" Vars ity ", ĊĠĠĠĠĠĠĠ Ġ" W avy ", ĊĠĠĠĠĠĠĠ Ġ" We ird ", ĊĠĠĠĠĠĠĠ Ġ" W et ĠLetter ", ĊĠĠĠĠĠĠĠ Ġ" Wh im sy ", ĊĠĠĠĠĠĠĠ Ġ" W ow " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġfont Cache : ĠMutable Map < String , ĠFig Font > Ġ= ĠHashMap () ĊĊĠĠĠ Ġenum Ġclass ĠLayout ( val ĠdisplayName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDEFAULT (" Default "), ĊĠĠĠĠĠĠĠ ĠFULL (" Full "), ĊĠĠĠĠĠĠĠ ĠF IT TED (" Fit ted "), ĊĠĠĠĠĠĠĠ ĠCONT ROL LED _ SM USH ING (" Control led ĠSm ush ing "), ĊĠĠĠĠĠĠĠ ĠUN IVER SAL _ SM USH ING (" Universal ĠSm ush ing ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate ( ĊĠĠĠĠĠĠĠ Ġtext : ĠString , ĊĠĠĠĠĠĠĠ Ġfig Font : ĠFig Font , ĊĠĠĠĠĠĠĠ Ġhorizontal Layout : ĠLayout Ġ= ĠLayout . DEFAULT , ĊĠĠĠĠĠĠĠ Ġvertical Layout : ĠLayout Ġ= ĠLayout . DEFAULT , ĊĠĠĠĠĠĠĠ Ġdirection : ĠFig Font . Print Direction Ġ= ĠFig Font . Print Direction . LEFT _ TO _ RIGHT ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrenderer Ġ= ĠFixed Fig let Renderer ( fig Font ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Sm ush ing Ġ= Ġget Horizontal Sm ush ingMode ( horizontalLayout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Sm ush ing Ġ= Ġget Vertical Sm ush ingMode ( verticalLayout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsm ush Mode Ġ= Ġh Sm ush ing Ġor Ġv Sm ush ing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint Direction Ġ= Ġdirection ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrenderer . render Text ( text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFixed Fig let Renderer . get Horizontal Sm ush ingMode ( layout : ĠLayout ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT Ġ-> Ġhorizontal Sm ush ingMode ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFULL Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF IT TED Ġ-> ĠLayout Options . HORIZONTAL _ FIT TING _ BY _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCONT ROL LED _ SM USH ING Ġ-> ĠLayout Options . HORIZONTAL _ SM USH ING _ BY _ DEFAULT Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . HORIZONTAL _ EQUAL _ CHARACTER _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . HORIZONTAL _ UNDER SCORE _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . HORIZONTAL _ HI ER ARCH Y _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . HORIZONTAL _ OP POS ITE _ PAIR _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . HORIZONTAL _ BIG _ X _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . HORIZONTAL _ H AR DBL ANK _ SM USH ING ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUN IVER SAL _ SM USH ING Ġ-> ĠLayout Options . HORIZONTAL _ SM USH ING _ BY _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFixed Fig let Renderer . get Vertical Sm ush ingMode ( layout : ĠLayout ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT Ġ-> Ġvertical Sm ush ingMode ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFULL Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF IT TED Ġ-> ĠLayout Options . VERTICAL _ FIT TING _ BY _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCONT ROL LED _ SM USH ING Ġ-> ĠLayout Options . VERTICAL _ SM USH ING _ BY _ DEFAULT Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . VERTICAL _ EQUAL _ CHARACTER _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . VERTICAL _ UNDER SCORE _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . VERTICAL _ HI ER ARCH Y _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . VERTICAL _ HORIZONTAL _ LINE _ SM USH ING Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Options . VERTICAL _ VERTICAL _ LINE _ SM USH ING ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUN IVER SAL _ SM USH ING Ġ-> ĠLayout Options . VERTICAL _ SM USH ING _ BY _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Fig Font ( font Name : ĠString ): ĠFig Font Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= ĠF IG let :: class . java . getResource AsStream ("/ fonts /$ font Name . f lf ") ĊĠĠĠĠĠĠĠ Ġreturn ĠInputStreamReader ( inputStream , ĠChar sets . UTF _ 8 ). use Ġ{ ĠFig Font Reader ( it ). read Font () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġget Fig Font ( name : ĠString ): ĠFig Font Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfont Cache . get Or Put ( name ) Ġ{ ĠF IG let . load Fig Font ( name ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġclear Font Cache ( reserved : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreserved Font Ġ= Ġreserved ?. let Ġ{ Ġfont Cache [ it ] Ġ} ĊĠĠĠĠĠĠĠ Ġfont Cache . clear () ĊĠĠĠĠĠĠĠ Ġreserved Font ?. let Ġ{ Ġfont Cache [ reserved ] Ġ= Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtrim Art Text ( art Text : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( art Text . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfig Lines Ġ= Ġart Text . lines () ĊĠĠĠĠĠĠĠ Ġif Ġ( fig Lines . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġart Text ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġend Ġ= Ġfig Lines . size ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġfig Lines . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fig Lines [ i ]. isBlank ()) Ġstart ++ Ġelse Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġfig Lines . indices . reversed ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fig Lines [ i ]. isBlank ()) Ġend -- Ġelse Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfig Lines . sub List ( start , Ġend ). join ToString ("\ n ") ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ