X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/138d7ffb158595a29130949de7a01ac5fdb5c352..f0e51ce1f8e8c03966509153e9ff360684d4dd6f:/bk_ps.c diff --git a/bk_ps.c b/bk_ps.c index ae1feae..77b0ab5 100644 --- a/bk_ps.c +++ b/bk_ps.c @@ -50,7 +50,6 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords, filename = dupstr("output.ps"); for (p = sourceform; p; p = p->next) { - p->private_data = NULL; if (p->type == para_Config && p->parent) { if (!ustricmp(p->keyword, L"ps-filename")) { sfree(filename); @@ -106,11 +105,12 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords, fprintf(fp, "%%%%EndSetup\n"); /* - * Output the text. + * Output the text and graphics. */ pageno = 0; for (page = doc->pages; page; page = page->next) { text_fragment *frag; + rect *r; pageno++; fprintf(fp, "%%%%Page: %d %d\n", pageno, pageno); @@ -137,6 +137,13 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords, } #endif + for (r = page->first_rect; r; r = r->next) { + fprintf(fp, "%g %g moveto %g 0 rlineto 0 %g rlineto " + "-%g 0 rlineto closepath fill\n", + r->x / 4096.0, r->y / 4096.0, r->w / 4096.0, + r->h / 4096.0, r->w / 4096.0); + } + for (frag = page->first_text; frag; frag = frag->next) { char *c;