「java打印demo」Java打印直角梯形

博主:adminadmin 2022-11-25 22:10:06 65

本篇文章给大家谈谈java打印demo,以及Java打印直角梯形对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

急求一个用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();

}

怎么做一个word模板,用java调用打印功能

1、首先新建一个空白文档,并另存为“Normal.dotm(Word2007及以后版本)Normal.dot(Word2003-2007版本)”。

2、进行需要的模板设置,对字体、段落、页眉页脚,页面边距等进行设置。

3、对字体、段落的设置:在空白的新文档中,右击进行对字体的设置,在设置完成后,点击“默认”按钮。

4、对页眉页脚,页面边距:同样在菜单栏,选择插入"页眉页脚"进行设置,设置后点击“默认”按钮,并同时设置“页面边距”并点击“默认”按钮。

5、在全面进行模板设置后,需要保存,在操作中会出现对一些“默认的设置”如果所示,要选择“是”,“你准备将默认的字体更改为.....,是否将此更改应用于所有基于NORMAL模板的新文档?”

6、把刚才保存的模板,复制起来,在打开“C:\Users\Administrator\AppData\Roaming\Microsoft\Templates”替换原有的Normal.dotm或Normal.dot,关闭。

7、测试效果:打开一个Word文档,并按下“CTRL+N”新建一个空白文档,任意输入内容,可以看到是刚才设置的模板。

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打印报表,或者一个finereport的demo也可以

java后台定义定时打印的功能,同时又需要直接调用报表的打印的时候,由于打印机型号和纸张的不同,需要指定打印机,从而打印是否成功并设置返回值

package com.fr.io;

import java.io.File;

import java.util.HashMap;

import com.fr.base.FRContext;

import com.fr.base.Parameter;

import com.fr.dav.LocalEnv;

import com.fr.main.TemplateWorkBook;

import com.fr.print.PrintUtils;

public class JavaPrint {

public static void main(String[] args) {

// 定义报表运行环境,才能执行报表

String envPath = "D:\\FineReport\\develop\\code\\build\\package\\WebReport\\WEB-INF";

FRContext.setCurrentEnv(new LocalEnv(envPath));

try {

TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), "GettingStarted.cpt");

// 参数传值

Parameter[] parameters = workbook.getParameters();

HashMapString, String paraMap = new HashMapString, String();

paraMap.put(parameters[0].getName(), "华北");

// java中调用报表打印方法

boolean a = PrintUtils.printWorkBook("GettingStarted.cpt", paraMap, true);

if (a == false) {

System.out.println("失败啦!返回" + a);

} else {

System.out.println("成功!返回" + a);

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

还有问题的话可以到帮助文档中寻找答案或者帆软论坛求助

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

The End

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