Speichern/drucken der Schliessungen aus Processing

Hallo zusammen. Mich beschäftigt eine Frage zu meinem Programm. Ich möchte gerne nach dem abspeichern meiner Schliessungen die Dateien drucken. Da in meinem Programm die Adressen der Kunden mit erfasst und gespeichert werden, möchte ich gerne aus dem Programm raus auch drucken und nicht immer noch ein anderes Programm aufrufen um die Dateien aus zu drucken. Ich habe mich entschlossen meine Dateien und Listen als txt Dateien ab zu speichern. Gedruckt werden soll auf einem Din A4 Blatt mit einem Logo rechts oben. Ich habe es so eingerichtet das Die Adresse oben links in der datei steht darunter kommen die Listen der Schliessungen. Jetzt habe ich die Frage, kann man es so einrichten das die Adressen jeweil auf jedem Blatt ausgedruckt werden und dann die fortlaufenden Schliessungen. So als wenn man eine Kopfeile eingerichtet hat. gespeichert werden die Daten folgender Massen:

//------------------------------  Text speichern anfang
    adress[0]=" ";adress[1]=" ";adress[2]=" ";adress[3]=" ";adress[4] =ad0;adress[5] =kdnr;adress[6] =" ";adress[7]=ad1;adress[8] =ad2;adress[9]=ad3;adress[10]=" ";adress[11]=ad4;    
    adress[12]=" ";adress[13]=" ";adress[14]="Typ Schl.:   Stck.    Schliess Nr.  Nr.   Schlues.Stck:   Hauptschlue: "+AT2;adress[15]=szahl;adress[15]=" ";// Adressen formatiert

    for (int i=0; i< AT5; i++){  //Schliessungen   
    adress[i+17]=zeilen[i];}

    saveStrings("data/Kunden/"+kdnr+"/"+kdnr+" adressen.txt", adress ); // Adressen/Schliessungen speichern 

Ich weis es gibt Elegantere Lösungen dafür, aber das ist nicht mein anliegen, sondern ich möchte gerne auf jedem Blatt die Adresse ausgegeben haben .

Answers

  • Answer ✓

    Man kann nicht direkt aus Processing heraus drucken. Aber man kann Programme aufrufen bzw. Kommandozeilen-Befehle ausführen. Habe ich bisher nur mit Bildern gemacht, wie gut das mit Text klappt und ob das dann schön formatiert wird, weiss ich nicht.

    Hier ein Beispiel-Code für Windows aus diesem Thread :

    String commandToRun = "mspaint /pt test.png";
    
    void setup() {
       size(400, 400);
    }
    
    void draw() {
      // draw something
      ellipse(random(width), random(height), 20, 20);
    }
    
    void mousePressed() {
      // save the file
      saveFrame("test.png");
    
      // folder where your image-file is located
      File workingDir = new File(sketchPath(""));      
    
      try {
        // run command
        Process p = Runtime.getRuntime().exec(commandToRun, null, workingDir);
      }
      catch(IOException e) {
        println(e);
      }
    }
    

    Ich glaube ich würde aber zum Drucken immer auf eine anderes Programm zurückgreifen, weil man viel komfortablere Einstellungsmöglichkeiten hat.

  • Danke, ja ich habe mir das Notepad++ runter geladen, das ist super zum einstellen, mal sehen wenn ich das hin bekomme das wäre super. Ich habe das einmal versucht mit web.de welches von Processing aufgerufen wurde, das fand ich nicht so pralle. ich schau mal.

  • Hallo zusammen, ich sage schon einmal frohe Weihnachten. benja ich hatte schon einmal ein Programm geschrieben, als Terminkalender, Medikamenten Erinnerung und so weiter. da habe ich das auch gemacht mit dem Externen Programm Aufruf, Aber auf eine einfachere Art. mit link("Notepad++"); da wird das Programm sofort aufgerufen und im Notepad++ habe ich die Möglichkeit die einstellung so an zu legen , das immer der komplette Path bis zur Datei aufgerufen wird. Da in meinem Programm das Drucken sowieso die letzte Option ist, geht das ganz gut. Die zu druckende Datei kann über die Such Funktion von Notepad++ ermittelt werden, so das man sehr schnell an die Datei kommt zum ausducken. In Notpad++ sind soviele Einstell Möglichkeiten, da blicke ich noch nicht ganz durch, aber man kann verschiedene Programmiersprachen mit einbinden, so das man wahrscheinlich die ganze Sache sogar Automatisieren kann.

  • Answer ✓

    Well, me being stupid and not thinking that you can open an external program with java. I got it working now.

    Solution: Runtime rt = Runtime.getRuntime(); rt.exec("notepad");

    I just used this, and it is working.

  • Chrisir, ja ich rufe das Notepat++ mit link("Notepat++") auf und habe alles weitere in dem Programm Notepat++ eingestellt. Es wird Automatisch immer die Letzte Datei geöffnet und der Path zum Unterordner Kunden eingestellt, so das ich auf alle Kunden zugreifen kann. Jetzt habe ich statt des Großen Notepat++ das Notepat++Portabel installiert, das kann ich dann im Data Ordner lassen und es wird im selben Umfang verwendet.

Sign In or Register to comment.