java.lang.Objectandroid.device.PrinterManager
public class PrinterManager
The android.device.PriterManager provides a functional interface for initializing and controlling the printer.
To print data with this class, according to the following steps,
import android.device.PrinterManager;
PrinterManager printer = new PrinterManager();
setupPage.
drawLine,
drawText,
drawBarcode, etc.
printPage.
For more information about the printer, read PrinterManager sample.
| Field Summary | |
|---|---|
static int |
PRNSTS_BUSY
The printer is currently busy. |
static int |
PRNSTS_ERR
An unknown error has occurred. |
static int |
PRNSTS_ERR_DRIVER
An driver error has occurred. |
static int |
PRNSTS_OK
The printer is working OK. |
static int |
PRNSTS_OUT_OF_PAPER
The printer is out of paper. |
static int |
PRNSTS_OVER_HEAT
The printer is over heat. |
static int |
PRNSTS_UNDER_VOLTAGE
Printer battery voltage too low. |
| Constructor Summary | |
|---|---|
PrinterManager()
The PriterManager provides a functional interface for initializing and controlling the printer. |
|
| Method Summary | |
|---|---|
int |
clearPage()
Clear the current page. |
int |
close()
Close the printer. |
int |
drawBarcode(java.lang.String data,
int x,
int y,
int barcodeType,
int width,
int height,
int rotate)
Draw barcode on the current page. |
int |
drawBitmap(Bitmap bmp,
int xDest,
int yDest)
Draw a bitmap on the current page. |
int |
drawBitmapEx(byte[] pbmp,
int xDest,
int yDest,
int widthDest,
int heightDest)
Draw a mono-bitmaps on the current page. |
int |
drawLine(int x0,
int y0,
int x1,
int y1,
int lineWidth)
Draw a line in the current page. |
int |
drawText(java.lang.String data,
int x,
int y,
java.lang.String fontName,
int fontSize,
boolean bold,
boolean italic,
int rotate)
Draw text on the current page. |
int |
drawTextEx(java.lang.String data,
int x,
int y,
int width,
int height,
java.lang.String fontName,
int fontSize,
int rotate,
int style,
int format)
Draw text on the current page. |
int |
getStatus()
Get the current state of the printer. See PRNSTS_OK
PRNSTS_OUT_OF_PAPER
PRNSTS_OVER_HEAT
PRNSTS_UNDER_VOLTAGE
PRNSTS_BUSY
PRNSTS_ERR
PRNSTS_ERR_DRIVER
|
int |
open()
Open the printer. |
int |
printPage(int rotate)
Print the current page. |
void |
setSpeedLevel(int level)
Set print speed level. |
void |
setGrayLevel(int level)
Set print gray level. |
void |
paperFeed(int level)
Set paper feed function. |
int |
setupPage(int width,
int height)
Set the page size. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public static final int PRNSTS_OK
public static final int PRNSTS_OUT_OF_PAPER
public static final int PRNSTS_OVER_HEAT
public static final int PRNSTS_UNDER_VOLTAGE
public static final int PRNSTS_BUSY
public static final int PRNSTS_ERR
public static final int PRNSTS_ERR_DRIVER
public PrinterManager()
public int open()
PrinterManager printerManager = new PrinterManager();
int ret = printerManager.open();
if (ret != 0) {
//open failed
}public int close()
int ret = printerManager.open();
if(ret == 0) {
printerManager.close();
}public void paperFeed(int level)
level - Number of steps required. The range of Gray level is 0 to 100, 1mm for every 1 units.
int ret = printerManager.open();
if(ret == 0) {
int level = 8;
printerManager.paperFeed(level);
}
public void setSpeedLevel(int level)
level - The range of Gray level is 0 to 9. The default value is 9.
public void setGrayLevel(int level)
level - The range of Gray level is 0 to 4. The default value is 0.
int ret = printerManager.open();
if(ret == 0) {
int grayLevel = 1;
printerManager.setGrayLevel(grayLevel);
}
public int setupPage(int width,
int height)
width - Page width. -1 means largest possible width (width = 384).
height - Page height. -1 means printer driver to manage the page height.
int ret = printerManager.open();
if(ret == 0) {
int width = 384;
int height = -1;
int re = printerManager.setupPage(width, height);
if(re < 0) {
//setupPage failed
}
}
public int clearPage()
int ret = printerManager.open();
if(ret == 0) {
int re = printerManager.clearPage();
if (re < 0) {
//clear failed
}
}
public int printPage(int rotate)
rotate - The rotation angle, currently supports only 0
(non-rotating)
PRNSTS_OK
PRNSTS_OUT_OF_PAPER
PRNSTS_OVER_HEAT
PRNSTS_UNDER_VOLTAGE
PRNSTS_BUSY
PRNSTS_ERR
PRNSTS_ERR_DRIVER
int ret = printerManager.open();
if(ret == 0) {
public static final int ROTATE = 0;
int status = printerManager.printPage(ROTATE);
}
public int drawLine(int x0,
int y0,
int x1,
int y1,
int lineWidth)
x0 - Start point X axis.
y0 - Start point Y axis.
x1 - End point X axis.
y1 - End point Y axis.
lineWidth - In pixel. 8 pixels is equivalent to 1 mm.
int ret = printerManager.open();
if(ret == 0) {
int x0 = 16;
int y0 = 0;
int x1 = 300;
int y1 = 100;
int lineWidth = 4;
int re = printerManager.drawLine(x0,y0,x1,y1,lineWidth);
if (re < 0) {
//drawLine failed
}
}
public int drawText(java.lang.String data,
int x,
int y,
java.lang.String fontName,
int fontSize,
boolean bold,
boolean italic,
int rotate)
data - The string to draw.
x - Start point X axis.
y - Start point Y axis.
fontName - Font to use, otherwise, default system font will be used. Custom fonts can be specified, for example, specifying the full path /mnt/sdcard/xxx.ttf.
fontSize - The font size, in pixel.
bold - Set font style to bold.
italic - Set font style to italic.
rotate - The text direction. Value:
int ret = printerManager.open();
if(ret == 0) {
String data = "hello";
int x = 200;
int y = 200;
String fontName = "/system/fonts/kaishu.ttf";
int fontSize = 8;
public static final int NO_ROTATE = 0;
int height = printerManager.drawText(data, x, y, fontName, fontSize, false, false, NO_ROTATE);
if (height < 0) {
//drawText failed
}
}
public int drawTextEx(java.lang.String data,
int x,
int y,
int width,
int height,
java.lang.String fontName,
int fontSize,
int rotate,
int style,
int format)
data - The string to draw.
x - Start point X axis.
y - Start point Y axis.
width - Text is printed to the width of a rectangle on the page.
height - Text is printed to the height of a rectangle on the page.
fontName - Font to use, otherwise, default system font will be used. Or custom fonts i.e. /mnt/sdcard/xxx.ttf the path.
fontSize - The font size, in pixel.
rotate - Print the text rotated to requested degress. Value:
style - Font style of value:
format - Set to 0 means word wrap at the specified width range 0 to 384, set to 1 means no word wrap.
int ret = printerManager.open();
if(ret == 0) {
String data = "hello";
int x = 200;
int y = 200;
int width = 100;
int height = -1;
String fontName = "/system/fonts/kaishu.ttf";
int fontSize = 8;
public static final int NO_ROTATE = 0;
int style = 0x0001;
int format = 0;
int ret = printerManager.drawTextEx(data, x, y, width, height, fontName, fontSize, NO_ROTATE, style, format);
if (ret < 0) {
//drawTextEx failed
}
}
public int drawBarcode(java.lang.String data,
int x,
int y,
int barcodeType,
int width,
int height,
int rotate)
data - The barcode text.
x - Start point at X axis.
y - Start point at Y axis.
barcodeType - Following Table shows the supported symbology:
| BARCODE_CODE11 | 1 | |
| BARCODE_C25MATRIX | 2 | |
| BARCODE_C25INTER | 3 | |
| BARCODE_C25IATA | 4 | |
| BARCODE_C25LOGIC | 6 | |
| BARCODE_C25IND | 7 | |
| BARCODE_CODE39 | 8 | |
| BARCODE_EXCODE39 | 9 | |
| BARCODE_EANX | 13 | |
| BARCODE_EAN128 | 16 | |
| BARCODE_CODABAR | 18 | |
| BARCODE_CODE128 | 20 | |
| BARCODE_DPLEIT | 21 | |
| BARCODE_DPIDENT | 22 | |
| BARCODE_CODE16K | 23 | |
| BARCODE_CODE49 | 24 | |
| BARCODE_CODE93 | 25 | |
| BARCODE_FLAT | 28 | |
| BARCODE_RSS14 | 29 | |
| BARCODE_RSS_LTD | 30 | |
| BARCODE_RSS_EXP | 31 | |
| BARCODE_TELEPEN | 32 | |
| BARCODE_UPCA | 34 | |
| BARCODE_UPCE | 37 | |
| BARCODE_POSTNET | 40 | |
| BARCODE_MSI_PLESSEY | 47 | |
| BARCODE_FIM | 49 | |
| BARCODE_LOGMARS | 50 | |
| BARCODE_PHARMA | 51 | |
| BARCODE_PZN | 52 | |
| BARCODE_PHARMA_TWO | 53 | |
| BARCODE_PDF417 | 55 | |
| BARCODE_PDF417TRUNC | 56 | |
| BARCODE_MAXICODE | 57 | |
| BARCODE_QRCODE | 58 | |
| BARCODE_CODE128B | 60 | |
| BARCODE_AUSPOST | 63 | |
| BARCODE_AUSREPLY | 66 | |
| BARCODE_AUSROUTE | 67 | |
| BARCODE_AUSREDIRECT | 68 | |
| BARCODE_ISBNX | 69 | |
| BARCODE_RM4SCC | 70 | |
| BARCODE_DATAMATRIX | 71 | |
| BARCODE_EAN14 | 72 | |
| BARCODE_CODABLOCKF | 74 | |
| BARCODE_NVE18 | 75 | |
| BARCODE_JAPANPOST | 76 | |
| BARCODE_KOREAPOST | 77 | |
| BARCODE_RSS14STACK | 79 | |
| BARCODE_RSS14STACK_OMNI | 80 | |
| BARCODE_RSS_EXPSTACK | 81 | |
| BARCODE_PLANET | 82 | |
| BARCODE_MICROPDF417 | 84 | |
| BARCODE_ONECODE | 85 | |
| BARCODE_PLESSEY | 86 | |
| BARCODE_AZTEC | 92 |
width - There are four thickness level to the lines, 1 being the thinnest and 4 being the thickest.
height - The barcode height in pixel.
rotate - The barcode rotation, Value:
public int drawBitmap(Bitmap bmp,
int xDest,
int yDest)
bmp - The bitmap to drawn.
xDest - Start point at X axis.
yDest - Start point at Y axis.
int ret = printerManager.open();
if(ret == 0) {
int x = 100;
int y = 100;
BitmapFactory.Options opts = new BitmapFactory.Options();
Bitmap img = BitmapFactory.decodeResource(getResources(), R.drawable.ticket, opts);
int ret = printerManager.drawBitmap(img, x, y);
if(ret < 0) {
//drawBitmap failed
}
}
public int drawBitmapEx(byte[] bmp,
int xDest,
int yDest,
int widthDest,
int heightDest)
bmp - ByteArray data for mono-bitmaps.
xDest - Start point at X axis.
yDest - Start point at Y axis.
widthDest - Horizontal width bytes.
heightDest - Vertical height point.
public int getStatus()
PRNSTS_OK
PRNSTS_OUT_OF_PAPER
PRNSTS_OVER_HEAT
PRNSTS_UNDER_VOLTAGE
PRNSTS_BUSY
PRNSTS_ERR
PRNSTS_ERR_DRIVER