「java打印程序书」java 打印pdf

博主:adminadmin 2022-11-21 13:52:09 132

本篇文章给大家谈谈java打印程序书,以及java 打印pdf对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎么用java调用默认打印机打印文档?

java实现调用默认打印机打印文档(以D盘zhidao.txt文档为例),代码如下:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

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.ServiceUI;

import javax.print.SimpleDoc;

import javax.print.attribute.DocAttributeSet;

import javax.print.attribute.HashDocAttributeSet;

import javax.print.attribute.HashPrintRequestAttributeSet;

import javax.print.attribute.PrintRequestAttributeSet;

/**

 * 调用打印机功能

 * @author Administrator

**/

public class PrintDemoII {

public static void main(String[] args) {

DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

PrintService []pservices = PrintServiceLookup.lookupPrintServices(flavor, aset);

PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();

PrintService service = ServiceUI.printDialog(null, 200, 200, pservices, 

defaultService, flavor, aset);

if(service != null){

try {

DocPrintJob pj =service.createPrintJob();

FileInputStream fis = new FileInputStream("D:"+ File.separator +"zhidao.txt");//打印D盘zhidao.txt文档。

DocAttributeSet das = new HashDocAttributeSet();

Doc doc = new SimpleDoc(fis, flavor, das);

pj.print(doc, aset);

} catch (FileNotFoundException fe) {

fe.printStackTrace();

} catch (PrintException e) {

e.printStackTrace();

}

}else {

System.out.println("打印失败");

}

}

}

用java写个打印日期的程序

package com.gb.work;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Date;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class servletDate extends HttpServlet {

/**

*

*/

protected void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// TODO Auto-generated method stub

response.setContentType("text/html");

Date d=new Date();

PrintWriter out=response.getWriter();

out.println("font color='red'"+d+"/font");

out.flush();

out.close();

}

}

然后在web.xml中

?xml version="1.0" encoding="UTF-8"?

web-app version="2.4"

xmlns=""

xmlns:xsi=""

xsi:schemaLocation="

"

servlet

servlet-nameservlet1/servlet-name

servlet-classcom.gb.work.servletDate/servlet-class

/servlet

servlet-mapping

servlet-nameservlet1/servlet-name

url-pattern/servlet/java/url-pattern

/servlet-mapping

/web-app

我已经给你改了,你调试看看

你有几个错误,

首先,你程序执行完了应该关闭,out.close();

第二,你的路径有问题,com.gb.work.servletDate 就可以了,

第三,你可以将super删除

在java怎么实现打印程序设计

Print.java--打印内容定义

[code]

import java.awt.*;

import java.awt.event.*;

import java.awt.print.*;

import java.awt.image.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.event.*;

import java.util.*;

import java.io.*;

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("黑体",Font.BOLD,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=PageFormat.PORTRAIT;

//设置打印对象,默认纸张

PrinterJob prnJob=PrinterJob.getPrinterJob();

PageFormat pageFormat=prnJob.defaultPage();

pageFormat.setOrientation(m_orientation);

m_wPage=(int)(pageFormat.getWidth());

m_hPage=(int)(pageFormat.getHeight());

//将待打印的窗体根据默认纸张设置传入打印对象

prnJob.setPrintable(this,pageFormat);

if(!prnJob.printDialog()) return;

prnJob.print();

}catch(PrinterException ex){

ex.printStackTrace();

System.err.println("打印错误:"+ex.toString());

}

}

/**

* 初始化打印参数

*/

public void initPrintParameter()

{

}

/**

*构造打印内容,以送打印机打印

*/

public int print(Graphics pg,PageFormat pageFormat,

int pageIndex) throws PrinterException{

//初始化打印参数

initPrintParameter();

//将画布设置为页面大小

pg.translate((int)pageFormat.getImageableX(),

(int)pageFormat.getImageableY());

int wPage=0;

int hPage=0;

//根据打印机页面设置调整画布大小

if(pageFormat.getOrientation()==pageFormat.PORTRAIT){

wPage=(int)pageFormat.getImageableWidth();

hPage=(int)pageFormat.getImageableHeight();

}

else{

wPage=(int)pageFormat.getImageableWidth();

wPage+=wPage/2;

hPage=(int)pageFormat.getImageableHeight();

pg.setClip(0,0,wPage,hPage);

}

wPage=wPage-2*leftSpace;

hPage=hPage-2*topSpace;

xStart=leftSpace;

xEnd=wPage-2;

//为画布设置颜色和字体

int y=topSpace;

pg.setFont(titleFont);

pg.setColor(Color.black);

//画标题,并使其居中

Font fn=pg.getFont();

FontMetrics fm=pg.getFontMetrics();

y+=fm.getAscent();

alignText(title,pg,y,xStart,xEnd,headAlign);

y+=30;

x=leftSpace+2;

Font headerFont=new Font("宋体",Font.BOLD,14);

pg.setFont(headerFont);

fm=pg.getFontMetrics();

int h=fm.getAscent();

yStart=y-1;

y+=h;

pg.setFont(headerFont);

fm=pg.getFontMetrics();

int header=y;

h=fm.getHeight();

//计算行高,每页行数,总行数和指定页码的起始行、结束行

int rowH=Math.max(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;

}

pg.drawString(strTemp,x,y);

//画表格边框

pg.drawLine(xStart,yStart,xStart,yEnd);

pg.drawLine(xStart,yStart,xEnd,yStart);

pg.drawLine(xEnd,yStart,xEnd,yEnd);

pg.drawLine(xStart,yEnd,xEnd,yEnd);

//打印页码

if(hasTail){

int pageNumber=pageIndex+1;

String s="第"+pageNumber+"页";

alignText(s,pg,yEnd+30,xStart,xEnd,tailAlign);

}

System.gc();

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=pg.getFont();

FontMetrics fm=pg.getFontMetrics();

int wString=fm.stringWidth(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;

}

pg.drawString(s,x,y);

}

public static void main(String[] args){

Print p=new Print();

p.doPrint();

}

}

[code]

运行方法:

javac -d . Print.java

java Print

自己运行一下

java程序设计:创建一个打印类Printer,定义抽象方法print();

public abstract class Printer {

public abstract void print();

}

class A extends Printer{

@Override

public void print() {

System.out.println("-----AAAAAAAAAA------");

}

}

class B extends Printer{

@Override

public void print() {

System.out.println("-----BBBBBBBBBB------");

}

}

class C extends Printer{

@Override

public void print() {

System.out.println("-----CCCCCCCCCC------");

}

}

class Test{

public static void main(String[] args) {

Printer Aprinter = new A();

Aprinter.print();

Printer Bprinter = new B();

Bprinter.print();

Printer Cprinter = new C();

Cprinter.print();

}

}

求写Java打印菱形实例程序?

import java.lang.Math;

public class Lingx{

public static void main(String[] args) {

Lingx l=new Lingx();

System.out.print("请输入数字:");

int n = new Scanner(System.in).nextInt();

//l.p(5);

l.p(n);

}

public void p(int n){

for(int i=0;i2*n+1;i++){

for(int j=0;jMath.abs(n-i);j++){

System.out.print(" ");

}

for(int j=0;j2*(n-Math.abs(n-i))+1;j++){

System.out.print("*");

}

System.out.println();

}

}

}

写这种代码,主要是看解题思路,从简单到复杂,从考虑实现到考虑运行效率。

比如刚开始可以考虑先输出菱形上面的三角形,再出菱形下面的三角形(这样代码比较繁琐)。再复杂一点,你可以先考虑菱形的左半边如何输出,这就用到了数学中的函数逻辑,这样代码就简洁了不少,再复杂就开始运行效率(对于初学者或这运算数据比较少时,就暂不用考虑)。

慢慢提升!!!

java打印程序书的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 打印pdf、java打印程序书的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。