【问题标题】:Java Linux Printing Blank Page from PrinterJobJava Linux 从 PrinterJob 打印空白页
【发布时间】:2016-09-27 19:08:33
【问题描述】:

我有一个使用 Java 8 (1.8.0_45) 在 Mac(OS X,el capitan)上开发的应用程序,可以打印到打印机。它可以很好地打印到打印机上,在纸上画一个漂亮的圆圈(椭圆形)。但是,我已将该应用程序移至 Linux Mint 系统(版本 17.3,Mate),它会生成(弹出)一个空白页面。两者使用相同的网络打印机(Brother MFC-J6510DW)。我已经在 Linux 系统上安装了适当的驱动程序,并且可以从文本编辑器中正常打印或发送测试页。在 Linux 系统上使用 Java 7 (1.7.0_111)。我在 Mac 和 Linux 系统上都使用 Eclipse 作为我的 IDE。

我还成功地使用 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");
        }
    }
}

}

【问题讨论】:

    标签: java linux printing


    【解决方案1】:

    虽然以下内容并未具体解决该问题,但以下是我发现的内容以及我如何解决该问题。

    在另一个装有 Linux Ubuntu 16.04 的系统上,我安装了相同的打印机驱动程序,然后在那里运行应用程序。它工作正常,按预期打印到纸上。

    解决方法是在出现问题的系统上丢弃 Linux Mint 17.3,并在其上安装 Ubuntu 16.04。然后我安装了打印机驱动程序并测试了该应用程序。它按应有的方式工作。所以,对我来说,问题已经解决了,我正在继续前进。

    谢谢。

    【讨论】:

      猜你喜欢
      • 2015-05-18
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多