android.device
Class PrinterManager

java.lang.Object
  extended by android.device.PrinterManager

public class PrinterManager
extends java.lang.Object

The android.device.PriterManager provides support for printer

To print data with this class, use the following steps:

  1. Obtain an instance of Printer with PrinterManager printer = new PrinterManager().
  2. Call setupPage(int, int) to initialize the page size.
  3. If necessary, append a line in the current page with drawLine(int , int , int , int , int ).
  4. If necessary, append text in the current page with drawTextEx(String , int, int , int , int , String ,int , int , int , int ).
  5. If necessary, append barcode data in the current page with drawBarcode(String , int , int , int ,int , int , int ).
  6. If necessary, append picture data in the current page with drawBitmap(Bitmap , int , int ).
  7. To begin print the current page session, call printPage(int).


Field Summary
static int PRNSTS_BUSY
          The printer is currently busy
static int PRNSTS_ERR
          The printer unknow error
static int PRNSTS_ERR_DRIVER
          The printer driver error
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
          The printer is under voltage
 
Constructor Summary
PrinterManager()
           
 
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()
          Gets the current state of the printer PRNSTS_OK PRNSTS_OUT_OF_PAPER PRNSTS_OVER_HEAT PRNSTS_UNDER_VOLTAGE PRNSTS_BUSY PRNSTS_ERR PRNSTS_ERR_DRIVER Returns the printer status. 0 for status OK
 int open()
          Opens the printer
 int printPage(int rotate)
          Print the current page.
 void setGrayLevel(int level)
          Set print gray level
 void setSpeedLevel(int level)
          Set print speed level
 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
 

Field Detail

PRNSTS_OK

public static final int PRNSTS_OK
The printer is working OK

See Also:
Constant Field Values

PRNSTS_OUT_OF_PAPER

public static final int PRNSTS_OUT_OF_PAPER
The printer is out of paper

See Also:
Constant Field Values

PRNSTS_OVER_HEAT

public static final int PRNSTS_OVER_HEAT
The printer is over heat

See Also:
Constant Field Values

PRNSTS_UNDER_VOLTAGE

public static final int PRNSTS_UNDER_VOLTAGE
The printer is under voltage

See Also:
Constant Field Values

PRNSTS_BUSY

public static final int PRNSTS_BUSY
The printer is currently busy

See Also:
Constant Field Values

PRNSTS_ERR

public static final int PRNSTS_ERR
The printer unknow error

See Also:
Constant Field Values

PRNSTS_ERR_DRIVER

public static final int PRNSTS_ERR_DRIVER
The printer driver error

See Also:
Constant Field Values
Constructor Detail

PrinterManager

public PrinterManager()
Method Detail

open

public int open()
Opens the printer

Returns:
Returns 0 if open successful. Returns -1 if failed

close

public int close()
Close the printer


setSpeedLevel

public void setSpeedLevel(int level)
Set print speed level

Parameters:
level - value is 50 to 80,default 62

setGrayLevel

public void setGrayLevel(int level)
Set print gray level

Parameters:
level - value is 0 to 30, default 15.

setupPage

public int setupPage(int width,
                     int height)
Set the page size. Unit is in pixel. 8 pixels is equivalent to 1 mm.

Parameters:
width - Page width, -1 means largest possible width (width = 384)。
height - Page height. -1 means printer driver to manage the page height.
Returns:
0 when success, and -1 when failed.

clearPage

public int clearPage()
Clear the current page.

Returns:
Returns 0 if successful. Returns -1 if failed.

printPage

public int printPage(int rotate)
Print the current page.

Parameters:
rotate - The rotation angle, currently supports only 0 (non-rotating)
Returns:
Returns print status
  1. PRNSTS_OK
  2. PRNSTS_OUT_OF_PAPER
  3. PRNSTS_OVER_HEAT
  4. PRNSTS_UNDER_VOLTAGE
  5. PRNSTS_BUSY
  6. PRNSTS_ERR
  7. PRNSTS_ERR_DRIVER

drawLine

public int drawLine(int x0,
                    int y0,
                    int x1,
                    int y1,
                    int lineWidth)
Draw a line in the current page.
(0,0) point axis: On the upper left corner of the screen

Parameters:
x0 - start point X axis,
y0 - start point Y axis
x1 - end point X axis,
y1 - end point Y axis
lineWidth - in pixel.
Returns:
Returns 0 if successful. Returns -1 if failed.

drawText

public 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

Parameters:
data - The string to be draw
x - Start point X axis,
y - Start point Y axis
fontname - Font to be used, otherwise, default system font is used. Custom fonts can be specified, for example, specifying the full path /mnt/sdcard/xxx.ttf.
fontsize - The font size, in pixel
bold - The font bold style
italic - The font italic style
rotate - The text direction. 0 no rotation, 1 rotate 90 degree, 2 rotate 180 degree, 3 rotate 270 degree.
Returns:
If successful, returns actual printing height. Returns -1 when failed.

drawTextEx

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)
Draw text on the current page

Parameters:
data - The string to be draw
x - Start point X axis,
y - Start point Y axis
width - Text is printed to the width of the rectangle on the page
height - Text is printed to the height of the rectangle on the page
fontname - font to be use, otherwise, default system font is used. Or custom fonts i.e. /mnt/sdcard/xxx.ttf the path.
fontsize - the font size, in pixel
rotate - print the text degree, 0 no rotation, 1 rotate 90 degree, 2 rotate 180 degree, 3 rotate 270 degree.
style - Font style (0x0001 - underline, 0x0002 - italic, 0x0004 - bold 0x0008 reverse effect, 0x0010 - strike out), you can mix the style by using the or operator, style= 0x0002|0x0004
format - Set to 0 means word wrap at the specified width range 0-384, Set to 1 means no word wrap
Returns:
Returns actual printing height if successful. Returns -1 if failed.

drawBarcode

public int drawBarcode(java.lang.String data,
                       int x,
                       int y,
                       int barcodetype,
                       int width,
                       int height,
                       int rotate)
Draw barcode on the current page

Parameters:
data - The barcode text
x - Start point at X axis,
y - Start point at Y axis
barcodetype - Following Table shows the supported symbology
BARCODE_CODE111
BARCODE_C25MATRIX2
BARCODE_C25INTER3
BARCODE_C25IATA4
BARCODE_C25LOGIC6
BARCODE_C25IND7
BARCODE_CODE398
BARCODE_EXCODE399
BARCODE_EANX13
BARCODE_EAN12816
BARCODE_CODABAR18
BARCODE_CODE12820
BARCODE_DPLEIT21
BARCODE_DPIDENT22
BARCODE_CODE16K23
BARCODE_CODE4924
BARCODE_CODE9325
BARCODE_FLAT28
BARCODE_RSS1429
BARCODE_RSS_LTD30
BARCODE_RSS_EXP31
BARCODE_TELEPEN32
BARCODE_UPCA34
BARCODE_UPCE37
BARCODE_POSTNET40
BARCODE_MSI_PLESSEY47
BARCODE_FIM49
BARCODE_LOGMARS50
BARCODE_PHARMA51
BARCODE_PZN52
BARCODE_PHARMA_TWO53
BARCODE_PDF41755
BARCODE_PDF417TRUNC56
BARCODE_MAXICODE57
BARCODE_QRCODE58
BARCODE_CODE128B60
BARCODE_AUSPOST63
BARCODE_AUSREPLY66
BARCODE_AUSROUTE67
BARCODE_AUSREDIRECT68
BARCODE_ISBNX69
BARCODE_RM4SCC70
BARCODE_DATAMATRIX71
BARCODE_EAN1472
BARCODE_CODABLOCKF74
BARCODE_NVE1875
BARCODE_JAPANPOST76
BARCODE_KOREAPOST77
BARCODE_RSS14STACK79
BARCODE_RSS14STACK_OMNI80
BARCODE_RSS_EXPSTACK81
BARCODE_PLANET82
BARCODE_MICROPDF41784
BARCODE_ONECODE85
BARCODE_PLESSEY86
BARCODE_AZTEC92
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, 0 no rotation, 1 rotate 90 degree, 2 rotate 180 degree, 3 rotate 270 degree.
Returns:
Returns actual printing height if successful. Returns -1 when failed.

drawBitmap

public int drawBitmap(Bitmap bmp,
                      int xDest,
                      int yDest)
Draw a bitmap on the current page

Parameters:
bmp - The bitmap to be drawn
xDest - Start point at X axis,
yDest - Start point at Y axis,
Returns:
Returns actual printing height is successful. Returns -1 if failed.

drawBitmapEx

public int drawBitmapEx(byte[] pbmp,
                        int xDest,
                        int yDest,
                        int widthDest,
                        int heightDest)
Draw a mono-bitmaps on the current page

Parameters:
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
Returns:
Returns actual printing height is successful. Returns -1 if failed.

getStatus

public int getStatus()
Gets the current state of the printer
  1. PRNSTS_OK
  2. PRNSTS_OUT_OF_PAPER
  3. PRNSTS_OVER_HEAT
  4. PRNSTS_UNDER_VOLTAGE
  5. PRNSTS_BUSY
  6. PRNSTS_ERR
  7. PRNSTS_ERR_DRIVER
Returns the printer status. 0 for status OK. -1 for out of paper. -2 for overheated