static void psgen_begin_graph(GVJ_t * job) { obj_state_t *obj = job->obj; setupLatin1 = FALSE; if (job->common->viewNum == 0) { gvprintf(job, "%%%%Title: %s\n", agnameof(obj->u.g)); if (job->render.id != FORMAT_EPS) gvputs(job, "%%Pages: (atend)\n"); else gvputs(job, "%%Pages: 1\n"); if (job->common->show_boxes == NULL) { if (job->render.id != FORMAT_EPS) gvputs(job, "%%BoundingBox: (atend)\n"); else gvprintf(job, "%%%%BoundingBox: %d %d %d %d\n", job->pageBoundingBox.LL.x, job->pageBoundingBox.LL.y, job->pageBoundingBox.UR.x, job->pageBoundingBox.UR.y); } gvputs(job, "%%EndComments\nsave\n"); /* include shape library */ cat_libfile(job, job->common->lib, ps_txt); /* include epsf */ epsf_define(job); if (job->common->show_boxes) { const char* args[2]; args[0] = job->common->show_boxes[0]; args[1] = NULL; cat_libfile(job, NULL, args); } } isLatin1 = (GD_charset(obj->u.g) == CHAR_LATIN1); /* We always setup Latin1. The charset info is always output, * and installing it is cheap. With it installed, we can then * rely on ps_string to convert UTF-8 characters whose encoding * is in the range of Latin-1 into the Latin-1 equivalent and * get the expected PostScript output. */ if (!setupLatin1) { gvputs(job, "setupLatin1\n"); /* as defined in ps header */ setupLatin1 = TRUE; } /* Set base URL for relative links (for Distiller >= 3.0) */ if (obj->url) gvprintf(job, "[ {Catalog} << /URI << /Base (%s) >> >>\n" "/PUT pdfmark\n", obj->url); }
static void ps_begin_graph(graph_t* g, box bb, point pb) { char *s; PB = bb; if (onetime) { fprintf(Outfile,"%%%%BoundingBox: %d %d %d %d\n", bb.LL.x-1,bb.LL.y-1,bb.UR.x+1,bb.UR.y+1); ps_comment(g,agfindattr(g,"comment")); fprintf(Outfile,"%%%%EndComments\n"); cat_libfile(Outfile,U_lib,ps_txt); epsf_define(); /* Set base URL for relative links (for Distiller >= 3.0) */ if ((s = agget(g, "URL")) && strlen(s)) { fprintf(Outfile, "[ {Catalog} << /URI << /Base (%s) >> >>\n" "/PUT pdfmark\n", s); } } }