当前位置:  技术问答>java相关

求打印预浏

    来源: 互联网  发布时间:2015-11-09

    本文导语:  同题目 | import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.util.*; import java.awt.print.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; public class PrintPreview extends...

同题目

|
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.*;
import java.awt.print.*;

import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;

public class PrintPreview extends JFrame 
{
  protected int m_wPage;
  protected int m_hPage;
  protected Printable m_target;
  protected JComboBox m_cbScale;
  protected PreviewContainer m_preview;

  public PrintPreview(Printable target) {
    this(target, "Print Preview");
  }

  public PrintPreview(Printable target, String title) {
    super(title);
    setSize(600, 400);
    m_target = target;

    JToolBar tb = new JToolBar();
    JButton bt = new JButton("Print", new ImageIcon("print.gif"));
    ActionListener lst = new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
        try {
          // Use default printer, no dialog
          PrinterJob prnJob = PrinterJob.getPrinterJob();
          prnJob.setPrintable(m_target);
          setCursor( Cursor.getPredefinedCursor(
            Cursor.WAIT_CURSOR));
          prnJob.print();
          setCursor( Cursor.getPredefinedCursor(
            Cursor.DEFAULT_CURSOR));
          dispose();
        }
        catch (PrinterException ex) {
          ex.printStackTrace();
          System.err.println("Printing error: "+ex.toString());
        }
      }
    };
    bt.addActionListener(lst);
    bt.setAlignmentY(0.5f);
    bt.setMargin(new Insets(4,6,4,6));
    tb.add(bt);

    bt = new JButton("Close");
    lst = new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
        dispose();
      }
    };
    bt.addActionListener(lst);
    bt.setAlignmentY(0.5f);
    bt.setMargin(new Insets(2,6,2,6));
    tb.add(bt);

    String[] scales = { "10 %", "25 %", "50 %", "100 %" };
    m_cbScale = new JComboBox(scales);
    lst = new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
        Thread runner = new Thread() {
          public void run() {
            String str = m_cbScale.getSelectedItem().
              toString();
            if (str.endsWith("%"))
              str = str.substring(0, str.length()-1);
            str = str.trim();
              int scale = 0;
            try { scale = Integer.parseInt(str); }
            catch (NumberFormatException ex) { return; }
            int w = (int)(m_wPage*scale/100);
            int h = (int)(m_hPage*scale/100);

            Component[] comps = m_preview.getComponents();
            for (int k=0; k

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:服务格式化打印数据定义及介绍
  • (急,改天请吃饭,谢)如何把jsp页面的打印按纽关联到IE的打印功能或如何用简单的实现打印页面
  • Linux c字符串中不可打印字符转换成16进制
  • 用applet实现打印,除了弹出系统自带的打印对话框,在自其前后各弹出一个”小应用程序需打印,要继续吗?“的对话框,如何去掉这两个对话
  • java命名空间javax.print类docflavor的类成员方法:客户端格式化打印数据定义及介绍
  • UNIX下如何通过并口,驱动打印机打印格式文件
  • [debian]打印机装好了,但是打印不了,怎么检查是哪里的问题呢?
  • 打印高手请进:如何得到当前正在打印的页数
  • printFinal打印插件-基于jQuery-支持打印预览 printFinal
  • 如何能够只打印,页面上的表格,页面上的上一页,下一页,还有按钮不打印
  • redhat9 如何连接到xp上共享的打印机来打印?
  • 有谁在linux串口下用ESCPOS指令控制打印机打印,碰到问题,请赐教
  • 请问UNIX系统下装上WINDOWS的打印机驱动程序,可否打印?
  • Solaris打印,lp 命令打印有长行的文本文件时后半段被截掉了,怎么办? 急!!!!!!!!!!!!!!!!!!!
  • 如何配置linux,使windows系统可以直接打印到linux的打印机上??
  • jsp页面中如何打印格式报表(不是打印页面内容)?
  • 模拟打印机排队打印效果
  • 如何能够只打印页面上的表格,页面上的上一页,下一页(是链接)和按钮不打印
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请问如何在Unix C程序中使用打印控制码?(已有打印机使用手册)
  • 各位打印过PDF文档吗?我打印的时候,经常打出乱码来,比如don't就会变成乱码,还有其它非英文字符也会变成乱码,有解决方法吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3