CAPS Universe documentation
1.0.4
All you need to know to be successful
|
Create printer's wire data for HL monochrome laser printers according to HBP. More...
Macros | |
#define | HBP_ECO_OFF 0x00 |
#define | HBP_ECO_DARK 0x01 |
#define | HBP_ECO_MID 0x02 |
#define | HBP_ECO_LIGHT 0x03 |
#define | HBP_MEDIUM_TYPE 0x00 |
#define | HBP_REGULAR_TYPE 0x00 |
#define | HBP_THICK_TYPE 0x01 |
#define | HBP_THICKER_TYPE 0x02 |
#define | HBP_TRANSPARENCY 0x03 |
#define | HBP_THIN_TYPE 0x04 |
#define | HBP_BOND_TYPE 0x05 |
#define | HBP_ENVELOP_TYPE 0x06 |
#define | HBP_THICK_ENVELOP_TYPE 0x07 |
#define | HBP_THIN_ENVELOP_TYPE 0x08 |
#define | HBP_PRINT_MODE 0x02 |
#define | HBP_NORMAL_MODE 0x00 |
#define | HBP_ENVELOP_MODE 0x01 |
#define | HBP_RES_600DPI 0x00 |
#define | HBP_RES_300DPI 0x05 |
#define | HBP_RES_150DPI 0x0A |
#define | HBP_RES_1200DPI 0x0F /* not all printers */ |
Functions | |
static void | _hl_hbp_mode_density (FILE *prn, struct hl_drv *t) |
static void | _hl_hbp_mode_temperature (FILE *prn, struct hl_job_options *j) |
static void | _hl_hbp_mode_medium (FILE *prn, struct hl_job_options *j) |
static void | hl_hbp_mode_job_start (struct hl_drv *t, struct hl_job_options *j) |
static void | hl_hbp_mode_line_send (const struct cm1030_line *cline, FILE *prn) |
static int | hl_hbp_mode_page_encode (struct hl_drv *t) |
static void | hl_hbp_mode_page_finish (struct hl_drv *t) |
static void | hl_hbp_mode_job_finish (struct hl_drv *t) |
Variables | |
const struct hl_encoder_calls | hbp_calls |
Recently I found a paper from Brother where the HBP printing mode is described. It uses the 1030 encoding method, but has some different printer control codes around the graphics data. This mode is entered via "@PJL ENTER LANGUAGE = HBP" and exited via "@X".
It seems, in this mode there is no need to divide the print data into bands of some size. Because the manual states:
The printer driver can send the printer 1 page of print data divided into sections by sending these commands continuously. It is recommended to send 1 page of print data without dividing into sections when the 1 page print data is more than the printer memory (500 Kbytes) as the printer will print this 'on the fly' and sending it in one block will improve the print performance.
The last line sent for a page should always be an empty line:
@G<0x0><0x00><0x01><0xff>
#define HBP_ECO_OFF 0x00 |
#define HBP_ECO_DARK 0x01 |
#define HBP_ECO_MID 0x02 |
#define HBP_ECO_LIGHT 0x03 |
#define HBP_MEDIUM_TYPE 0x00 |
#define HBP_REGULAR_TYPE 0x00 |
#define HBP_THICK_TYPE 0x01 |
#define HBP_THICKER_TYPE 0x02 |
#define HBP_TRANSPARENCY 0x03 |
#define HBP_THIN_TYPE 0x04 |
#define HBP_BOND_TYPE 0x05 |
#define HBP_ENVELOP_TYPE 0x06 |
#define HBP_THICK_ENVELOP_TYPE 0x07 |
#define HBP_THIN_ENVELOP_TYPE 0x08 |
#define HBP_PRINT_MODE 0x02 |
#define HBP_NORMAL_MODE 0x00 |
#define HBP_ENVELOP_MODE 0x01 |
#define HBP_RES_600DPI 0x00 |
#define HBP_RES_300DPI 0x05 |
#define HBP_RES_150DPI 0x0A |
#define HBP_RES_1200DPI 0x0F /* not all printers */ |
|
static |
Adapt density setting for this print job
|
static |
Adapt temperature according to the medium type/thickness
This step is important, since the printer must adapt the temperature according to the material (thicker medium -> higher temperature <- assumption only).
|
static |
Adapt the printing to a regular (large) medium or to (smaller) envelops
The printer needs to know, if it should print to envelops. I don't know exactly why, yet.
|
static |
|
static |
|
static |
Encode the full page according to the 1030 method but in HBP mode
[in] | t | Our driver instance description |
0 | on success |
-errno | on failures |
The description of the HBP mode differs from the PCL mode in that, it doesn't need to send data in bands and blocks. It seems, we can send the whole page at once.
|
static |
Finish the page by ejecting it ("form feed")
[in] | t | Our driver instance description |
According to the HBP mode description, an empty line must proceed the form feed command
|
static |
Finish the job, exit the HBP mode and re-enter the PJL mode
[in] | t | Our driver instance description |
This commad should be sent when the print job is fully printed.
const struct hl_encoder_calls hbp_calls |