*** gdevps.c~ Mon Aug 24 08:08:38 1998 --- gdevps.c Fri Jan 8 09:23:22 1999 *************** *** 523,527 **** } pprintld2(s, "%%%%Page: %ld %ld\n%%%%BeginPageSetup\n", page, page); ! pprintg2(s, "/pagesave save def GS_pswrite_ProcSet begin %g %g scale\n%%%%EndPageSetup\n", 72.0 / vdev->HWResolution[0], 72.0 / vdev->HWResolution[1]); return 0; --- 547,583 ---- } pprintld2(s, "%%%%Page: %ld %ld\n%%%%BeginPageSetup\n", page, page); ! pputs(s, "/pagesave save def GS_pswrite_ProcSet begin\n"); ! if (!pdev->ProduceEPS) { ! int width = (int)(vdev->width * 72.0 / vdev->HWResolution[0] + 0.5); ! int height = (int)(vdev->height * 72.0 / vdev->HWResolution[1] + 0.5); ! ! if (pdev->LanguageLevel > 1.5) ! pprintd2(s, "<< /PageSize [%d %d] >> setpagedevice\n", ! width, height); ! else { ! typedef struct ps_ { ! const char *size_name; ! int width, height; ! } page_size; ! static const page_size sizes[] = { ! {"/11x17", 792, 1224}, ! {"/a3", 842, 1190}, ! {"/a4", 595, 842}, ! {"/b5", 501, 709}, ! {"/ledger", 1224, 792}, ! {"/legal", 612, 1008}, ! {"/letter", 612, 792}, ! {"null", 0, 0} ! }; ! const page_size *p = sizes; ! ! while (p->size_name[0] == '/' && ! (p->width != width || p->height != height)) ! ++p; ! pprintd2(s, "%d %d ", width, height); ! pprints1(s, "%s PS\n", p->size_name); ! } ! } ! pprintg2(s, "%g %g scale\n%%%%EndPageSetup\n", 72.0 / vdev->HWResolution[0], 72.0 / vdev->HWResolution[1]); return 0;