2011-06-03 10 views
6

Aşağıdaki kod çalışıyor, ancak PDFCreator yazıcı sürücüsüne yazdırdığımda, varsayılan başlığı "Java Printing" dir. (Bunun, Adobe Distiller için de geçerli olduğundan şüpheleniyorum, çünkü eğer search google for PDFs with Java Printing eğer çok fazla sonuç alırsanız.)yazdırma, "Java Printing" için bir yerde bir başlık ayarlar

"Java Printing" den başka bir dizgeye geçmek için bir yol var mı?

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(); 
     } 
    } 
} 

cevap

8

Bu setJobName (String jobName) denediniz mi?

job.setJobName("New Printing Name"); 

API, yazdırılacak belgenin adı olduğunu belirtir.

Kodumu Ubuntu üzerinde çalıştırıyorum, başlığı basmıyor, dolayısıyla çalışıp çalışmadığını doğrulayamıyorum. Fakat DocPrintJob için

+0

Yaşa! işe yaradı! Basit ama kafa karıştırıcı tüm bu farklı nesnelerle ne yapar. –

3

aynı cevap:

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

docPrintJob.print(docToPrint, pras); 
İlgili konular