>
Printjava--打印内容定义
[code]
import javaawt;
import javaawtevent;
import javaawtprint;
import javaawtimage;
import javaxswing;
import javaxswingevent;
import javaxswingborder;
import javaxswingevent;
import javautil;
import javaio;
public class Print implements Printable{
int m_wPage;
int m_hPage;
int m_orientation;
Printable m_target;
int maxNumPage=1;
String title="数据表格打印";
Font titleFont=new Font("黑体",FontBOLD,14);
boolean hasTail=true;
int tailAlign=0;
int headAlign=0;
int topSpace=0;
int leftSpace=0;
int yStart=0;
int yEnd=0;
int xStart=topSpace;
int xEnd=0;
int x=0,y=0;
String strTemp="打印内容";
public void doPrint(){
try{
m_orientation=PageFormatPORTRAIT;
//设置打印对象,默认纸张
PrinterJob prnJob=PrinterJobgetPrinterJob();
PageFormat pageFormat=prnJobdefaultPage();
pageFormatsetOrientation(m_orientation);
m_wPage=(int)(pageFormatgetWidth());
m_hPage=(int)(pageFormatgetHeight());
//将待打印的窗体根据默认纸张设置传入打印对象
prnJobsetPrintable(this,pageFormat);
if(!prnJobprintDialog()) return;
prnJobprint();
}catch(PrinterException ex){
exprintStackTrace();
Systemerrprintln("打印错误:"+extoString());
}
}
/
初始化打印参数
/
public void initPrintParameter()
{
}
/
构造打印内容,以送打印机打印
/
public int print(Graphics pg,PageFormat pageFormat,
int pageIndex) throws PrinterException{
//初始化打印参数
initPrintParameter();
//将画布设置为页面大小
pgtranslate((int)pageFormatgetImageableX(),
(int)pageFormatgetImageableY());
int wPage=0;
int hPage=0;
//根据打印机页面设置调整画布大小
if(pageFormatgetOrientation()==pageFormatPORTRAIT){
wPage=(int)pageFormatgetImageableWidth();
hPage=(int)pageFormatgetImageableHeight();
}
else{
wPage=(int)pageFormatgetImageableWidth();
wPage+=wPage/2;
hPage=(int)pageFormatgetImageableHeight();
pgsetClip(0,0,wPage,hPage);
}
wPage=wPage-2leftSpace;
hPage=hPage-2topSpace;
xStart=leftSpace;
xEnd=wPage-2;
//为画布设置颜色和字体
int y=topSpace;
pgsetFont(titleFont);
pgsetColor(Colorblack);
//画标题,并使其居中
Font fn=pggetFont();
FontMetrics fm=pggetFontMetrics();
y+=fmgetAscent();
alignText(title,pg,y,xStart,xEnd,headAlign);
y+=30;
x=leftSpace+2;
Font headerFont=new Font("宋体",FontBOLD,14);
pgsetFont(headerFont);
fm=pggetFontMetrics();
int h=fmgetAscent();
yStart=y-1;
y+=h;
pgsetFont(headerFont);
fm=pggetFontMetrics();
int header=y;
h=fmgetHeight();
//计算行高,每页行数,总行数和指定页码的起始行、结束行
int rowH=Mathmax(h,10);
int tailH=rowH+30;
int rowPerPage=0;
int leftPix=0;
if(hasTail){
rowPerPage=(hPage-header-tailH)/rowH;
leftPix=(hPage-header-tailH)%rowH;
yEnd=hPage-leftPix-tailH+2;
}
else{
rowPerPage=(hPage-header)/rowH;
leftPix=(hPage-header)%rowH;
yEnd=hPage-leftPix+2;
}
pgdrawString(strTemp,x,y);
//画表格边框
pgdrawLine(xStart,yStart,xStart,yEnd);
pgdrawLine(xStart,yStart,xEnd,yStart);
pgdrawLine(xEnd,yStart,xEnd,yEnd);
pgdrawLine(xStart,yEnd,xEnd,yEnd);
//打印页码
if(hasTail){
int pageNumber=pageIndex+1;
String s="第"+pageNumber+"页";
alignText(s,pg,yEnd+30,xStart,xEnd,tailAlign);
}
Systemgc();
return PAGE_EXISTS;
}
/
文字排列,坐标在y处,显示范围(start-end)
0表示居中显示,1表示左对齐,2表示右对齐
/
private void alignText(String s,Graphics pg,int y,int start,
int end,int mode){
Font fn=pggetFont();
FontMetrics fm=pggetFontMetrics();
int wString=fmstringWidth(s);
int x=start;
switch(mode)
{
case 0:
if((end-start-wString)>0) x=start+(end-start-wString)/2;
break;
case 1:
break;
case 2:
if((end-start-wString)>0) x=start+(end-start-wString);
break;
}
pgdrawString(s,x,y);
}
public static void main(String[] args){
Print p=new Print();
pdoPrint();
}
}
[code]
运行方法:
>javac -d Printjava
>java Print
自己运行一下
以上就是关于怎样用Java,找到本地sqlserver 的端口号全部的内容,包括:怎样用Java,找到本地sqlserver 的端口号、两台电脑用一根网线相连,怎么用java语言获取另一台电脑的IP地址和端口、java如何实现打印功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)