2012-05-09 15 views
0

Mac OS X(Lion)では、この印刷方法は問題なく動作します。 Windowsでは、何もしません。プリンターが見つからず、メニューリストは空白のままです。プリンタコードではWindowsではプリンタが見つかりませんが、OS Xでは動作します

私は私のページの送信のためにこのクラスを使用します。クラスPrintContent

new SelectPrinterDialog(this, new PrintContent(this, ord_id, this.sessionID)); 

を、私が使用します。

private DocFlavor flavor; 

PrintService[] getPrinters(){ 

をプリンタを検索します。

public class PrintContent { 

    private static final boolean TEXT = false; 

    private OrdiniFrame frame; 
    private String content; 
    private long ordID; 
    private long sessionID; 
    private DocFlavor flavor; 

public static final String PDF_PRINT_FILE = "__temp_print_file.pdf"; 
public static final String TXT_PRINT_FILE = "__temp_print_file.txt"; 
public static final String HTML_PRINT_FILE = "__temp_print_file.html"; 

public PrintContent(OrdiniFrame frame, long ordID, long sessionID){ 
    this.frame = frame; 
    this.ordID = ordID; 
    this.sessionID = sessionID; 
    if(TEXT){ 
     this.flavor = DocFlavor.INPUT_STREAM.TEXT_PLAIN_US_ASCII; 
     this.generateText(); 
    } 
    else { 
     this.flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT; 
     this.generateHTML(); 
    } 

} 


public PrintService[] getPrinters(){ 
    PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 
    //aset.add(MediaSizeName.ISO_A8); 
    return PrintServiceLookup.lookupPrintServices(flavor, aset); 
} 

public XHTMLPrintable createRender() { 
    try{ 
     XHTMLPanel renderer = new XHTMLPanel(); 
     renderer.getSharedContext().setDPI(300f); 
     renderer.setDocument(new File(HTML_PRINT_FILE)); 
     JFrame f = new JFrame(); 
     f.getContentPane().add(renderer, "Center"); 
     f.setVisible(true); 
     return new XHTMLPrintable(renderer); 
    }catch(Exception ex){ 
     ex.printStackTrace(); 
    } 
    return null; 
} 

public void print(PrintService service){ 

    try{ 
     float paperWidth = 62.0f; 
     // paperHeight aumenta l'altezza del foglio 
     float paperHeight = 70.0f; 
     paperWidth *= 2.83; 
     paperHeight *= 2.83; 

     //val printJob = PrinterJob.getPrinterJob 
     PrinterJob printJob = PrinterJob.getPrinterJob(); 
     printJob.setPrintService(service); 

     PageFormat pageFormat = printJob.defaultPage(); 
     pageFormat.setOrientation(PageFormat.PORTRAIT); 
     Paper labelPaper = pageFormat.getPaper(); 
     labelPaper.setSize(paperWidth, paperHeight); 
     labelPaper.setImageableArea(+30,+30,paperWidth, paperHeight); 
     pageFormat.setPaper(labelPaper); 

     Book book = new Book(); 
     book.append(this.createRender(), pageFormat); 
     printJob.setPageable(book); 

     PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet(); 
     attributeSet.add(new PrinterResolution(300, 300, ResolutionSyntax.DPI)); 
     printJob.print(attributeSet); 

    }catch(Exception ex){ 
     ex.printStackTrace(); 
    } 

私は間違っていますか?


更新日: 私は解決しました。 問題はタグhtml-><meta charset="utf-8"/>にありました! .jarの実行のために.batファイルを作成した後、このエラーが見つかりました。

+0

あなたの問題を解決した場合は、48時間後に受諾できる以下の回答を投稿するか、質問/回答が将来の訪問者に関連しないと思われる場合は、質問を完全に削除することができます。解決策であなたの質問を単に編集してはいけません。 –

答えて

0

私は解決しました。問題はhtml-> !!!タグにありました。 .jarの実行のために.batファイルを作成した後、このエラーが見つかりました。

関連する問題