[ANN] TTF-parser 0.0.1
[1/7] from: rebol-list2:seznam:cz at: 10-Sep-2003 0:41
Hello rebol-list,
here is first version of my TTF-parser (which I use to explore true
type fonts)
write %ttf-parser.r decompress #{
789CAD5B7B73E3360EFF5BFE145CEF74EAB497F891ECA3F6747AD93CBAB9C936
99D8FBE8657237B244DB6AF4F049B413B7D7EF7E00484AA41EB6F7A6DE3696C8
1F4810044180A0EF2EDEDD5CB3FB1683CF2410211FB2F644CC0E976E9AF1B44D
E5E7AE80E21F0EC77C7938E8F58EBBFDE361AF37ECF7BE1FC037417E712380C4
49CCE9F5134FB3208987AC77D43BEA53D165109A88F7894570BA128B2485BE93
D0E799ECF6E629E6A981B90BE60B911905BF70EE9BEF13776ABE7ECCDCB9D9C7
ED2A5D261994FC3149D82AF68147E1C63E7B5AB8E2DB8C057116F89C890567DF
1D09316333E038FB9348CF9228E2B100527A7526009A879BE5824939B120837E
04F39268197221FB733AD8FAD5B7115565AB94B36006EF61C8A69CB9D3103AB3
1881AE33CE66DFC1678EEC8874E509106336ECC806E5DF5992B22881D67C2EDC
20CCA0A9642518B22C49B0A7591286C91334099C8541FC3894B40B2196C36EF7
E9E9E9280ABC34C992993802AEBB62B34CE6A93BDB748580FF66FFCE96DC8307
6FD11B1CF98947E45218EF834C24E9C690ECB51BCF57B6B0279BA5F97A96C482
0498975C44C0FB902561B0768F7C771DF87FCFF8EFB11B1D79BFB71E5A2DE0E1
70463A9372D7EF4E83D84D3720302A646EF6C8DA7A9286EC9B361B7DE3AED224
753D9ABB6F04CF043DB55AADD13C4CA66EC8D66E1AA0D8B3610B6418B9C8CE90
AD874C444BC559ABF5F1F2F3CDDDF9907D1CBFBFB99B0CD9BD972C376CCD062C
7B0C96AC83F0046647F0394F5FE0B364ED055B1F3CB43E5EDFFCF2F390E55427
8AAAE548BA1C4B053C80294FD9CB3FDEF6E4E74FF623434D585B65F783FEC99B
93B7C7AF4FDEB2EF5104AAF71CFAE6527EFE7CB837795B3F1C80242FAFBE5C9C
0F9D5A8E52FE5B12C4B0FC1DA7D3302A24EB82960B94C1016B1FB5F702532728
B5C141CB213E503268492601AEFC7BC5C75F2A27E0ACFFC3E13FDCF8B0FFC39B
41F778D83F19F6DE489909E876ABEC80CD7BD63F847F3FF44EBABD21FCABA75C
3FB41C1C905210A52F1545D96328E561C821C47C0E62629DE3C19BD76FD96113
D37FA2606BE6FBDDAF938B426DFB7BA9EDD9FBD3BB2ACDCE11D8FCDBDCF7078D
BC6FE3FCF2FAF4E7712DFB3C9EBA19EFE21F6C56190454CA87D6EDE9F8ECF47A
3CB9BBC2D5778F0DB10EAEED03AD6031358476052DC07990724F1A31E09920C2
9D6B2D1C75966902261A8A80D35598C473D621BAB305F71EC7AB085BCE6B92D9
2CE3C22A0A793C170B59D449F992C77E3789C30D1AE9AEE62063F7D8A9D53093
8D31D90049854CE19045EE2367C9F437E0FB05329DB7A2AAA661E23DBE60FDD7
2D670106B34AE0ACD5A60C8F3330C7777C1DE8774F757FEAFFB6CA046D75880A
DD79860FAB3810D92D4F2F2202834116DCC7C728F18359209F9F3F04D4D6467D
3F7F709FE5BBFC8E5C6F2C3660AD55FF720E8081F781EC2E809DF079925C27DE
A5B4CE50469B2C580DF7521B6CB4D20EACC0C87D5ED60C325E453F234D26BB7C
BE05FB26F40BEE42C92A2D5E23700802C14B20555A42FF137AD6CF93A720446F
C4221C8342E12628DF2E57318DEE9CCF34E0AAD8D28DD2B170BDC78B90A3D4F3
B2E0777E33BB325D0083B918902582BCFC9C2F51F1723181006B9407C534E5E9
CDCC1CE3AE090425BE15994D637829D752E7EDC2CC6025C906359C3C9FAEE767
0B37FD1CF8927A957DE628DBB3D0CD32558075F9FB2C23E702391BAFA6999706
4BF105256617FD5A2DFA722397AA8DB30A97B0482A2DE685BFD6157EA96FC06A
57A4C123072FADA0D725B7A86B6A1966976E14849B7CA44B3746871565107E8C
032FF1F91DB85ABC5F2D1A548B8EAB452758E47A8B4F309757E75298631ECA75
28657D092645E0845CE1729465D76EA908672039CD3C8ECE6B5E70CECB25D741
CC7F76977A16632211F9AB2490EFE11930790BEBC71CA155363074098C9D3B64
4B30AD43365BCE235DB500DBB7DDF4995C5B0C1BBCBAFEDA8D3D4E6AA7AD5700
0A3E83F9F3F93B0E7E643C57A51495948A71E55C3C0B3534CF4DB91887C992DF
0572368D92153115715007CFB073C6127DFF812ACD95B488C473CD284DB6B185
309B1A448F3C8DB78B269E28EFD871D453411D538057A1C6B8EF8E7B49EA1399
52793682CD1D621AF003130A4A402E2C93E6917566691215B5B48F1D1C397663
280ADDBB3352A4A729770D96C04A8B1A960A0906C20D03EF349ECB4D87222D88
85B8B9E4F2C2C922F01EC1C24BB306CBE099FBB701C43F6A9E3FF008CDCEC940
595CFB3DAFEFDBD5FD7C133385E9456EDDDEC56358A820AA621AEC12120A2EAD
D55494E767E98575C2F854CCEE2598ED5F48A7F02D1FDAF37BB2B6F8986FCFC8
B93445F876E62E0DCC269A26E158DA35C4CD5C8F68D03EB89EE0E919C5C0DA87
C0B09F0E07A8FD3479E49FF3B64851B52D1FF33498490EF25181F343F175D785
9859078438AE977F80B7DC975EFF08A33CA5C5AC7FD403272C5B24A05C1D5841
5A8FF143FE99AACA60B17A0B322BC35215309E6EA451C41309B32A45FC7811CC
C4503738A21E58EE5032240F68F6F2EE99ED7382EF9600CC6F696FF410175746
AE283437A775008F77FC3F2BA0F1996CA5E5B4516FDAF0A5458DCEB93C86808A
25E809C4666DDCF1DBF405E53EA80C16A24B0885E877317CC6A31D2885472885
C105BF430D84C8461DD818BB4E1AA90C2BD1FC4225796CC804BEE38AC23A74CC
DAF41544E0D0822B8DB3863538CC367DA13DA0A16331AE6328865529C6B47342
5C20E373D5E2CDB83B68CB2F8A2260E7F093A78CE11105B89F9EC1D9E8668954
C0AD21B5B5606DE6B4D16F4993907D72C31597D5D8FAC5BBF309B47E012BC3F7
41DAD340803473C95DBCBB3EABA9D6233670E33A5CE6810D82D16A186E567A22
4034F3D48D68D2DC0C85364F031F945C0824C1A102790C214CACF51B483CEEE3
014F074837D83A3FA0E9F2A3D274F9E0DF7BDC9C35DC01DAF24BE9CAF564FC1E
4A70EB73419B1629074D0F7D636E608705C0D9A709BB2DB8BD3DBB4691C1177B
5508F2D3F9872F500A264704C0173B970CA8EDAB68732DB52EC76940A17B6BA9
7B65445B4643B464E4B99B5C3452BBA5F1C7C30E08D620CCC2C2AEDEDD68AD56
6AAD304842E800C780D4444612F8F28F5797BDCBE3B3CB57608222771E78D2B8
E2F66E1F0414DD513CB52590C5FEE954C12032622FD9B1798E6232AAA2B2ADA0
3C5E53F2C0A30BA39A2280FAAA4D7315C5094D5479556560793C8851FAE85D20
588F4D51F93A01F80C1003835DE923E58861659FC9EDDCAEC6AA8C0D0EFBAF18
E82E4FD7B0F23AAAB6777084FB4AA9DB6AE829F92BE32AD128B1D96378FA2AB7
0319AA677F03D6B01023FFBA0E2B216CD18EB74A53D02826AD1D1277E07F6709
FE9260F7A43D114A64863E390C1A0C81CF74C310EAC3BEEF1CD0F62F6D2B2D01
29686724BB032AB993B1CE8F2010E614086211E9BAA61707ECD5626EF2538EFF
D3BBA3A1D575297D3DF310232E2AE5084DD7D0C1410263D1D2267A8DB89C6FD8
0F390A2B5A12C7B7A12B50CA57E75B40DADBDA0AD267DD5B41C8EE56C098A426
43E69D30297A664B560B1C420917D644CCA61BC1335279296AA77CEE542777EC
09C1283BD4A6F550CF14488B43A408CB0AC1CD0DD06C388A6F05AE1C03CBF2EE
6BFDF00A891EF6D375ECD5D275ED0819DACE941BA6B749193BB18E3401DAF468
0544EA6EC9D9A64CC0164055496DB4E1939741285B79C65EA3B5C77FB5D6A2E5
AF60124383A67C1EC4E800E4EB138D25A6BDF418C83651E648B74DBCB3B24235
88897AD50AB5D7C059995F69109B003457EC10563C1B85A52554694AA90422AC
A360A90E4EF6848190D23AA491FAECF4F4835A46B23D59F420BF4E72C80A76F2
7B009D252B50665AA2F231F0CF790812097C0A35E4427ED0644E11DCACF3B6B6
0DB98B199851C6E7D4FA97C1561242E651CE2EA815F5EC021771508EECE44F8E
1644C9A6178042408D1025B82DF586409B5007F993169921E5F2D8F2E95B1764
0FF9934E09681408E10288BC22E8F5E5B2219B09DDA1A75816E348BB28B7B07B
8F959372F4354C1AAAB595CD02479B085AE22268F4EA78DDCE86CD85D6EAAD2C
2810F42FC1D8216ABACD07A6DD2BE2DA4310D6FCEF62C480023BF2013BD6D1F3
957F9A4230C580C35E4EBE1EB291595B69575A9E9FAC260EEAD6836536610569
1D6A4614D3D78C51F2DD0630C65D8611A27678F910B4241F4CA327FF8E547E4C
FA0E1547C3DE10CB2E4667F7968F0DE096AF7C5B3AD12065307C6B2CEC56D218
95308460F5710D55D5C7358AAA2EAE515479555158C98F5866A99167720F4A65
52F3CBD6B7A923C9C84329C82268353F23C16A2BAC541B216B993EB373C11499
BD501FF3EECB8BFCB37F3C837DD9F10C9D2215217D696C58DB2D527DD5089300
45FAAF1950D29C7A889D26DC03B947AB329DD85C5F4A31360375DAB11961A522
9B61E5F4E4B62ECD94E5165C358DB94378566A730FAC4A77CA95B89FAE611BB6
AED1F9A2154D144EA3D179920DBA76B6B2CA2062EC046623A6C869560E2010A1
B29CB575E5BCE70ED0AFFB80BEDC18D718B6B4B50356CA9FEE846DE7AD9263DD
DDDE76A09587DD81C9D344B5382B576B19D57ECFB0A2085569DCCA0123294229
B1BB0768B00FE8781FD089CDF84989EF22515CAFC466EEB849CD4BE9E426989D
61AE47D949E72D9822ADBB05A4D3BDCDEB5367ABB7207402BB41D6A594F63E28
3DB9D232C9D4C5BD763364A6DBF42A3ADA0B0527EB00E2C313A475E38D742094
DB62F80FD842E12E68570C1C35D65E635A241BB659EED96A02ED8751BAA872CC
0E85E56376E314186B4B7356AE2E4F57B9BE3453E5EA72B2BEBE919AFC7D23B0
92D2AF471A59FEEA1132024A89FF9DA095656A767D17E1644DAB950B053587F0
88AB5E32F89AAD149BB0B752CA1A4A85C52660408D5D613D550289358935E17C
8EA32B0DE56AE3806D75F9190F204D95AFB4AFC24589AC42A10B6385EC290820
B40541B936D3A72099636969B154AA63F344D23A3BD48849CD4163CCBEB34EC0
AD7119546AF0BB402CBFC148E76C48222F553610CC8CDC8600BF4513D075CE2D
BCB09197803C5C7940A5F6A1D0084546DBC721C36C3A7F8B6F5DBC532973ED78
0C290D9A3E6DD3077D322BA24F168A633E2727B4053BE8E56702FB1DD7E5FD4B
8686E6E9442376EFE33A9B62BF533B9BA6EEF04ED97E5BA3A43CBF5327B5F451
65CDE732B221EA27E4460F5B70295ADB0228AD6C1D901E736071D0635FB02D4D
7FE538A3725A612A554EDDB2888CB38FAF340CD8B86D18E8B683DC44F18A915C
F858D8B52C75B9D2BCCBA4B723B27439A27ABD6907AEB8F154714C6497E625A8
7A88752FAA01625E95DAD54A8D8F546A44238A44955AD825312A1D6D0F8E7A6D
ADAF6426C051CA0FE0731A7D43CB4A50E40BBF76DDD75850A3A9DC784B0DAD64
3FE2BC2EDE71F25F55E0E268B1ACCA2603FA700E3F5E48D73B8A92BC517215CD
DBF3A5CE4B8780FBF5682C973D737CD84C699978A1A8F89A58D8FD646F9F86A6
60AD71CB0D2F572CF873759B25A0A5D6E54A7D29AEA13ABFB75057695C9E6B40
1417EA9ADACF2FD9D981E56B15A09142A232AA0AFC2DC5CBF6BFFEDE66FF65F2
6ED9C303B318A25B7A2AB5AF88D85B23DC937CD55CE1336FA818ACB0D765E2FC
A29FC4E12F4A2C891957FF6A11C56540592DDD8DA201E37AE0D7B8A8486C6A16
DE206A8D145D7143CFD87A99B5A9B262BB04529D1457695361FD98A3E5602E62
E76F3A64654BF3DE7EF9F2655BDDD260C67540FA418A4DD972D215397E165ADD
84427CCB2143534ABFD36511A16F4F5A4DB69C6046BF4EC41B973F316A9E169D
71ED12EC0095D3BAD4C6167BEEF6093AD2E7F37952E06B38C089D107704A226C
CB7442C48CB3495474952EA7A218D63AAE6E570259C9180DA94DD725DAB225BA
E5B6774BF2D6796D4B231DB1D707D6BBF8A06B95723F40A8BCE45EB327D9B3A3
7E90457148DDCD25F623EBAB4DE69EECBDB237D6DE857DA1BD9756DB424B0BDB
8835D6210E97E64DA31EA4B784CBEE7F75B5488B693C0000
}
--
Best regards,
rebOldes mailto:[oliva--david--seznam--cz]
[2/7] from: antonr:iinet:au at: 11-Sep-2003 1:00
Hi Oldes,
Looks interesting. I'll just post a bug report
for the first two fonts I tried:
%/c/windows/fonts/outlook.ttf
%/c/windows/fonts/wingdng3.ttf
### Vertical Device Metrics table 340 1504 ; outlook.ttf
### character to glyph mapping 1844 354 ; outlook.ttf
** Script Error: segCount has no value
** Where: switch
** Near: parse/all v [
USHORT (append tmp v n: v / 2)
USHORT (append tmp v)
USHORT (append tmp v)
USHORT (append tmp v)
(
endCount: make block! n
startCount: make block! n
idDelta: make block! n
idRangeOffset: make block! n
)
segCount [
USHORT (append endCount v)
]
USHORT
segCount [
USHORT (append startCount v)
]
segCount [
SHORT (append idDelta v)
]
segCount [
USHORT (append idRangeOffset v)
]
v:
(
repend/only tmp endCount
repend/only tmp startCount
repend/only tmp idDelta
repend/only tmp idRangeOffset
repend tmp glyphIdArray
)
]
Anton.
[3/7] from: rebol-list2:seznam:cz at: 11-Sep-2003 12:17
Hello Anton,
Wednesday, September 10, 2003, 5:00:13 PM, you wrote:
AR> Hi Oldes,
AR> Looks interesting. I'll just post a bug report
AR> for the first two fonts I tried:
AR> %/c/windows/fonts/outlook.ttf
AR> %/c/windows/fonts/wingdng3.ttf
AR> ### Vertical Device Metrics table 340 1504 ; outlook.ttf
AR> ### character to glyph mapping 1844 354 ; outlook.ttf
AR> ** Script Error: segCount has no value
AR> ** Where: switch
AR> ** Near: parse/all v [
AR> USHORT (append tmp v n: v / 2)
AR> USHORT (append tmp v)
AR> USHORT (append tmp v)
AR> USHORT (append tmp v)
AR> (
AR> endCount: make block! n
AR> startCount: make block! n
AR> idDelta: make block! n
AR> idRangeOffset: make block! n
AR> )
AR> segCount [
AR> USHORT (append endCount v)
AR> ]
AR> USHORT
AR> segCount [
AR> USHORT (append startCount v)
AR> ]
AR> segCount [
AR> SHORT (append idDelta v)
AR> ]
AR> segCount [
AR> USHORT (append idRangeOffset v)
AR> ]
AR> v:
AR> (
AR> repend/only tmp endCount
AR> repend/only tmp startCount
AR> repend/only tmp idDelta
AR> repend/only tmp idRangeOffset
AR> repend tmp glyphIdArray
AR> )
AR> ]
AR> Anton.
>> Hello rebol-list,
>>
>> here is first version of my TTF-parser (which I use to explore true
>> type fonts)
>> rebOldes mailto:[oliva--david--seznam--cz]
Yes... I found it as well (that was because I closed the variables in
the ttf object context but since I was working still in same console
window I didn't found that some of them are still not replaced)
this one is fixed:
write %ttf-parser.r decompress #{
789CAD1B6B73DB36F233F52B10653A95DBB3F588F3A8349D9EE347E21BA7F658
CAA3E7F1DD502424B1E6434742B2955CFFFBED2E0012E043526FAAB41609EC2E
168BC5621FD0EDF9DBEB2B76D762F0990422E443D69E88D9E1D24D339EB6A9FD
CC15D0DCEF1F8EF9F270D0EBBDE8F607C3FEF1F0F8CD8F8361AF4730BFBA11C0
C449CCE9F5134FB3208987AC77D43B1A50D345109A10EF130BE1642516490A83
27A1CF3339EEF563CC5303E636982F446634FCCAB96FBE4FDCA9F9FA3173E7E6
1837AB749964D0F26D92B055EC038FC28D7DF6B870C5F7190BE22CF039130BCE
7E381262C666C071F607A19E2651C46301A8F4EA4C00681E6E960B2605C5820C
C611CC4BA265C8851CCFE920F5CBEF23EACA562967C10CDEC3904D3973A7210C
66310243679CCD7E80CF1CD911E9CA1320C66CD89104E5DF5992B228016A3E17
6E1066402A5909862C4B141C69968461F2082481B330881F86127721C472D8ED
3E3E3E1E4581972659321347C075576C96C93C75679BAE10F0DFECDFD9927BF0
E02D7A83233FF1085D0AE37D908924DD1892BD72E3F9CA16F664B3345F4F9358
9000F396F308781FB2240CD6EE91EFAE03FFEF19FF1ABBD191F7B575DF6A010F
8733D29994BB7E771AC46EBA0181512373B307D6D68B3464DFB5D9E83B779526
A9EBD1DA7D277826E8A9D56A8DE661327543B676D300C59E0D5B20C3C8457686
6C3D64225A2ACE5AAD8F179FAF6FCF86ECE3F8FDF5ED64C8EEBC64B9616B3660
D943B0641D044F6075049FF3F4193E4BD69EB1F5C17DEBE3D5F5AFEF862CC73A
56582D47E2E5B0D4C00358F2943DFFF6A6273F7FB09F196AC2DA6ABB1BF48F5F
1FBF79F1EAF80DFB1145A046CF415F5FC8CF1FF777266FEBFB0390E4C5E597F3
B3A153CB51CA7F4F8218F6BFE3741A6685685DD07281323860EDA3F65EC03408
4A6D70D072880F940C9A9249803BFF4EF1F197CA0938EBFF74F80F373EECFFF4
7AD07D8156AAF75ACA4CC0B05B65076CDEB1FE21FCFBA977DCED0DE15F3DE6FA
BEE5E0849482287DA928CA1E53294F434E21E6731013EBBC18BC7EF5861D3631
FD070AB666BDDFFE36392FD4B6BF97DA9EBE3FB9ADE2EC9C81CDBFCD7D7FD0C8
FB36CE2FAE4EDE8D6BD9E7F1D4CD7817FF205965105029EF5B3727E3D393ABF1
E4F61277DF1D12621DDCDB075AC162228476052DC05990724F1A31E09940843B
D75A38EA2CD3044C343401A7AB3089E7AC4378A70BEE3D8C571152CE7B92D92C
E3C26A0A793C170BD9D449F992C77E3789C30D1AE9AEE620637738A845984962
4C1220A990291CB2C87DE02C99FE0E7C3F43A6732AAA6B1A26DEC333D67FD572
166030AB08CE5A1DCAF03803737CCBD7817EF7D4F027FEEFAB4CD0518750A13B
CFF061150722BBE1E97944C0609005F7F1314AFC6016C8E7A70F01D1DAA8EFA7
0FEE937C97DF91EB8DC506AC353CC3D104F6F9967B3737E71F3443725180A3F7
811C3F80A3F169925C25DE8534D7D046A72E9811F7425B7034DB0E6CC9C87D5A
D6CC3A5E45EF1027933C3CDD80C113FA058FA5649516AF11780881E02520D55A
82FE278CAC9F278F4188EE898538060DC35351BE5DAC629ADD199F6980CBE28C
375AC7C2F51ECE438ECB90B7055FF9F5ECD2F4090CE662802C21E4ED677C899A
988B090458A34D28A6294FAF67E61C77AD2868F58DC86C1CC36DB9929BC06ECC
0C56926C50C3C9D3C97A7EBA70D3CF812FB157D9678EB23D0DDD2C530DD897BF
CF32F23690B3F16A9A7969B0145F506276D36FD5A62FD772EFDA7056E312764D
8562DEF85B5DE3977A02165D91060F1CDCB6025FB7DCA0AEA97D995DB851106E
F2992EDD183D589441F8310EBCC4E7B7E07BF17EB569506D7A516D3AC626D75B
7C82B5BC3C93C21CF350EE4329EB0BB0310217E412B7A36CBB724B4DB802C949
E671F466F386335E6EB90A62FECE5DEA558C0945E4AF1241BE87A7C0E40DEC1F
738656DBC0D025B07EEE902DC1D60ED96C398F74D7028CE1765B68726D316CF0
EAFA6B37F638A99D36670128F80CD6CFE76F393896F15CB55298526AC69D73FE
24D4D43C37E5621C264B7E1BC8D5345A56C454C4411D3CC3CE195BF4FD07EA34
77D222124F35B334D926B39B4D0DA4079EC6DB45134F94BBEC38EAA9C08E29E2
AB60632008763D497D42532ACF4670DA4390038E6142510AC88565D23CB2CE2C
4DA2A2970EB68323C72686A2D0A33B23857A9272D76009ACB4A861A9906020DC
30F04EE2B93C8528F482E0889B5B2E6F9C2C02EF012CBC346BB00D9EB87F1340
40A4D6F9038FD0EC1C0F94C5B5DFF3FEBEDDDDCF0F3153985EE4D69D5D3C868D
0AA22A96C16E21A1E0D65A4D45797D965E58278C4FC5EA5E80D9FE95740ADFF2
A93DBD276B8B8FF9798D9C4B53846FA7EED280D944D3241C4BBB867033D7231C
B40FAE27787A4A41B1762A300F40D902A29F260FFC734E8B1455DBF2314F8399
E4209F1578431470775D08A2758488F37AFE0DDCE7BE0C034618F6292D66FDA3
1E7865D92201E5EAC00ED27A8C1F72D85457069BD55B90591996BA80F174238D
22A628CCAE14E1C78B6026869AE0884660B987C9103DA0D5CB8767B6130ACE5C
02607E4BBBA787B8B932F24D81DC9CF6013CDEF2FFAC00C767924ACB69A3DEB4
E14B8B1ABD759997808E25E809046B6D3CF1DBF405ED3EA80C36A28F088DE877
317CC6640FB4C223B4C2E482AFD00331B3D10736C6EE93462AC34E34BFD0491E
1B3281EFB8A3B00F1DB3367D051178B8E05BE3AA610F4EB34D5F680F68EAD88C
FB189A61578A319D9C1028C8805D51BC1E77076DF94561059C1C7EF29831CC59
803FEA199C8DAE978805DC1A525B0BD6664E1BFD963409D927375C71D98DD4CF
DF9E4D80FA39EC0CDF07694F0301D2CC2577FEF6EAB4A65BCFD8801BD7C1651E
D82098AD06C3C34A2F0488669EBA112D9A9BA1D0E669E083920B81283855408F
21A689B57E038AC77DCCF874007583D4F9012D971F9596CB0787DFE3E6AAE109
D0965F4A57AE26E3F7D082479F0BDAB44839687AE81B6B03272C009C7E9AB09B
82DB9BD32B14197CB19785203F9D7DF802AD607244007CB133C9803ABE0A9A6B
A975399C0628746F2D75AF0CD196E1116D199988939B466AB734FE98FD80E80D
E22E6CECEAD38DF66AA5D78A8B240865740C909A5049023EFFF6F2A277F1E2F4
E22598A0C89D079E34AE78BCDB998162380AB0B644B6383EA5190C2423189303
9B8915935115A66D05CA0338250FCC6518DD1401D4776D9ABB284E68C2CABB2A
13CB03440CDB476F03C17A6C8ACAD709C06780A018EC4A1F31470C3BFB4C1EE7
763776656C70D87FC9407779BA869DD751BDBD83A3BA71ED6054325786A9C6A7
F570959095E6D26398B39567860CF0B3BF01FFD888F982A31A429538B7A0E3AD
D214D48E499388C81DF8DF59825325D81DA95884629BA1E30E92016BE1334D98
F55F8173E01C908F200D30ED132915672487032C79DCB1CECF2035E61410C422
E2754D578F12A907B560D7797AE4FFF402697675A34A9FD0CC7EC4726A4EECE0
9C8089686903BCC2DE9C47382339CA265A127737A12B50A897675B80B407B615
4827C4B702E14CB6028C4942328CDE0926C5CC6C296AE14278E1C23E89D97423
7846DB408AD52927A7EA648C232130CA0E95673DD4AB02D2E2103DC25643E066
02B41A8EE25B015772C5B2BDFB4A3FBC44A4FBFD541B47B5545B3B47867233E5
9AE9A353C653AC639B05AD6C88DD2D39E0A4E55B00AA0A69431B7E7A1988B496
3568ED8BBF5A6BF134A8C02486064DF93C88D129C8F7221A50AC8DE9399029A2
F292A64DBCB3B24235888946D50AB5D7C459995F69FF9A0068ADD821EC78360A
4B5BA8424AA9044258F962A90E4EF688C191D23AC491FAECF4F483DA46929E6C
BA975FC739C80A4EF73B003A4D56A0CCB445E563E09FF1102412F8147EC88D7C
AFD19C22E059E7B4B64DB98B659A51C6E744FDCB602B0A41E691CF2E502B12DA
055CC4463964277F72B420AAF65B7D0A01358228C16DE93704DA0475903FC586
78CB93CAD76D5DC0DFE74FBA60A0A160F6E780E41511B02FF70B194B581A741B
CBF21B697FE5064EE9B1F2588EF6E2CE50A6ADFC1570746CA0ED2D4247AF8EC9
86F1EDE1B5026F1D5B01C1C012184742A5B619C0327C4540DBA66EADF12E0E0C
50E0433EE0883A6ABEF44F5208A218B0D6CBD1D74336327B2B74A575F9C52271
50A7F39669845DA2D5A519A258B0661825D86D00C6BCCB60A6C9728CDDA0C577
6F5A33F977A4AA63D229A87810F64957F61D3ABBCF72248067B9F251297D411A
60F8C8D8D8ADD42C584D444290F5710C75D5C7310AAB2E8E51587957D158A987
5826A7916DE3E82F9BD226CA72E4FB523443A0D5024C2E95D2D1568792D9055F
8AB69EA98F79C1E559FED93FFCC0B1ECF083324345985E9A0EF6768BF25D356A
2480A2A4D70C502CC81610BBF4B707E41E546589B0B9BF54366C06D4A5C46608
ABBCD80C562E396E1BD22C436E81AB96267708CF2A57EE01AB4A9872B7EDA76B
48C3D635CA195AD140E1F4198327D9A06B5720AB0C228C5D946C8429EA94957C
0142A8CA656D5FB996B903E8B77D80BE5C1B7715B6D0DA0156AA89EE04DBCE5B
A56EBA9BDE7640ABB6BA03262FFDD4C259F557CB88F67B86154550559AAD240D
49114AC5DA3D8006FB00BDD807E8D866FCB8C47751FCAD5762B31EDCA4E6A512
7113985D35AE87B20BC95B608A52ED16205DC26DDE9FBA02BD054217A51B645D
2A53EF03A517575A26598EB8D3AE84AC5E9B9E43477B98E04B1D407C778CB86E
BC913E83724D0C970129141E82F6B8C01F63ED35963AB2619BE55EAB46D0EE16
95802AA973682CA7CE8DCC2EF696D6ACDC5D5EAE727F69A5CADDE5027C3D919A
9A7C2360A54C5F0F6954EEAB195F042815F37702AD2C53B3EBBB880A6BA8562E
09D424D611AE7A71E0CF1CA548C23E4AA91228151649C0841A87C27EEA04146B
116BC2F11C8EAE29D4A675A5C6AF2E3E6302D154F90A7D150A4AC82A280C61EC
903D050188B620A87E66FA1424736C2D6D964A776C6614ADDC9F8698D4240A63
F68395C1B6E66560A9C9EF0262F93545CA93218ABC39D98030334A1102FC168D
407736B7F0C2465E02F2706582499D43726C7DE172EB3C64084DF9B3F8C6C58B
93B27E8E694469D074B64C27EA641143670D8A349D9323DA821DF4F2787FBF74
5B3EBE646868661E1A61F74EB7D918FB65DD6C9CBAE49BB2FDB6464979FEA032
ADF4516DCD39174988C609B931C216B814AD6D0128AD6C1D203DE6804512C7BE
455B5AFE4AD6A2929430952AC76E5948468AE34F1A06246E1B06BAC1200F51BC
3624373E36762D4B5DEE34EF27E9E3882C5D0E51BDB2B403AEB8C554714CE490
E6C5A67A10EBAE53038879FD6917951A1FA9444443148526B5B14B62543ADA1E
1CF5DA5A5FC94C80A39427D0731C7DEBCA2A30E41BBF76DFD7585083546EBCA5
8656AA1771DE17EFC8DC5715B8481B9655D96440E7E0F0E3857465A368C98992
AB685E912F0D5ECAF5ED37A2B15DF6ACD12199D236F14251F135B1B1FBC93E3E
0D4DC15EE3E65AF57C25084B9FCB9DFA865B43777E09A1AED3B809D70051DC8E
6BA29FDF98B323CA572A32234D442D541DF84B89E7ED7FFDBDCDFECBE445B1FB
7B66314457EE54FD5D21B137469C27F9AAB98F675E37315861AFCAC8F9AD3D09
87BF17B12466DCE3AB85286EF6C96EE96714048CBB7E7FC637456453A5F03A50
6BA4F08AEB76C699CBACD39415E724A0EA6AB6AA770AEBA71A2D070B0C3B7FB1
213B5B9AF7F6F3E7CFDBEA360533EEF6D1CF4D6CCC9693AEC8E3B3A0D5B52684
6F3964614A7573BAD421F455488B64CB0966F4DB43BC3EF90B23F2B4DB8C3B94
6000A89D36A4B6B23872B74FA0239D7FCF93FE7F86035C189D795312615B9613
42655C4DC2A27B71391605AF569EBA5D8960256334A536DD73684B4A74656D6F
4AF20A792DA5910ED5EB23EA5D7CD01D49791020A8BCB15E7318D9ABA37E6E45
0148DD0D23F633EBABD3E58E0CBDB237D6A18563A1A197E6DA8296A6B511D6D8
87385D5A370D752FDD24DC76FF03BB7134C2483C0000
}
--
Best regards,
rebOldes mailto:[oliva--david--seznam--cz]
[4/7] from: antonr:iinet:au at: 12-Sep-2003 1:22
Hi Oldes,
That seems to complete successfully for those fonts,
as well as pala.ttf of 479k.
Will you be making a ttf writer as well?
Then we could perhaps make a font editor.
I see there are many variables to consider, though! :)
Anton.
[5/7] from: rebol-list2:seznam:cz at: 12-Sep-2003 0:15
Hello Anton,
Thursday, September 11, 2003, 5:22:57 PM, you wrote:
AR> Hi Oldes,
AR> That seems to complete successfully for those fonts,
AR> as well as pala.ttf of 479k.
AR> Will you be making a ttf writer as well?
AR> Then we could perhaps make a font editor.
AR> I see there are many variables to consider, though! :)
No.. the reason I made this script was to try to understand how ttf
works. I had problems with one font which I wanted to modify in
fontographer so I wanted to see what's going on.
I found that it's too difficult to get the glyphs outlines (so I'm
even not sure if I would be able to use ttf fonts in my rebol/flash
dialect without other tool:(
At this moment i'm not going to spend more time for that script.
oldes
AR> Anton.
>> AR> Looks interesting. I'll just post a bug report
>> AR> for the first two fonts I tried:
<<quoted lines omitted: 6>>
>> this one is fixed:
>> rebOldes mailto:[oliva--david--seznam--cz]
--
Best regards,
rebOldes -----------------[ http://oldes.multimedia.cz/ ]
[6/7] from: antonr:iinet:au at: 17-Sep-2003 14:03
Too hard?
But you look so close to doing it!
I'll have to check this out at some point...
Can you explain where you ran into trouble?
Anton.
[7/7] from: antonr:iinet:au at: 4-Oct-2003 13:46
Oldes,
Your link to the doc in your last-posted ttf-parser
seems broken (you spelt typografy with an 'f').
Here is the fixed link:
http://www.microsoft.com/typography/tt/ttf_spec/ttch02.doc
I see what you mean about the glyphs being difficult.
Anton.
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted