Drucken mehrerer Seiten.



  • Hallo !

    Ich sitze glaube schon mindestens 2 Wochen an dem Problem mehrere Seiten zu drucken. Ich habe auch schon etliche Beiträge gelesen und auch die Hilfe genutzt ,aber ich komme nicht weiter. Ich schreibe euch mal meinen Code rein den ich zuletzt benutzt habe.

    Zuerst der obere Teil .

    public:
    		System::Drawing::Printing::PrintDocument ^prt;
    
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    			neuMedium = gcnew array<medium^>(5001);
    			prt = gcnew System::Drawing::Printing::PrintDocument();
    			prt->PrintPage += gcnew System::Drawing::Printing::PrintPageEventHandler(this,&Form1::printdocupage); 
    		}
    

    Dann der ButtonKlick

    private: System::Void allesDruckenToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    			 printDialog1->Document = prt;
    			 if(printDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK){
    				 prt->Print();
    			 }
    		 }
    

    Und zu guter letzt das drucken.

    private: System::Void button1_markierte_drucken_Click(System::Object^  sender, System::EventArgs^  e) {
    		 }
    		 //
    		 // PrintEvent
    		 //
    		 void printdocupage(Object ^sender, System::Drawing::Printing::PrintPageEventArgs ^e){
    			 System::Drawing::Font ^druckfont;
    			 druckfont = gcnew System::Drawing::Font("Arial",12);
    			 float zeilenProSeite = 0;
    			 float yPos = 0;
    			 int zaehler = 0;
    			 float linksAbstand = (float)e->MarginBounds.Left;
    			 float obenAbstand = (float)e->MarginBounds.Top;
    			 String ^zeile;
    
    			 zeilenProSeite = e->MarginBounds.Height / druckfont->GetHeight(e->Graphics);
    
    			  String ^txt;
    
    			 for(int i=0; i<index; i++){
    				 txt += neuMedium[i]->getAutor()->ToString() + "\n" +
    					 neuMedium[i]->getTitel()->ToString() + "\n" +
    					 neuMedium[i]->getZusatz()->ToString() + "\n" +
    					 neuMedium[i]->getOrtung()->ToString() + "\n" + 
    					 neuMedium[i]->getVerlag()->ToString() + "\n\n" + "----------------" + "\n\n";
    			 }
    
    			 while(zaehler < zeilenProSeite && ((zeile = txt) != nullptr)){
    				 yPos = obenAbstand +(zaehler * druckfont->GetHeight(e->Graphics));
    				 e->Graphics->DrawString(zeile,druckfont,Brushes::Black,linksAbstand,yPos,gcnew StringFormat);
    				 zaehler++;
    			 }
    			// e->Graphics->DrawString(txt,this->Font,Brushes::Black,10,10);
    
    			 if(zeile != nullptr){
    				 e->HasMorePages = true;
    			 }else{
    				 e->HasMorePages = false;
    				 }
    		 }
    

    Mittlerweile habe ich wahrscheinlich noch mehr Fehler eingebaut als am Anfang.
    Ich bin am verzweifeln weil ich schon etliche Dinge versucht habe aber ich bekomme es nicht hin. 😕

    Ich würde mich sehr freuen wenn mir einer hilft in Form von Programmcode mit Hilfetexten
    Ich bin da leider totalnoob 😞


Log in to reply