package tablePrint;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.JOptionPane;
import javax.swing.table.TableModel;
/**
* 打印的内容每行宽188毫米每行高度为5毫米
* @author tiger
*
*/
public class TablePrint implements Printable{
private String printStr;//要打印的字符串
private final int PAGES=1;//连续走纸,所以只打印一页
private final float heightEachLine=5*72/24.5f;//每行的高度5毫米,每72个点等于24.5毫米
private final float widthEachLine=188*72/24.5f;//每行的宽度188毫米
private final float asciiCharWidth=6;//一个ascii字符的宽度占的点数
private final int asciiCharNumber=(int)(widthEachLine/asciiCharWidth);//一行最多打的ascii字符个数,1个汉字的宽度等于2
个ascii字符
/**
* 实现java.awt.print.Printable.print
*/
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.black)