gpt4 book ai didi

Java Linux 从 PrinterJob 打印空白页

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:29 27 4
gpt4 key购买 nike

我有一个使用 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");
}
}
}

}

最佳答案

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

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

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

谢谢。

关于Java Linux 从 PrinterJob 打印空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39732521/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com