печать в Java устанавливает заголовок где-то на «Java Printing» - PullRequest
6 голосов
/ 03 июня 2011

Следующий код работает, но когда я печатаю в драйвере принтера PDFCreator, его заголовок по умолчанию - «Java Printing». (Я подозреваю, что это верно и для Adobe Distiller, поскольку, если вы будете искать в Google PDF-файлы с помощью 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();
        }
    }   
}

Ответы [ 2 ]

8 голосов
/ 03 июня 2011

Вы пробовали это setJobName (String jobName).

job.setJobName("New Printing Name");

API говорит, что это имя документа для печати. ​​

Я запускаю свой код в Ubuntu, заголовок не печатается, поэтому я не могу проверить, работает он или нет.

3 голосов
/ 08 февраля 2016

Тот же ответ, но для DocPrintJob:

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); 
pras.add(new JobName("your job name", Locale.getDefault())); 

docPrintJob.print(docToPrint, pras);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...