X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/d5bc1c48d6a59db9480a3c8ce43fd8ca8a3b6a21..39d3d9002fc5eb3a66e926af9e5350030762add9:/paper.h diff --git a/paper.h b/paper.h index bab9e4f..b68fd5f 100644 --- a/paper.h +++ b/paper.h @@ -87,14 +87,10 @@ struct font_info_Tag { */ const char *name; /* - * The file containing this font, if any. + * Pointer to data about the file containing the font, if any. */ - FILE *fp; - filepos pos; - /* - * Lengths of the unencrypted and encrypted portions of the font. - */ - long length1, length2; + void *fontfile; + enum { TYPE1, TRUETYPE } filetype; /* A tree of glyph_widths */ tree234 *widths; /* A tree of kern_pairs */ @@ -225,6 +221,11 @@ struct para_data_Tag { JUST, LEFT, RIGHT } justification; /* + * Sometimes (in code paragraphs) we want to override the flags + * passed to render_string(). + */ + unsigned extraflags; + /* * For constructing the page outline. */ int outline_level; /* 0=title 1=C 2=H 3=S 4=S2... */ @@ -384,8 +385,9 @@ int find_width(font_data *, glyph); */ glyph glyph_intern(char const *); char const *glyph_extern(glyph); -wchar_t ps_glyph_to_unicode(char const *glyph); +wchar_t ps_glyph_to_unicode(glyph); extern const char *const ps_std_glyphs[]; +extern glyph const tt_std_glyphs[]; void init_std_fonts(void); const int *ps_std_font_widths(char const *fontname); const kern_pair *ps_std_font_kerns(char const *fontname); @@ -396,9 +398,20 @@ const kern_pair *ps_std_font_kerns(char const *fontname); char *pdf_outline_convert(wchar_t *s, int *len); /* + * Function exported from bk_ps.c + */ +void ps_token(FILE *fp, int *cc, char const *fmt, ...); + +/* * Backend functions exported by in_pf.c */ void pf_part1(font_info *fi, char **bufp, size_t *lenp); void pf_part2(font_info *fi, char **bufp, size_t *lenp); +void pf_writeps(font_info const *fi, FILE *ofp); + +/* + * Backend functions exported by in_sfnt.c + */ +void sfnt_writeps(font_info const *fi, FILE *ofp); #endif