2011-06-03 67 views
6

以下代碼可用,但當我打印到PDFCreator打印機驅動程序時,其默認標題爲「Java Printing」。 (我懷疑Adobe Distiller也是如此,因爲如果你使用search google for PDFs with Java Printing,你會得到很多結果。)在java中打印時會在「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(); 
     } 
    } 
} 

回答

8

你試過這個setJobName(String jobName)嗎?

job.setJobName("New Printing Name"); 

API表示它是要打印的文檔的名稱。

我在Ubuntu上運行我的代碼,它不打印標題,所以我無法驗證它是否有效。

+0

萬歲!工作!簡單但是它讓所有這些不同的物體發生了什麼變化。 – 2011-06-03 19:02:17

3

相同的答案,但對於DocPrintJob

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

docPrintJob.print(docToPrint, pras);