以下代码有效,但当我打印到PDFCreator打印机驱动程序时,其默认标题为"Java Printing".(我怀疑Adobe Distiller也是如此,因为如果你用谷歌打印搜索谷歌的PDF,你会得到很多结果.)
有没有办法将其从"Java Printing"更改为另一个字符串?
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
您是否尝试过此setJobName(String jobName).
job.setJobName("New Printing Name");
Run Code Online (Sandbox Code Playgroud)
API表示它是要打印的文档的名称.
我在Ubuntu上运行我的代码,它不打印标题,所以我无法验证它是否有效.
相同的答案,但对于DocPrintJob:
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new JobName("your job name", Locale.getDefault()));
docPrintJob.print(docToPrint, pras);
Run Code Online (Sandbox Code Playgroud)