Index: draw_eps.c =================================================================== --- draw_eps.c (revision 36291) +++ draw_eps.c (revision 36292) @@ -29,7 +29,7 @@ int erase; } rnd_hid_gc_s; -void rnd_eps_print_header(rnd_eps_t *pctx, const char *outfn, int ymirror) +void rnd_eps_print_header(rnd_eps_t *pctx, const char *outfn, int xmirror, int ymirror) { pctx->linewidth = -1; pctx->lastcap = -1; @@ -52,8 +52,12 @@ fprintf(pctx->outf, "1 dup neg scale\n"); fprintf(pctx->outf, "%g dup scale\n", pctx->scale); rnd_fprintf(pctx->outf, "%mi %mi translate\n", -pctx->bounds.X1, -pctx->bounds.Y2); - if (ymirror) + if (xmirror && ymirror) + rnd_fprintf(pctx->outf, "-1 -1 scale %mi %mi translate\n", pctx->bounds.X1 - pctx->bounds.X2, pctx->bounds.Y1 - pctx->bounds.Y2); + else if (xmirror) rnd_fprintf(pctx->outf, "-1 1 scale %mi 0 translate\n", pctx->bounds.X1 - pctx->bounds.X2); + else if (ymirror) + rnd_fprintf(pctx->outf, "1 -1 scale 0 %mi translate\n", pctx->bounds.Y1 - pctx->bounds.Y2); #define Q (rnd_coord_t) RND_MIL_TO_COORD(10) rnd_fprintf(pctx->outf, Index: draw_eps.h =================================================================== --- draw_eps.h (revision 36291) +++ draw_eps.h (revision 36292) @@ -25,7 +25,7 @@ void rnd_eps_init(rnd_eps_t *pctx, FILE *f, rnd_box_t bounds, double scale, int in_mono, int as_shown); /* Set up output file and print header before export, footer after export */ -void rnd_eps_print_header(rnd_eps_t *pctx, const char *outfn, int ymirror); +void rnd_eps_print_header(rnd_eps_t *pctx, const char *outfn, int xmirror, int ymirror); void rnd_eps_print_footer(rnd_eps_t *pctx); Index: eps.c =================================================================== --- eps.c (revision 36291) +++ eps.c (revision 36292) @@ -229,7 +229,7 @@ rnd_eps_init(pctx, the_file, *bnds, options_[HA_scale].dbl, options[HA_mono].lng, options[HA_as_shown].lng); if (pctx->outf != NULL) - rnd_eps_print_header(pctx, rnd_hid_export_fn(filename), pctx->as_shown && conf_core.editor.show_solder_side); + rnd_eps_print_header(pctx, rnd_hid_export_fn(filename), pctx->as_shown && conf_core.editor.show_solder_side, 0); if (pctx->as_shown) { /* disable (exporter default) hiding overlay in as_shown */ @@ -320,7 +320,7 @@ fclose(pctx->outf); } pctx->outf = rnd_fopen_askovr(&PCB->hidlib, eps_cam.fn, "w", NULL); - rnd_eps_print_header(pctx, eps_cam.fn, pctx->as_shown && conf_core.editor.show_solder_side); + rnd_eps_print_header(pctx, eps_cam.fn, pctx->as_shown && conf_core.editor.show_solder_side, 0); } if (!eps_cam.active) {