当前位置:首页 » 编程语言 » java打印预览

java打印预览

发布时间: 2022-02-15 23:23:37

‘壹’ java swing jtable 打印+打印预览(求代码)

使用JTABLE做出和打印预览一样的分页效果然后PAINT出来就可以了!

‘贰’ 如何用java中的JPanel或者Jframe中 显示word文档,word文档的格式不变,就是用java做打印预览,预览word

如果是word文档格式不变的话 你就得知道它的编码方式 不像是纯文本的东西可以直接取出来
这个好像只能用POI来操作word文件吧。

‘叁’ java实现打印功能需要的jar包有哪些 实现预览需要的功能有哪些

java实现打印功能不需要导包,javax.print.*; 这个包下都是实现打印和预览的类.你打开API ,在搜索栏里输入打印搜搜就可以看到一些打印的接口 .至于怎么实现打印和预览请对着API看好吗?

‘肆’ Java如何实现打印预览

猪哥解答:
我这里有以前收藏的代码,两个类实现了简易的文本打印机的功能,包括预览。简单跟你说一下。
1、PrinterDemo.java主体类,也是入口类,里面有main方法可以直接在Eclipse中调试运行,他实现了从本地磁盘读取文本类文件打印以及打印预览的功能,其中File动作按钮中的PrintPreviw就是打印预览功能,你可以运行看看。
2、PrintPreview.java打印预览类,这是专门为预览打印设计的类,通过他的构造方法可以构造出一个预览类,PrinterDemo中的预览功能就是调用了这个类。

两个类放在同一个包下。

提交不上去,我把源码贴上来提交不了,字数也没有超标。你留一个邮箱,或者等我的文库上传的源码吧,我放到文库里,还在审批。

问题补充:档案已经上传到文库里了,地址是
DOC格式的:http://wenku..com/view/048ae0e8856a561252d36fab.html
PDF格式的:http://wenku..com/view/67c57a69011ca300a6c390fd.html
你下来看看吧。

‘伍’ 请问java swing程序怎么实现JTable的打印预览和打印注意 打印前需要类似于Excel的打印预览

请问楼主 你解决了吗 我也需要这个

‘陆’ 急求一个用Java实现的打印及打印预览功能的Demo

package com.szallcom.tools;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.awt.print.PageFormat;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;

import wf.common.SystemProperties;

public class PrintPreviewDialog extends JDialog implements ActionListener{

private JButton nextButton = new JButton("Next");
private JButton previousButton = new JButton("Previous");
private JButton closeButton = new JButton("Close");
private JPanel buttonPanel = new JPanel();
private PreviewCanvas canvas;

public PrintPreviewDialog(Frame parent, String title, boolean modal,
PrintTest pt, String str) {
super(parent, title, modal);
canvas = new PreviewCanvas(pt, str);
setLayout();
}

private void setLayout() {
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(canvas, BorderLayout.CENTER);

nextButton.setMnemonic('N');
nextButton.addActionListener(this);
buttonPanel.add(nextButton);
previousButton.setMnemonic('N');
previousButton.addActionListener(this);
buttonPanel.add(previousButton);
closeButton.setMnemonic('N');
closeButton.addActionListener(this);
buttonPanel.add(closeButton);
this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
this.setBounds((int) ((SystemProperties.SCREEN_WIDTH - 400) / 2),
(int) ((SystemProperties.SCREEN_HEIGHT - 400) / 2), 400, 400);
}

public void actionPerformed(ActionEvent evt) {
Object src = evt.getSource();
if (src == nextButton)
nextAction();
else if (src == previousButton)
previousAction();
else if (src == closeButton)
closeAction();
}

private void closeAction() {
this.setVisible(false);
this.dispose();
}

private void nextAction() {
canvas.viewPage(1);
}

private void previousAction() {
canvas.viewPage(-1);
}

class PreviewCanvas extends JPanel {
private String printStr;
private int currentPage = 0;
private PrintTest preview;

public PreviewCanvas(PrintTest pt, String str) {
printStr = str;
preview = pt;
}

public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
PageFormat pf = PrinterJob.getPrinterJob().defaultPage();

double xoff;
double yoff;
double scale;
double px = pf.getWidth();
double py = pf.getHeight();
double sx = getWidth() - 1;
double sy = getHeight() - 1;
if (px / py < sx / sy) {
scale = sy / py;
xoff = 0.5 * (sx - scale * px);
yoff = 0;
} else {
scale = sx / px;
xoff = 0;
yoff = 0.5 * (sy - scale * py);
}
g2.translate((float) xoff, (float) yoff);
g2.scale((float) scale, (float) scale);

Rectangle2D page = new Rectangle2D.Double(0, 0, px, py);
g2.setPaint(Color.white);
g2.fill(page);
g2.setPaint(Color.black);
g2.draw(page);

try {
preview.print(g2, pf, currentPage);
} catch (PrinterException pe) {
g2.draw(new Line2D.Double(0, 0, px, py));
g2.draw(new Line2D.Double(0, px, 0, py));
}
}

public void viewPage(int pos) {
int newPage = currentPage + pos;
if (0 <= newPage && newPage < preview.getPagesCount(printStr)) {
currentPage = newPage;
repaint();
}
}
}
}

package wf.common;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.Toolkit;

public final class SystemProperties {

public static final double SCREEN_WIDTH = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
public static final double SCREEN_HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
public static final String USER_DIR = System.getProperty("user.dir");
public static final String USER_HOME = System.getProperty("user.home");
public static final String USER_NAME = System.getProperty("user.name");
public static final String FILE_SEPARATOR = System.getProperty("file.separator");
public static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static final String PATH_SEPARATOR = System.getProperty("path.separator");
public static final String JAVA_HOME = System.getProperty("java.home");
public static final String JAVA_VENDOR = System.getProperty("java.vendor");
public static final String JAVA_VENDOR_URL = System.getProperty("java.vendor.url");
public static final String JAVA_VERSION = System.getProperty("java.version");
public static final String JAVA_CLASS_PATH = System.getProperty("java.class.path");
public static final String JAVA_CLASS_VERSION = System.getProperty("java.class.version");
public static final String OS_NAME = System.getProperty("os.name");
public static final String OS_ARCH = System.getProperty("os.arch");
public static final String OS_VERSION = System.getProperty("os.version");
public static final String[] FONT_NAME_LIST = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
public static final Font[] FONT_LIST = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
}

‘柒’ 做一个软件系统(java)时,如何在页面加打印预览按钮,及打印功能。

Java 打印程序设计
http: // www.ibm.com / developerworks / cn /java/ l-javaprint/
自行去掉空格,网络抽风,直接发网址会被和谐掉 ~~o(>_<)o ~~

‘捌’ JAVA实现JTable的打印和打印预览功能

这个很简单,你去看看jdk demo吧


‘玖’ java 打印 我想写个方法可以打印jTextArea中的内容,弄了半天没出来,打印预览什么的可以没有 请大家帮帮

搞个按钮,事件内容为
JOptionPane.showMessageDialog(null, 文本域名.getText());
在文本域里写几个字,按一下按钮,O了.

‘拾’ 求一个java打印预览的源码,是基于桌面的程序,不是web版的

兄弟,哥帮你弄,不收费,只要给采纳就可以了!代码如下:

packagetest;

importjava.awt.*;
importjava.awt.print.*;

{
intm_wPage;
intm_hPage;
intm_orientation;
Printablem_target;
intmaxNumPage=1;
Stringtitle="数据表格打印";
FonttitleFont=newFont("黑体",Font.BOLD,14);
booleanhasTail=true;
inttailAlign=0;
intheadAlign=0;
inttopSpace=0;
intleftSpace=0;

intyStart=0;
intyEnd=0;
intxStart=topSpace;
intxEnd=0;
intx=0,y=0;

StringstrTemp="打印内容";

publicvoiddoPrint(){
try{
m_orientation=PageFormat.PORTRAIT;
//设置打印对象,默认纸张
PrinterJobprnJob=PrinterJob.getPrinterJob();
PageFormatpageFormat=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(PrinterExceptionex){
ex.printStackTrace();
System.err.println("打印错误:"+ex.toString());
}
}

/**
*初始化打印参数
*/
publicvoidinitPrintParameter(){

}

/**
*构造打印内容,以送打印机打印
*/
publicintprint(Graphicspg,PageFormatpageFormat,intpageIndex)
throwsPrinterException{
//初始化打印参数
initPrintParameter();

//将画布设置为页面大小
pg.translate((int)pageFormat.getImageableX(),(int)pageFormat
.getImageableY());
intwPage=0;
inthPage=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;

//为画布设置颜色和字体
inty=topSpace;
pg.setFont(titleFont);
pg.setColor(Color.black);
//画标题,并使其居中
Fontfn=pg.getFont();
FontMetricsfm=pg.getFontMetrics();
y+=fm.getAscent();
alignText(title,pg,y,xStart,xEnd,headAlign);
y+=30;

x=leftSpace+2;

FontheaderFont=newFont("宋体",Font.BOLD,14);
pg.setFont(headerFont);
fm=pg.getFontMetrics();

inth=fm.getAscent();
yStart=y-1;
y+=h;

pg.setFont(headerFont);
fm=pg.getFontMetrics();
intheader=y;
h=fm.getHeight();

//计算行高,每页行数,总行数和指定页码的起始行、结束行
introwH=Math.max(h,10);
inttailH=rowH+30;
introwPerPage=0;
intleftPix=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){
intpageNumber=pageIndex+1;
Strings="第"+pageNumber+"页";
alignText(s,pg,yEnd+30,xStart,xEnd,tailAlign);
}
System.gc();
returnPAGE_EXISTS;
}

/**
*文字排列,坐标在y处,显示范围(start-end)0表示居中显示,1表示左对齐,2表示右对齐
*/
privatevoidalignText(Strings,Graphicspg,inty,intstart,intend,
intmode){
Fontfn=pg.getFont();
FontMetricsfm=pg.getFontMetrics();
intwString=fm.stringWidth(s);
intx=start;
switch(mode){
case0:
if((end-start-wString)>0)
x=start+(end-start-wString)/2;
break;
case1:
break;
case2:
if((end-start-wString)>0)
x=start+(end-start-wString);
break;
}
pg.drawString(s,x,y);
}

publicstaticvoidmain(String[]args){
JavaPrintp=newJavaPrint();
p.doPrint();
}
}

我的名字雷锋,请采纳~~

热点内容
java调用shell脚本参数 发布:2025-01-10 14:43:51 浏览:51
php数组计数 发布:2025-01-10 14:23:03 浏览:474
s盒算法 发布:2025-01-10 14:16:42 浏览:642
c语言用二分法求方程 发布:2025-01-10 14:15:45 浏览:219
广场舞加密 发布:2025-01-10 14:13:21 浏览:520
网络密码显示低安全性是什么意思 发布:2025-01-10 14:11:49 浏览:781
耻辱2博士保险箱密码是多少 发布:2025-01-10 14:11:41 浏览:100
如何把服务器搭在自己电脑 发布:2025-01-10 14:10:57 浏览:584
水晶可以存储 发布:2025-01-10 14:09:35 浏览:390
一级脚本号 发布:2025-01-10 14:08:06 浏览:533