From 1bb59cf41a54ae48b4e431cb48837aaf6879caa8 Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Wed, 16 Dec 2020 10:48:15 +0100 Subject: [PATCH] cleanup in postscript print --- src/psprint.c | 67 ++++++++++------------------------ xschem_library/rom8k/rom8k.sch | 58 +---------------------------- 2 files changed, 21 insertions(+), 104 deletions(-) diff --git a/src/psprint.c b/src/psprint.c index 3aac1630..db344287 100644 --- a/src/psprint.c +++ b/src/psprint.c @@ -113,9 +113,7 @@ static void ps_drawpolygon(int c, int what, double *x, double *y, int points, in else fprintf(fd, "%.16g %.16g LT\n", xx, yy); } if(fill && fill_type[c] && poly_fill) { - fprintf(fd, "closepath gsave stroke\n"); - fprintf(fd, "grestore\n"); - fprintf(fd, " fill\n"); + fprintf(fd, "closepath fill stroke\n"); } else { fprintf(fd, "stroke\n"); } @@ -424,7 +422,7 @@ static void fill_ps_colors() void ps_draw(void) { - double dx, dy, delta,scale; + double dx, dy, scale; int c,i, textlayer; char *tmp=NULL; int old_grid; @@ -458,25 +456,14 @@ void ps_draw(void) dbg(1, "ps_draw(): dx=%.16g dy=%.16g\n", dx, dy); fd=fopen("plot.ps", "w"); - fprintf(fd, "%%!\n"); - - - fprintf(fd, "%%%%BoundingBox: (atend)\n"); + fprintf(fd, "%%!PS-Adobe-3.0\n"); + fprintf(fd, "%s\n", "%%DocumentMedia: a4land 842 595 80 () ()"); + fprintf(fd, "%%%%Orientation: Portrait\n"); fprintf(fd, "%%%%Title: xschem plot\n"); fprintf(fd, "%%%%Creator: xschem\n"); fprintf(fd, "%%%%Pages: 1\n"); - fprintf(fd, "%%%%DocumentFonts: (atend)\n"); fprintf(fd, "%%%%EndComments\n"); fprintf(fd, "%%%%BeginProlog\n\n"); - fprintf(fd, "%%%%EndProlog\n"); - fprintf(fd, "%%%%BeginSetup\n"); - if(a3page) { - fprintf(fd, "%%%%BeginFeature: *PageSize A3\n"); - fprintf(fd, "<< /PageSize [842 1191] /ImagingBBox null >> setpagedevice\n"); - } - fprintf(fd, "%%%%EndSetup\n"); - fprintf(fd, "%%%%Page: 1 1\n\n"); - fprintf(fd,"/cm {28.346457 mul} bind def\n"); fprintf(fd,"/LT {lineto} bind def\n"); fprintf(fd,"/MT {moveto} bind def\n"); @@ -485,35 +472,25 @@ void ps_draw(void) fprintf(fd,"/AF {arcn fill stroke} bind def\n"); fprintf(fd,"/R {rectstroke} bind def\n"); fprintf(fd,"/RF {rectfill} bind def\n"); - if(dx/dy>27.7/19 || dy/dx>27.7/19) - { - delta=dx>dy? dx:dy; - if(a3page) scale=28.7*28.346457/delta*sqrt(2); - else scale=27.7*28.346457/delta; - } - else - { - delta=dx>dy? dy:dx; - if(a3page) scale=20*28.346457/delta*sqrt(2); - else scale=19*28.346457/delta; - } - if(dx>dy) - { - if(a3page) fprintf(fd,"28.99137803 cm 41.29503602 cm translate\n"); - else fprintf(fd,"20 cm 28.7 cm translate\n"); - fprintf(fd,"-90 rotate\n"); - fprintf(fd,"%.16g %.16g scale\n",scale,-scale); - } - else - { - fprintf(fd,"1 cm 28.7 cm translate\n"); - fprintf(fd,"%.16g %.16g scale\n",scale,-scale); - } + fprintf(fd, "%%%%EndProlog\n"); + fprintf(fd, "%%%%BeginSetup\n"); + fprintf(fd, "%s\n", "<< /PageSize [842 595] /Orientation 0 >> setpagedevice"); + fprintf(fd, "%%%%Page: 1 1\n\n"); + fprintf(fd, "%%%%BeginPageSetup\n"); + fprintf(fd, "%%%%EndPageSetup\n"); + fprintf(fd, "0 595 translate\n"); + + scale = 595.0 / xctx->areah; + if(xctx->areaw * scale > 842.0) scale = 842.0 / xctx->areaw; + + fprintf(fd, "%g %g scale\n", scale, -scale); + fprintf(fd, "1 setlinejoin 1 setlinecap\n"); restore_lw(); ps_drawgrid(); + for(i=0;itexts;i++) { textlayer = xctx->text[i].layer; @@ -578,13 +555,9 @@ void ps_draw(void) } } - - - - - dbg(1, "ps_draw(): INT_WIDTH(lw)=%d plotfile=%s\n",INT_WIDTH(xctx->lw), plotfile); fprintf(fd, "showpage\n\n"); + fprintf(fd, "%%%%trailer\n"); fprintf(fd, "%%%%EOF\n"); fclose(fd); draw_grid=old_grid; diff --git a/xschem_library/rom8k/rom8k.sch b/xschem_library/rom8k/rom8k.sch index a749d291..d63bf39d 100644 --- a/xschem_library/rom8k/rom8k.sch +++ b/xschem_library/rom8k/rom8k.sch @@ -2,63 +2,7 @@ v {xschem version=2.9.8 file_version=1.2} G {} K {} V {} -S { -.save xrpre1.ldzi[15] -.save xrpre1.ldzi[14] -.save xrpre1.ldzi[13] -.save xrpre1.ldzi[12] -.save xrpre1.ldzi[11] -.save xrpre1.ldzi[10] -.save xrpre1.ldzi[9] -.save xrpre1.ldzi[8] -.save xrpre1.ldzi[7] -.save xrpre1.ldzi[6] -.save xrpre1.ldzi[5] -.save xrpre1.ldzi[4] -.save xrpre1.ldzi[3] -.save xrpre1.ldzi[2] -.save xrpre1.ldzi[1] -.save xrpre1.ldzi[0] - -.save xsa[15].LDQI -.save xsa[14].LDQI -.save xsa[13].LDQI -.save xsa[12].LDQI -.save xsa[11].LDQI -.save xsa[10].LDQI -.save xsa[9].LDQI -.save xsa[8].LDQI -.save xsa[7].LDQI -.save xsa[6].LDQI -.save xsa[5].LDQI -.save xsa[4].LDQI -.save xsa[3].LDQI -.save xsa[2].LDQI -.save xsa[1].LDQI -.save xsa[0].LDQI - -.save xsa[15].LDQIB -.save xsa[14].LDQIB -.save xsa[13].LDQIB -.save xsa[12].LDQIB -.save xsa[11].LDQIB -.save xsa[10].LDQIB -.save xsa[9].LDQIB -.save xsa[8].LDQIB -.save xsa[7].LDQIB -.save xsa[6].LDQIB -.save xsa[5].LDQIB -.save xsa[4].LDQIB -.save xsa[3].LDQIB -.save xsa[2].LDQIB -.save xsa[1].LDQIB -.save xsa[0].LDQIB - -.save xctrl.xsacell.LDQ_B -.save xctrl.xsacell.LDQI -.save xctrl.LDOUTI - -} +S {} E {} L 3 850 -270 850 -60 {} L 3 1050 -270 1050 -60 {}