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 mp_begin_graph(GVC_t * gvc, graph_t * g, box bb, point pb) { /* PB = bb; */ static char *mp_lib[] = {0}; if (onetime) { fprintf(Output_file, "%% BoundingBox: %d %d %d %d\n", bb.LL.x, bb.LL.y, bb.UR.x + 1, bb.UR.y + 1); cat_libfile(Output_file,U_lib,mp_lib); onetime = FALSE; } }
static void psgen_end_page(GVJ_t * job) { if (job->common->show_boxes) { gvputs(job, "0 0 0 edgecolor\n"); cat_libfile(job, NULL, job->common->show_boxes + 1); } /* the showpage is really a no-op, but at least one PS processor * out there needs to see this literal token. endpage does the real work. */ gvputs(job, "endpage\nshowpage\ngrestore\n"); gvputs(job, "%%PageTrailer\n"); gvprintf(job, "%%%%EndPage: %d\n", job->common->viewNum); }
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); } } }