Drucken mit Java und Fußtext

boelkstoff

Erfahrenes Mitglied
Hallo.
ich will mit Java Bilder/pdf usw. ausdrucken.
I muss aber in jedes Dokument eine Fussnite (footer) hinzufügen.
Kann mir da jemand helfen


public service() {
try {
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
System.out.println("Drucke auf: " + service.getName());

InputStream is = new BufferedInputStream(new FileInputStream("bart.jpg"));

DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;

DocPrintJob job = service.createPrintJob();



Doc doc = new SimpleDoc(is, flavor, null);



PrintJobWatcher pjDone = new PrintJobWatcher(job);

// Print it
job.print(doc, null);

// Wait for the print job to be done
pjDone.waitForDone();

// It is now safe to close the input stream
is.close();

} catch (Exception ex) {

}

Aber leider gibt es keine Funktionen für Footer oder header. Die api habe ich schon durchsucht.
Wie kann ich noch drucken

mfg
Phil
 
Servus!

Du könntest folgendes mal versuchen:

Erstelle dir mit der createImage(int w,int h) Methode von Frame bzw. JFrame ein BufferedImage Objekt (bimg). Besorge dir dann den Graphics Kontext dieses Objektes.
Dann ließ mit javax.imageio.ImagIO.read(InputSteam is) dein Bild ein ...
Dann zeichne einfach das Bild in den Graphics Kontext und versuche mal mit
der Methode drawString(String str) des Graphics Contextes einen String in das Bild zu "malen" ... jetzt suchst du mal nach einer Methode das Bild (bimg) Objekt in ein ByteArray zu zerlgen. Dieses kannst du dann mit dem DocFlavor flavor = DocFlavor.BYTE_ARRAY; drucken ...

Na ja, ist nur mal ein kleiner Einfall, obs klappt weis ich nicht, habe das aber schon mal ähnlich realisiert ... ;-)

Gruß Tom
 
hallo.

klingt logisch deine lösung, auch wenn ich dafür sehr lange brauchen würde.
das problem ist aber, das das jpg bild nur ein bespiel war.
damit sollen viele verschiedene formate u.a. auch pdf gedruckt werden.
also wird es so nicht gehen.

Was mir heute noch eingefallen ist, wäre eine art wasserzeichen.
Bei einigen druckern kann man ja soetwas einstellen.
Hast Du oder auch jemand anderes eine Idee wie man soetwas machen kann bzw. kann man es überhaupt
 
Zurück