Druck mit fortlaufende Nummer

mike2707

Mitglied
Hallo Leute. Ich bin Mal wieder.
Ich bräuchte Mal einen Tipp von euch.
Zur Zeit entwickle ich ein kleines Programm welches Daten aus einer csv Datei liest und diese in aufbereiterter Form ausdruckt.
Soweit funktioniert dieses.
Nun zu meinem eigentlichen Problem.
Ich habe einen datensatz aus der Datei gedruckt. Ich möchte z.b. 30 Ausdrucke von diesem datensatz. Auf dem Ausdruck soll aber eine fortlaufende Nummer mit gedruckt werden.
Wie bekomme ich das hin. Habe bis jetzt noch keine leuchtende Idee.
Nach meiner ersten Idee müsste ich die Seite mit 30 multiplizieren, dann schauen was passt auf eine Seite und mit dem Page Index durchiterieren. Aber es gibt bestimmt eine einfachere Lösung.

Gruß
Mike
 
Meine zweite Idee. Hab mal wieder zu verwinkelt gedacht.
Wenn ich den printjob innerhalb einer Schleife setze und den Zähler immer um 1 hochzaehlen lasse und dieses i als laufnummer mit im printable Dokument mit ausgebe, sollte es funktionieren. Werde es am Dienstag testen.
 
Hier mal meine Lösung.
Code:
String nr;

job.setPrintable(dokument, pageFormat);

// fortlaufende Nr des Ausdrucks
for (int i = 1; i <= 3); i++) {
  nr = String.valueOf(i);
  druck.setVonNr(nr);
  
  job.setJobName(setDateiname()); //setzen des Dateinames
  job.print(); //Druck
  }

Ich rufe dazu nochmal die Funktion auf nur mit einem PDF-Drucker, als Backup der Daten.

Ich habe mit dazu den pdf24 als PDF-Drucker installiert.
Nun möchte ich aber bei z.B. 4 Ausdrucken nicht 4 Dokumente, sondern 1 PDF mit 4 Seiten.
Habe bis jetzt noch keine Lösung.

Gruß
mike
 
Hier der vollständige Code der Methode

Java:
 private void getDruckAusgabe(Printable dokument, String drucker) throws IOException {
        // bestimmten Drucker wählen
        PrintService[] services = PrinterJob.lookupPrintServices();
        for (PrintService ps : services) {
// Drucker wird aus der GUI gewählt
            if (ps.getName().equals(drucker)) {
                PrinterJob job = PrinterJob.getPrinterJob();

                try {

                    PageFormat pageFormat = new PageFormat();

//        paper.setSize(1900000.02, 19999999999.76);
//        pageFormat.setPaper(paper);
                    job.setPrintService(ps);

                    job.setPrintable(dokument, pageFormat);
                  
                    Boolean e = dokument.toString().startsWith("Ausgabe.Druck");
                    if (e) {
                        // setzen der Nummerierung von bis im Ausdruck
                        for (int i = 1; i <= Integer.valueOf(umschlaege.getText()); i++) {
                           
// vergabe der fortlaufenden Nummer
nr = String.valueOf(i);
                            druck.setVonNr(nr);
                            druck.setBisNr(umschlaege.getText());
             
                            job.setJobName(setDateiname());
                            job.print(); //Druck

                        }
                    } else {
                        job.setJobName(setDateiname());
                            job.print(); //Druck
                    }
                } catch (PrinterException ex) {
                    Logger.getLogger(Epza2GUI.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
 
Guten Morgen an alle Mitlesenden,
ich habe mein Problem mit der Klasse Book() und Book().append gelöst.

Nun habe ich ein weiteres Problem.
Ich habe ein Printable Object.
In diesem Dokument kommen Zählvariablen vor. Es soll zum Beispiel ausgegeben werden auf der Seite 1 von 1-60 und auf der Seite 2 61-120. Also immer in 59 Schritten.

Das klappt nicht. Ich habe schon lokale Variablen versucht, auch globale Klassenvariablen. Entweder zählt er nicht, oder nicht in den Schritten wo ich gerne hätte.

Code:
zaehler++;
z2 = zaehler + 59;           
g2d.drawString(String.valueOf(new DecimalFormat("000").format(zaehler)), 100, 110);

  zaehler = z2 +1;
  z2 = zaehler + 59;

Kann mir von den stillen Lesern mit einer helfen?
Danke.
 

Zurück
Oben