# define Y_DPI 600 #endif /* Define the number of blank lines that make it worthwhile to */ /* start a new image. */ #define MIN_SKIP_LINES 2 /* We round up the LINE_SIZE to a multiple of a ulong for faster scanning. */ #define W sizeof(word) static dev_proc_open_device(ljet5_open); static dev_proc_close_device(ljet5_close); static dev_proc_print_page(ljet5_print_page); static const gx_device_procs ljet5_procs = prn_procs(ljet5_open, gdev_prn_output_page, ljet5_close); const gx_device_printer gs_lj5mono_device = prn_device(ljet5_procs, "lj5mono", DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, X_DPI, Y_DPI, 0, 0, 0, 0, 1, ljet5_print_page); static const gx_device_procs lj5gray_procs = prn_color_procs(ljet5_open, gdev_prn_output_page, ljet5_close, gx_default_gray_map_rgb_color, gx_default_gray_map_color_rgb); const gx_device_printer gs_lj5gray_device = { prn_device_body(gx_device_printer, lj5gray_procs, "lj5gray",
#define iSET_MAGNIFICATION 236 /* magnify the page by 1, 2, 4 */ #define iNOOP 254 /* no operation */ #define iEOF 255 /* end of impress document */ /*-------------------------------------------*/ /*-------------------------------------------*/ /* The device descriptor */ static dev_proc_print_page(imagen_print_page); static dev_proc_open_device(imagen_prn_open); static dev_proc_close_device(imagen_prn_close); /* Since the print_page doesn't alter the device, this device can print in the background */ gx_device_procs imagen_procs = prn_procs(imagen_prn_open, gdev_prn_bg_output_page, imagen_prn_close); #define ppdev ((gx_device_printer *)pdev) /*-------------------------------------------*/ const gx_device_printer far_data gs_imagen_device = prn_device(/*prn_std_procs*/ imagen_procs, "imagen", WIDTH_10THS, HEIGHT_10THS, MAX_DPI, /* x_dpi */ MAX_DPI, /* y_dpi */ MARG_L,MARG_R,MARG_T,MARG_B, /* margins */ 1, imagen_print_page); /*-------------------------------------------*/
I didn't implement asynchronous IO (yet), because "`normal"' multipage- printings like TEX-Output seem to be printed with the maximum speed whereas drawings normally occur as one-page outputs, where asynchronous IO doesn't help anyway. */ static dev_proc_open_device(sparc_open); static dev_proc_print_page(sparc_print_page); #define SPARC_MARGINS_A4 0.15, 0.12, 0.12, 0.15 #define SPARC_MARGINS_LETTER 0.15, 0.12, 0.12, 0.15 /* Since the print_page doesn't alter the device, this device can print in the background */ gx_device_procs prn_sparc_procs = prn_procs(sparc_open, gdev_prn_bg_output_page, gdev_prn_close); const gx_device_printer far_data gs_sparc_device = prn_device(prn_sparc_procs, "sparc", DEFAULT_WIDTH_10THS,DEFAULT_HEIGHT_10THS, 400,400, 0,0,0,0, 1, sparc_print_page); /* Open the printer, and set the margins. */ static int sparc_open(gx_device *pdev) { /* Change the margins according to the paper size. */ const float *m;
(0.5") are possible, too. If you ask me, don't use the recommended top and bottom margins, use 0" and 0.5". */ #define BJ200_TOP_MARGIN 0.12 #define BJ200_BOTTOM_MARGIN 0.29 #define BJ200_LETTER_SIDE_MARGIN 0.25 #define BJ200_A4_SIDE_MARGIN 0.13 static dev_proc_open_device(bj200_open); static dev_proc_print_page(bj10e_print_page); static gx_device_procs prn_bj200_procs = prn_procs(bj200_open, gdev_prn_output_page, gdev_prn_close); const gx_device_printer far_data gs_bj200_device = prn_device(prn_bj200_procs, "bj200", DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, 360, /* x_dpi */ 360, /* y_dpi */ 0, 0, 0, 0, /* margins filled in by bj200_open */ 1, bj10e_print_page); /* * (<*****@*****.**>, aka <*****@*****.**>): * My bj10ex, which as far as I can tell is just like a bj10e, needs a * bottom margin of 0.4" (actually, you must not print within 0.5" of * the bottom; somewhere, an extra 0.1" is creeping in).
} #endif /* The device descriptor */ static dev_proc_print_page(bj10v_print_page); #if 0 static dev_proc_get_initial_matrix(bj10v_get_initial_matrix); #endif #if 0 gx_device_procs prn_bj10v_procs = prn_matrix_procs(gdev_prn_open, bj10v_get_initial_matrix, gdev_prn_output_page, gdev_prn_close); #endif gx_device_procs prn_bj10v_procs = prn_procs(gdev_prn_open, gdev_prn_output_page, gdev_prn_close); gx_device_printer gs_bj10v_device = prn_device(prn_bj10v_procs, "bj10v", DEFAULT_WIDTH_10THS, /* width_10ths */ DEFAULT_HEIGHT_10THS, /* height_10ths */ 360, /* x_dpi */ 360, /* y_dpi */ 0.134, 0.507, 0.166, 0.867, /* l, b, r, t margins */ 1, bj10v_print_page); gx_device_printer gs_bj10vh_device = prn_device(prn_bj10v_procs, "bj10vh", DEFAULT_WIDTH_10THS, /* width_10ths */ DEFAULT_HEIGHT_10THS, /* height_10ths */ 360, /* x_dpi */
/* OKI MICROLINE 620CL IPL mode driver for Ghostscript */ /* Mar. 14, 1998 N.Tagawa $Id: gdevml6.c,v 1.4 2002/07/30 18:53:22 easysw Exp $ */ #include "gdevprn.h" /* The device descriptors */ static dev_proc_open_device(ml600_open); static dev_proc_close_device(ml600_close); static dev_proc_print_page(ml600_print_page); static gx_device_procs ml600_procs = prn_procs(ml600_open, gdev_prn_output_page, ml600_close); gx_device_printer gs_ml600_device = prn_device(ml600_procs, "ml600", 83, /* width_10ths, 8.3" */ 117, /* height_10ths, 11.7" */ 600, 600, 0.20, 0.20, 0.20, 0.20, /* margins, lbrt */ 1, ml600_print_page); /* ------ prototype ------ */ static int ml_finish( gx_device_printer *pdev, FILE *fp);