⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printpreviewcanvas.java

📁 业务信息管理平台,适用于企业内部信息管理,合同管理
💻 JAVA
字号:
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import javax.swing.*;

public class printPreviewCanvas extends JPanel
{
    Book book;
    int CurrentPage=0;
    public printPreviewCanvas(Book b)
    {
        book=b;
    }
    public void paintComponent(Graphics g)
    {        
        super.paintComponent(g);
        Graphics2D g2=(Graphics2D)g;
        PageFormat pageFormat=book.getPageFormat(CurrentPage);
        double px=pageFormat.getWidth(),
               py=pageFormat.getHeight(),
               sx=getWidth()-1,
               sy=getHeight()-1,
               scale=sy/py,
               xoff=0.5*(sx-scale*px),
               yoff=0;        
        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);
        Printable printable=book.getPrintable(CurrentPage);
        try{
            printable.print(g2,pageFormat,CurrentPage);
        }catch(PrinterException eee)
        {
            g2.draw(new Line2D.Double (0,0,px,py));
            g2.draw(new Line2D.Double (0,px,0,py));
        }               
    }
    public int filpPage(int by)
    {
        int newPage=CurrentPage+by;
        if (0<=newPage&&newPage<book.getNumberOfPages())
        {
            CurrentPage=newPage;
            repaint();
        }        
        return CurrentPage;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -