以下代码有效,但是当我打印到PDFCreator打印机驱动程序时,其默认标题为“Java Printing”。 (我怀疑这对Adobe Distiller也是正确的,因为如果您search google for PDFs with Java Printing,您会得到很多结果。)

有没有办法将其从“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();
        }
    }
}

最佳答案

您是否尝试过此setJobName(String jobName)。

job.setJobName("New Printing Name");

API表示它是要打印的文档的名称。

我在Ubuntu上运行我的代码,它不显示标题,所以我无法验证它是否有效。

07-24 09:25