Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中打印会将某个位置的标题设置为;“Java打印”;_Java_Printing - Fatal编程技术网

在java中打印会将某个位置的标题设置为;“Java打印”;

在java中打印会将某个位置的标题设置为;“Java打印”;,java,printing,Java,Printing,下面的代码可以工作,但是当我打印到PDFCreator打印机驱动程序时,它的默认标题是“Java打印”。(我怀疑Adobe Distiller也是如此,因为如果你这样做,你会得到很多结果。) 有没有办法将“Java打印”更改为另一个字符串 package com.example.test.gui; import java.awt.Graphics; import java.awt.print.PageFormat; import java.awt.print.Printable; import

下面的代码可以工作,但是当我打印到PDFCreator打印机驱动程序时,它的默认标题是“Java打印”。(我怀疑Adobe Distiller也是如此,因为如果你这样做,你会得到很多结果。)

有没有办法将“Java打印”更改为另一个字符串

package com.example.test.gui;

import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class TestPrint implements Printable 
{
    @Override public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
        if (pageIndex != 0)
            return NO_SUCH_PAGE;
        graphics.drawString("Hi there", 100, 100);
        return PAGE_EXISTS;
    }

    public void printPage() throws PrinterException
    {
        PrinterJob job = PrinterJob.getPrinterJob();
        boolean ok = job.printDialog();
        if (ok) {
            job.setPrintable(this);
            job.print();
        }
    }
    public static void main(String[] args) {
        try {
            new TestPrint().printPage();
        }
        catch (PrinterException e) {
            e.printStackTrace();
        }
    }   
}

您是否尝试过此setJobName(字符串jobName)

API说它是要打印的文档的名称

我在Ubuntu上运行我的代码,它没有打印标题,因此我无法验证它是否有效。

相同的答案,但:


万岁!成功了!这很简单,但很容易混淆这些不同的对象的作用。
job.setJobName("New Printing Name");
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); 
pras.add(new JobName("your job name", Locale.getDefault())); 

docPrintJob.print(docToPrint, pras);