📜  java 页面设置 - Java (1)

📅  最后修改于: 2023-12-03 15:01:34.807000             🧑  作者: Mango

Java 页面设置

在Java中设置页面的大小和方向有很多种方法,可以通过代码实现或者打开打印对话框,在打印对话框中设置。

通过代码设置页面属性

设置页面属性可以使用Java的PrintService类和PageFormat类。PrintService类用于获取打印机服务,PageFormat类用于设置页面大小和方向。

import java.awt.print.PageFormat;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;

public class PageSetup {
  
  public static void main(String[] args) throws PrinterException {
    PrintService defaultPrinter = PrintServiceLookup.lookupDefaultPrintService();

    PrinterJob printerJob = PrinterJob.getPrinterJob();
    printerJob.setPrintService(defaultPrinter);

    PageFormat pageFormat = printerJob.defaultPage();
    pageFormat.setOrientation(PageFormat.LANDSCAPE);
    pageFormat.setPaper(new CustomPaper());
    printerJob.validatePage(pageFormat);

    printerJob.print();
  }
}

class CustomPaper extends java.awt.print.Paper {
  public CustomPaper() {
    super();
    double width = 4.5 * 72d;
    double height = 10 * 72d;
    this.setSize(width, height);
    this.setImageableArea(0, 0, width, height);
  }
}

此代码将把纸张设置为宽度为4.5英寸,高度为10英寸。它还将设置页面方向为横向。

打开打印对话框设置页面属性

在Java中打开打印对话框,可以使用PrinterJob类的printDialog()方法。这将打开一个对话框,其中可以设置页面大小和方向。

import java.awt.print.PageFormat;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PageSetupDialog {
  
  public static void main(String[] args) throws PrinterException {
    PrinterJob printerJob = PrinterJob.getPrinterJob();
    if (printerJob.printDialog()) {
      PageFormat pageFormat = printerJob.getPageFormat(null);
      pageFormat.setOrientation(PageFormat.LANDSCAPE);
      printerJob.setPrintable(new CustomPrintable(), pageFormat);

      printerJob.print();
    }
  }
}

class CustomPrintable implements java.awt.print.Printable {
  
  public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
    if (pageIndex > 0) {
      return NO_SUCH_PAGE;
    }

    Graphics2D g2d = (Graphics2D) graphics;
    g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
    g2d.setColor(Color.black);
    g2d.drawString("Hello World", 0, 0);
    return PAGE_EXISTS;
  }
}

此代码将打开一个打印对话框,其中您可以设置页面方向和大小。页面设置后,将打印“Hello World”字符串。