2016-09-27 7 views
0

私は、Mac(OS X、el capitan)上でJava 8(1.8.0_45)を使ってプリンタに印刷するアプリケーションを開発しました。それは、紙に素晴らしい円(楕円形)を描く、プリンタに完全によく印刷します。しかし、私はLinux Mintシステム(バージョン17.3、Mate)にアプリを移動し、空のページを生成(取り出し)します。両者で同じネットワークプリンタが使用されています(Brother MFC-J6510DW)。私はLinuxシステムに適切なドライバをインストールしており、テキストエディタやテストページの送信からうまく印刷できます。 Linuxシステムでは、Java 7が使用されます(1.7.0_111)。私はMacとLinuxシステムの両方でEclipseをIDEとして使用しています。PrinterJobからJavaの空白の印刷ページ

私はまた、Macでアプリを使ってテキストを正常に印刷しましたが、Linuxシステムのプリンタから空白のページが出てきました。私はMacとLinuxの間のフォントの問題を解消するために楕円形を試しました。

私はすでにプリンタサービスをチェックするためのコードを追加しており、Linuxシステム上でプリンタを正しく検出しています。 job.printDialogのダイアログボックスが表示されます(Macシステムと同様)。興味深いことに、Linuxシステムで表示されるダイアログボックスは、テキストエディタから印刷するときにLinuxシステムに表示されるダイアログボックスの簡略版です。しかしそれでも、これは便利なダイアログボックスで、ファイルに印刷することもできます(空のイメージも生成されます)。

私はオンラインで回答を検索しましたが、この問題と関連するものは何も見つかりませんでした。ありがとう!

import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.print.*; 

public class PrintSomething implements Printable, ActionListener { 

public PrintSomething() 
{ 

} 

public int print(Graphics g, PageFormat pf, int page) throws PrinterException 
{ 
    System.out.println("ENTERING PRINT JOB. PAGE = " + page); 

    if (page > 0) 
    { 
     return NO_SUCH_PAGE; 
    } 

    Graphics2D g2d = (Graphics2D)g; 
    g2d.translate(pf.getImageableX(), pf.getImageableY()); 

    System.out.println("Drawing Oval PAGE = " + page); 
    g2d.drawOval(50, 200, 50, 50); 

// g.drawString(“Hello World", 250, 50); 

    return PAGE_EXISTS; 
} 


@Override 
public void actionPerformed(ActionEvent e) 
{ 
    PrinterJob job = PrinterJob.getPrinterJob(); 
    job.setPrintable(this); 
    boolean doPrint = job.printDialog(); 

    if (doPrint) 
    { 
     try 
     { 
      System.out.println("STARTING PRINT JOB"); 
      job.print(); 
     } 
     catch (PrinterException ex) 
     { 
      System.out.println("ERROR in PRINT JOB"); 
     } 
    } 
} 

} 

答えて

0

以下は、問題を具体的に解決するものではありませんが、ここで私が知ったことと、問題を回避する方法について説明します。

Linux Ubuntu 16.04を搭載した別のシステムでは、同じプリンタドライバをインストールしてそこでアプリケーションを実行しました。それは正しく動作し、期待どおりに用紙に印刷しました。

問題が発生したシステムでLinux Mint 17.3をゴミ箱に入れ、Ubuntu 16.04をインストールしてください。それから、プリンタドライバをインストールしてアプリをテストしました。それは必要なように働いた。それで、私のために、問題は解決され、私はそれから進んでいます。

ありがとうございました。

関連する問題