當前位置:編程學習大全網 - 源碼下載 - java MediaSize

java MediaSize

思路和實踐步驟:

1.自定義壹個mediasize,java是開源的,妳自己創造壹個CustomedMediaSize,代碼復制java相應源文件。

2.讓妳的類根據需要實現應有的屬性。

如果,妳用java.awt.print方式,建議實現PrintRequestAttribute

如果,用javax.print方式,建議多加實現壹個DocAttribute

3.打印的實現程式。

PrintService service = PrintServiceLookup.lookupDefaultPrintService();

MediaSizeExp ms = new MediaSizeExp(8F, 5F, MediaSizeExp.INCH);

//筆者用mediasize自定義名

DocAttributeSet das = new HashDocAttributeSet();

das.add(ms);

Doc doc = new SimpleDoc(Report.this, DocFlavor.SERVICE_FORMATTED.PRINTABLE, das);

//report對象為筆者自實現了printable的打印對象

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

pras.add(ms);

DocPrintJob job = service.createPrintJob();

try {

job.print(doc, pras);

} catch (PrintException pe) {

}

——這是doc打印方式

PrinterJob pj = PrinterJob.getPrinterJob();

PrintService[] services = PrinterJob.lookupPrintServices();

if (services.length > 0) {

System.out.println("selected printer: " + services[0]);

try {

pj.setPrintService(services[0]);

} catch (PrinterException ex) {

Logger.getLogger(PrinterExperiment.class.getName()).log(Level.SEVERE, null, ex);

}

pj.setPrintable(Report.this, pj.pageDialog(new ParaPageFormat()));

MediaSizeExp ms = new MediaSizeExp(8F,5F,MediaSize.INCH);

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(ms);

pras.add(ms);

try {

pj.print(pras);

} catch (PrinterException ex) {

Logger.getLogger(Report.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

——這是awt,printerjob.getprinterjob()打印方式

需要說明的是:1.兩種方式,筆者實踐了第二種(awt方式),定義頁設置成功顯示為 高<寬 圖例,第壹種方式應該也能成功.以下針對第壹種方式來說.

2.8f和5f是我根據inch算下來的符合高<寬的寬和高。但要求高必須大於內容高度,否則紙張又將設回4a尺寸...

3.pageDialog方法不能少,添加PrintRequestAttributeSet(包括mediasize)也不能少.這是筆者經過實踐發現的,兩個環節應是缺壹不可。

4.筆者使用epson打印機,打印結果可壹參照頁面設置裏的情況,二參照打印機裏的打印任務裏的主視窗設置頁面是否為自定義

5.以上是實驗方法,旨在解決可能性問題,突破技術瓶頸,還不是成熟的商業應用.java的這個高寬限制問題是被報告到java的bug library裏面去的,筆者已經查過。

最後,我的目的實際上是控制java單據的走紙打印,妳應該也懷抱的是相同的打印目的吧。上面的講法實際上是改造java api。

我所說的希望對妳能有所幫助。留個QQ吧:158796347,都是開發者,希望能有所交流和溝通啊。

  • 上一篇:計算機編程和寫代碼是壹個概念嗎?都需要英語嗎?
  • 下一篇:揚州有哪些好玩的地方和景點——推薦美食?
  • copyright 2024編程學習大全網