Exemple #1
0
static int
ljet4d_print_page_copies(gx_device_printer * pdev, FILE * prn_stream,
                         int num_copies)
{
    int dots_per_inch = (int)pdev->y_pixels_per_inch;
    char base_init[60];
    char init[80];
    char even_init[80];

    gx_device_hpjet *dev = (gx_device_hpjet *)pdev;
    bool tumble=dev->Tumble;

    /* Put out per-page initialization. */
    /*
       Modified by [email protected]
       in duplex mode the sheet is alread in process, so there are some
       commands which must not be sent to the printer for the 2nd page,
       as this commands will cause the printer to eject the sheet with
       only the 1st page printed. This commands are:
       \033&l%dA (setting paper size)
       \033&l%dH (setting paper tray)
       in simplex mode we set this parameters for each page,
       in duplex mode we set this parameters for each odd page
       (paper tray is set by "hpjet_make_init")
    */
    sprintf(base_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
    hpjet_make_init(pdev, init, base_init);
    sprintf(even_init, "\033&l180u36Z\033*r0F\033&u%dD", dots_per_inch);
    return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        dots_per_inch, PCL_LJ4D_FEATURES,
                                        init,even_init,tumble);
}
Exemple #2
0
/* and doesn't support *p+ or *b vertical spacing. */
static int
oce9050_print_page_copies(gx_device_printer * pdev, FILE * prn_stream,
                          int num_copies)
{
    int code;
    char init[80];

    /* Switch to HP_RTL. */
    fputs("\033%1B", prn_stream);	/* Enter HPGL/2 mode */
    fputs("BP", prn_stream);	/* Begin Plot */
    fputs("IN;", prn_stream);	/* Initialize (start plot) */
    fputs("\033%1A", prn_stream);	/* Enter PCL mode */

    hpjet_make_init(pdev, init, "\033*b0M");

    code = dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        400, PCL_OCE9050_FEATURES, init, init, false);

    /* Return to HPGL/2 mode. */
    fputs("\033%1B", prn_stream);	/* Enter HPGL/2 mode */
    if (code == 0) {
        fputs("PU", prn_stream);	/* Pen Up */
        fputs("SP0", prn_stream);	/* Pen Select */
        fputs("PG;", prn_stream);	/* Advance Full Page */
        fputs("\033E", prn_stream);	/* Reset */
    }
    return code;
}
Exemple #3
0
/* Send a page to the printer. */
int
dljet_mono_print_page(gx_device_printer * pdev, FILE * prn_stream,
		      int dots_per_inch, int features, const char *page_init)
{
    return dljet_mono_print_page_copies(pdev, prn_stream, 1, dots_per_inch,
					features, page_init, page_init, false);
}
Exemple #4
0
/* and doesn't support *p+ or *b vertical spacing. */
static int
lp2563_print_page_copies(gx_device_printer * pdev, FILE * prn_stream,
                         int num_copies)
{
    char init[80];

    hpjet_make_init(pdev, init, "\033*b0M");
    return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        300, PCL_LP2563B_FEATURES, init, init, false);
}
Exemple #5
0
/* They also need their coordinate system translated slightly. */
static int
ljet3_print_page_copies(gx_device_printer * pdev, FILE * prn_stream,
                        int num_copies)
{
    char init[80];

    hpjet_make_init(pdev, init, "\033&l-180u36Z\033*r0F");
    return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        300, PCL_LJ3_FEATURES, init, init, false);
}
Exemple #6
0
/* The DeskJet500 can compress (modes 2&3) */
static int
djet500_print_page_copies(gx_device_printer * pdev, FILE * prn_stream,
                          int num_copies)
{
    char init[80];

    hpjet_make_init(pdev, init, "\033&k1W");
    return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        300, PCL_DJ500_FEATURES, init, init, false);
}
Exemple #7
0
/* It too needs its coordinate system translated slightly. */
static int
ljet4pjl_print_page_copies(gx_device_printer *pdev, FILE *prn_stream,
                        int num_copies)
{	int dots_per_inch = (int)pdev->y_pixels_per_inch;
        char real_init[60];

        sprintf(real_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
        return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        dots_per_inch, PCL_LJ4PJL_FEATURES,
                                        real_init, real_init, false);
}
Exemple #8
0
/* ESC&l#u and ESC&l#Z correctly.                               */
static int
fs600_print_page_copies(gx_device_printer * pdev, FILE * prn_stream,
                        int num_copies)
{
    int dots_per_inch = (int)pdev->y_pixels_per_inch;
    char base_init[60];
    char init[80];

    sprintf(base_init, "\033*r0F\033&u%dD", dots_per_inch);
    hpjet_make_init(pdev, init, base_init);
    return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        dots_per_inch, PCL_FS600_FEATURES,
                                        init, init, false);
}
Exemple #9
0
/* LaserJet IIId is same as LaserJet III, except for duplex */
static int
ljet3d_print_page_copies(gx_device_printer * pdev, FILE * prn_stream,
                         int num_copies)
{
    char init[80];
    char even_init[80];

    gx_device_hpjet *dev = (gx_device_hpjet *)pdev;
    bool tumble=dev->Tumble;

    hpjet_make_init(pdev, init, "\033&l-180u36Z\033*r0F");
    sprintf(even_init, "\033&l180u36Z\033*r0F");
    return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
                                        300, PCL_LJ3D_FEATURES, init, even_init, tumble);
}