* formats.
*/
+#include <assert.h>
#include "halibut.h"
#include "paper.h"
*
* Generated from the Adobe Glyph List at
*
- * http://partners.adobe.com/asn/tech/type/glyphlist.txt
+ * http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt
*
* by a succession of Perl/sh fragments, quoted alongside each
* array.
/*
* Character width information from the standard PS fonts.
* Units are UNITS_PER_PT defined in paper.h.
- * Extracted from the (non-free) AFM files in
- * <http://partners.adobe.com/asn/acrobat/download/fontinfo/Core14_AFMs.tar>
+ * Extracted from the AFM files in
+ * <http://partners.adobe.com/public/developer/en/pdf/Core14_AFMs.tar>
* by the following script:
fonts="Times-Roman Times-Italic Times-Bold Times-BoldItalic \
done
printf '};\n'
+ * The AFM files have the following copyright and licence:
+ *
+ * Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1993, 1997
+ * Adobe Systems Incorporated. All Rights Reserved.
+ *
+ * This file and the 14 PostScript(R) AFM files it accompanies may be
+ * used, copied, and distributed for any purpose and without charge,
+ * with or without modification, provided that all copyright notices
+ * are retained; that the AFM files are not distributed without this
+ * file; that all modifications to this file or any of the AFM files
+ * are prominently noted in the modified file(s); and that this
+ * paragraph is not modified. Adobe Systems has no responsibility or
+ * obligation to support the use of the AFM files.
*/
static const kern_pair times_roman_kerns[] = {
}},
};
+void init_std_fonts(void) {
+ int i, j;
+ kern_pair const *kern;
+ static int done = FALSE;
+
+ if (done) return;
+ for (i = 0; i < (int)lenof(ps_std_fonts); i++) {
+ font_info *fi = snew(font_info);
+ fi->fp = NULL;
+ fi->name = ps_std_fonts[i].name;
+ fi->nglyphs = lenof(ps_std_glyphs) - 1;
+ fi->glyphs = ps_std_glyphs;
+ fi->widths = ps_std_fonts[i].widths;
+ fi->kerns = newtree234(kern_cmp);
+ for (kern = ps_std_fonts[i].kerns; kern->left != 0xFFFF; kern++)
+ add234(fi->kerns, (void *)kern);
+ for (j = 0; j < (int)lenof(fi->bmp); j++)
+ fi->bmp[j] = 0xFFFF;
+ for (j = 0; j < fi->nglyphs; j++) {
+ wchar_t ucs;
+ ucs = ps_glyph_to_unicode(fi->glyphs[j]);
+ assert(ucs != 0xFFFF);
+ fi->bmp[ucs] = j;
+ }
+ fi->next = all_fonts;
+ all_fonts = fi;
+ }
+ done = TRUE;
+}
+
const int *ps_std_font_widths(char const *fontname)
{
int i;