Commit Graph

329 Commits

Author SHA1 Message Date
Eliot Jones
3a025052c9 add test for type 1 cff glyph locations and add missing doc comments 2018-11-19 21:43:22 +00:00
Eliot Jones
8cd05807ca #6 complete parsing of type 2 charstrings. subroutines now eager evaluated from raw bytes 2018-11-19 21:23:21 +00:00
Eliot Jones
6517a6201a #6 more work on type 2 char string, stuck on a bug 2018-11-19 20:41:52 +00:00
Eliot Jones
2c159f71e8 #6 rename some cff classes, change protection levels and start fixing bugs with charstrings which include hints in routine calls 2018-11-18 16:32:28 +00:00
Eliot Jones
530410c996 #6 improve organisation of cff related classes. add failing font test for cff font file. fix bugs with cff parsing 2018-11-18 13:53:43 +00:00
Eliot Jones
8cd2faeb8b #6 use the same base class for both type 1 and cff private dictionaries to enable comparisons and rationalise api 2018-11-17 22:16:27 +00:00
Eliot Jones
8f5c0fc77b #6 fix bugs with vlineto and hlineto and decoding of charsets. dump results of type 2 path decoding to file for visual verification while debugging 2018-11-17 20:21:59 +00:00
Eliot Jones
aa6f55c9ad #6 account for hintmask and cntrmask data when parsing a type 2 charstring 2018-11-17 19:06:21 +00:00
Eliot Jones
936e17b723 #6 add debugging code for inspecting svgs of generated cff glyphs fix small bugs 2018-11-17 16:23:17 +00:00
Eliot Jones
4d18a2478d add charset interface, create class to store cff font data. add the command logic for type 2 charstrings #6 2018-11-17 14:59:58 +00:00
Eliot Jones
7358650b0a add charset parsing for compact font formats #6 2018-11-16 23:32:18 +00:00
Eliot Jones
81935d5cdb tidy up cff font classes and start adding type 2 charstring support for #6 2018-11-16 21:30:59 +00:00
Eliot Jones
946ad1aec6 #10 some tidying for a couple of tokens 2018-11-16 20:08:00 +00:00
Eliot Jones
0f68dfeb19 #10 move tokens to the root namespace for discoverability. upgrade xunit versions. there is a bug with test discovery for stringtokenizertests 2018-11-16 20:00:12 +00:00
Eliot Jones
c72f3796e2 add inkscape document. fix bug with truetype width where no font program present 2018-11-15 22:51:46 +00:00
Eliot Jones
d8bf977842 add tests for another type 1 font file 2018-11-15 21:36:52 +00:00
Eliot Jones
099f270986 add visual verification for type 1 output, currently seems off by some amount, could be font matrix 2018-11-15 20:21:13 +00:00
Eliot Jones
b76cfcee57 fix reading nested array for page content 2018-11-15 20:05:15 +00:00
Eliot Jones
7e1bcf6f64 bug fixes for reading from type 1 fonts. test all pages in documents. use content rather than embedded resources for #4 2018-11-15 19:52:42 +00:00
Eliot Jones
64a35e3217 support other types of callothersubr. calculate bounding rectangle from glyph path 2018-11-14 22:22:51 +00:00
Eliot Jones
b477b3b560 implement more type 1 commands to modify the context 2018-11-13 22:22:24 +00:00
Eliot Jones
904f773525 add code for drawing type 1 glyphs and converting to svg 2018-11-13 20:45:54 +00:00
Eliot Jones
ab9de799f9 more tidy up of api for type 1 fonts 2018-11-01 22:26:10 +00:00
Eliot Jones
1fb2f879d9 prepare type 1 private dictionary for public api. fix typo 2018-11-01 22:08:40 +00:00
Eliot Jones
1d4dc7767d change type1 commands to be static and lazily evaluated and return the command sequences from the parser 2018-11-01 19:34:22 +00:00
Eliot Jones
61e2a0814d add more type1 charstring commands and fix type1 tests 2018-10-30 22:59:21 +00:00
Eliot Jones
d8a4f0f521 create command classes for each of the commands in type 1 charstrings 2018-10-29 22:05:18 +00:00
Eliot Jones
7fab13e877 start parsing private dictionaries for type 1 fonts. subroutines and charstrings left to implement. 2018-10-27 19:45:45 +01:00
Eliot Jones
2a8777a93a fix type 1 font tests and port more parsing logic 2018-10-24 19:11:44 +01:00
Eliot Jones
df0b60c2e1 port type 1 lexer from pdf box and add test data 2018-10-23 20:02:20 +01:00
Eliot Jones
c8c32eab24 fix glyph boxes for an offset glyph index range in true type fornt format 4 cmap table 2018-04-29 19:27:34 +01:00
Eliot Jones
f4db97a998 implement full kerning table loader for true type font 2018-04-29 15:51:27 +01:00
Eliot Jones
2bf4922c47 postscript table load for true type font now uses postscript header table 2018-04-29 15:16:03 +01:00
Eliot Jones
1a213caf26 start adding kerning table as a break from compact font format 2018-04-29 15:15:11 +01:00
Eliot Jones
b51ebfd70c fix a bug where the mediabox being defined on the pages node would throw. a lot more work on parsing compact font format 2018-04-29 14:42:54 +01:00
Eliot Jones
85d1f84965 more compact font format parsing 2018-04-28 19:33:50 +01:00
Eliot Jones
1deefdc987 begin implementing support for compact font format fonts in type 1 font handling 2018-04-28 13:00:43 +01:00
Eliot Jones
1fe54c5f49 add xobjects to pages, fix parsing truetype fonts where the glyphs use the repeat flag. 2018-04-26 22:22:29 +01:00
Eliot Jones
b6585292fb start adding support for reading and applying XObjects 2018-04-21 16:24:37 +01:00
Eliot Jones
787bcd1cd2 create a test document with some rotated text to validate the transformations 2018-04-18 22:34:06 +01:00
Eliot Jones
99674f31e1 use image from another source since gimp positions appear wrong 2018-04-18 21:42:07 +01:00
Eliot Jones
0e844d88df return both glyph and character bounding boxes for each letter, glyph is the actual outline of the letter whereas character is the surrounding space as defined in the pdf 2018-04-18 19:24:10 +01:00
Eliot Jones
e5cfc20b30 missing letters with width less than 1 are now drawn in the visual tests 2018-04-17 23:00:16 +01:00
Eliot Jones
4b66addf6d always use cidtogid map over truetype cmap where available 2018-04-17 00:14:53 +01:00
Eliot Jones
8d591ca913 fix bounding boxes for type 0 truetype fonts 2018-04-16 23:58:27 +01:00
Eliot Jones
53f693bc77 add tests to visually verify the output for glpyh bounding boxes and use advance widths for empty glyphs in truetype fonts 2018-04-15 12:47:08 +01:00
Eliot Jones
9700ee03b8 Merge pull request #3 from GowenGit/master
letter boundaries - todo: review changes for non latin characters, it seems like we need both the bounding box and the origin to be stored for each letter since the origin is on the baseline while the bounding box can extend below.
2018-04-15 11:41:30 +01:00
modest-as
4570427a6f merge from upstream 2018-04-14 22:20:36 +01:00
Eliot Jones
8def7d7e0b unify truetype glyphs to a single class. build composite glyphs from elements 2018-04-14 22:16:26 +01:00
Eliot Jones
731a1a3956 add xfinium data validations for non latin characters 2018-04-14 19:18:19 +01:00