107 lines
3.3 KiB
C
107 lines
3.3 KiB
C
#ifndef ESCPOSPRINTER_PRINTER_H
|
|
#define ESCPOSPRINTER_PRINTER_H
|
|
|
|
typedef struct escpos_config {
|
|
// See ESCPOS_MAX_DOT_WIDTH in constants.h
|
|
// Default value: ESCPOS_MAX_DOT_WIDTH
|
|
int max_width;
|
|
|
|
// See ESCPOS_CHUNK_DOT_HEIGHT in constants.h
|
|
// Default value: ESCPOS_CHUNK_DOT_HEIGHT
|
|
int chunk_height;
|
|
|
|
unsigned int is_network_printer : 1;
|
|
} escpos_config;
|
|
|
|
typedef struct escpos_printer {
|
|
int sockfd;
|
|
escpos_config config;
|
|
} escpos_printer;
|
|
|
|
// Connects to an ESC/POS printer via network
|
|
//
|
|
// Params:
|
|
// - addr: the printer's address
|
|
// - port: the printer's port
|
|
//
|
|
// Return value: the printer object if successful, NULL otherwise.
|
|
// If it fails, use escpos_last_error() to get the error code.
|
|
extern escpos_printer *escpos_printer_network(const char * const addr, const short port);
|
|
|
|
// Connects to an ESC/POS printer via serial
|
|
//
|
|
// Params:
|
|
// - portname: the path to the serial file to be used
|
|
// - baudrate: the baudrate for serial communication
|
|
//
|
|
// Return value: the printer object if successful, NULL otherwise.
|
|
// If it fails, use escpos_last_error() to get the error code.
|
|
extern escpos_printer *escpos_printer_serial(const char * const portname, const int baudrate);
|
|
|
|
// Modifies the printer's configuration
|
|
//
|
|
// Params:
|
|
// - printer: the printer
|
|
// - config: the config
|
|
//
|
|
// Return value: 0 is successful, non-zero otherwise.
|
|
// If it fails, use escpos_last_error() to get the error code.
|
|
extern int escpos_printer_config(escpos_printer *printer, const escpos_config * const config);
|
|
|
|
// Destroys the printer and deallocates its memory
|
|
//
|
|
// Params:
|
|
// - printer: the printer
|
|
extern void escpos_printer_destroy(escpos_printer *printer);
|
|
|
|
// Sends raw data to the printer
|
|
//
|
|
// Params:
|
|
// - printer: the printer
|
|
// - message: the data
|
|
// - len: the length of the data in bytes
|
|
//
|
|
// Return value: 0 is successful, non-zero otherwise.
|
|
// If it fails, use escpos_last_error() to get the error code.
|
|
extern int escpos_printer_raw(escpos_printer *printer, const char * const message, const int len);
|
|
|
|
// Cuts the paper
|
|
//
|
|
// Params:
|
|
// - printer: the printer
|
|
// - lines: no. of lines to feed before cutting
|
|
//
|
|
// Return value: 0 is successful, non-zero otherwise.
|
|
// If it fails, use escpos_last_error() to get the error code.
|
|
extern int escpos_printer_cut(escpos_printer *printer, const int lines);
|
|
|
|
// Feeds n lines
|
|
//
|
|
// Params:
|
|
// - printer: the printer
|
|
// - lines: no. of lines
|
|
//
|
|
// Return value: 0 is successful, non-zero otherwise.
|
|
// If it fails, use escpos_last_error() to get the error code.
|
|
extern int escpos_printer_feed(escpos_printer *printer, const int lines);
|
|
|
|
// Prints an image
|
|
//
|
|
// NOTE: This function will send the image data to the printer's buffer
|
|
// before sending the print command, instead of printing the image directly.
|
|
//
|
|
// Params:
|
|
// - printer: the printer
|
|
// - image_data: an array of width * height bytes containing the pixels in grayscale
|
|
// - width: the image width (must be at most 512)
|
|
// - height: the image height
|
|
//
|
|
// Return value: 0 is successful, non-zero otherwise.
|
|
// If it fails, use escpos_last_error() to get the error code.
|
|
extern int escpos_printer_image(escpos_printer *printer,
|
|
const unsigned char * const image_data,
|
|
const int width,
|
|
const int height);
|
|
|
|
#endif
|