PrintJob:toolkit.getPrintJob(frame, jobName, null)。pj.getPageDimension()。Graphics:pj.getGraphics()(實為 PrintGraphics)。g.dispose()、pj.end() 結束打印。封裝 ChangeFont 輔助類計算字串寬高、置中繪製:
g.drawString(s, (pageWidth - width)/2, (pageHeight - height)/3);
paint(),依賴預設 print() 呼叫 paint(),尺寸隨視窗變化。paint() 中用 instanceof PrintGraphics 區分螢幕/列印,取得頁面尺寸。print(Graphics g) 專門處理列印,paint() 處理螢幕,共用 doGraphics() 邏輯。Applet 無法直接取得 PrintJob,需建立 Frame 代理列印,注意安全警告視窗。