[gs-devel] forbidden CDevProc in zcharstring_outline()

mpsuzuki at hiroshima-u.ac.jp mpsuzuki at hiroshima-u.ac.jp
Fri Aug 23 00:02:17 PDT 2002


Dear GS developers,

Today, Kanou Hiroki (the maintainer of Kochi-Gothic CIDFont)
found that when CIDFont includes CDevProc, ps2pdf cannot embed
it in Type1 outline format, and convert it to bitmapped Type3.

It seems that zcharstring_outline() rejects CDevProc as

/*
 * Get a glyph outline given a CharString.  The glyph_outline procedure
 * for CIDFontType 0 fonts uses this.
 */
int
zcharstring_outline(gs_font_type1 *pfont1, const ref *pgref,
                    const gs_glyph_data_t *pgd_orig,
                    const gs_matrix *pmat, gx_path *ppath)
{
    const gs_glyph_data_t *pgd = pgd_orig;
    int code;
    gs_type1exec_state cxs;
    gs_type1_state *const pcis = &cxs.cis;
    static const gs_log2_scale_point no_scale = {0, 0};
    const gs_type1_data *pdata;
    const ref *pfdict;
    ref *pcdevproc;
    int value;
    gs_imager_state gis;
    double sbw[4], wv[4];
    gs_point mpt;

    pdata = &pfont1->data;
    if (pgd->bits.size <= max(pdata->lenIV, 0))
        return_error(e_invalidfont);
    pfdict = &pfont_data(pfont1)->dict;
    if (dict_find_string(pfdict, "CDevProc", &pcdevproc) > 0)
        return_error(e_rangecheck); /* can't call CDevProc from here */

Here CDevProc is rejected. I could not detect when this was
implemented and why it's needed. There's any documentation
telling as it should be implemented so?

Regards,

mpsuzuki




More information about the gs-devel mailing list