文档说它创建了一个新的pageFormat示例,并将其设置为默认大小和方向。这里的默认值是什么?是打印机专用页吗?
wvt8vs2t1#
正如Mark所说,默认的页面格式是从PrinterJob的PrintService获取的。内部sun.print.RasterPrinterJob类具有以下内容:
public PageFormat defaultPage(PageFormat page) { PageFormat newPage = (PageFormat) page.clone(); Paper newPaper = new Paper(); double ptsPerInch = 72.0; double w, h; Media media = null; PrintService service = getPrintService(); if (service != null) { MediaSize size; media = (Media)service.getDefaultAttributeValue(Media.class); if (media instanceof MediaSizeName && ((size = MediaSize.getMediaSizeForName((MediaSizeName) media)) != null)) { w = size.getX(MediaSize.INCH) * ptsPerInch; h = size.getY(MediaSize.INCH) * ptsPerInch; newPaper.setSize(w, h); newPaper.setImageableArea(ptsPerInch, ptsPerInch, w - 2.0*ptsPerInch, h - 2.0*ptsPerInch); newPage.setPaper(newPaper); return newPage; } }
如果未定义打印服务,则该方法福尔斯到猜测:
/* Default to A4 paper outside North America. */ String defaultCountry = Locale.getDefault().getCountry(); if (!Locale.getDefault().equals(Locale.ENGLISH) && // ie "C" defaultCountry != null && !defaultCountry.equals(Locale.US.getCountry()) && !defaultCountry.equals(Locale.CANADA.getCountry())) { double mmPerInch = 25.4; w = Math.rint((210.0*ptsPerInch)/mmPerInch); h = Math.rint((297.0*ptsPerInch)/mmPerInch); newPaper.setSize(w, h); newPaper.setImageableArea(ptsPerInch, ptsPerInch, w - 2.0*ptsPerInch, h - 2.0*ptsPerInch); }
(为了清晰起见,我在某些地方对上面的代码进行了格式化和修剪。因此,总的来说,该方法返回:
1条答案
按热度按时间wvt8vs2t1#
正如Mark所说,默认的页面格式是从PrinterJob的PrintService获取的。
内部sun.print.RasterPrinterJob类具有以下内容:
如果未定义打印服务,则该方法福尔斯到猜测:
(为了清晰起见,我在某些地方对上面的代码进行了格式化和修剪。
因此,总的来说,该方法返回: