Zum Inhalt springen

errox

Mitglieder
  • Gesamte Inhalte

    390
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von errox

  1. Das sieht sehr Kompliziert aus. Gibt es keine "einfachere" Variante?
  2. Hallo. Ich möchte gerne auf meinem Bondrucker ( Tm-88II ) einen Bon ausdrucken. Als oberen Teil ein Bild ( Das logo ) und in der unteren hälfte ein Text in der Schriftart FontA11. Da .NET mit GDI+ Strings "zeichnet" und daten im Grafikmodus sendet, druckt er Relativ Langsam. Am besten wäre es, wenn ich die Daten wie Exel drucke, da ich die Gewünschte geschwindigkeit erreiche. Diese Funktion möchte ich gerne intigrieren. Ich gehe davon aus, dass Exel eine API von Windows benutzt. Wie kann ich diese API verwenden? Wenn ich es "normal" drucke, benötige ich mit der "normalen" druckmetode mit GDI+ 5 sec. Pro bon. Mit Exel hingegen nur 2. Daten: Sprache: C++ IDE: Visual Studio OS: Win XP Pro. Framework: .NET 2.0 Ich hoffe dass ich hier passende Antworten finde. Wenn ja, bin ich euch allen sehr sehr Dankbar. Liebe Grüße errox
  3. Ich weiss wie man RAW Daten an den Drucker sendet BOOL RawDataToPrinter(LPSTR szPrinterName, LPBYTE lpData, DWORD dwCount) { HANDLE hPrinter; DOC_INFO_1 DocInfo; DWORD dwJob; DWORD dwBytesWritten; // Need a handle to the printer. if( ! OpenPrinter( szPrinterName, &hPrinter, NULL ) ) return FALSE; // Fill in the structure with info about this "document." DocInfo.pDocName = "My Document"; DocInfo.pOutputFile = NULL; DocInfo.pDatatype = "RAW"; // Inform the spooler the document is beginning. if( (dwJob = StartDocPrinter( hPrinter, 1, (LPSTR)&DocInfo )) == 0 ) { ClosePrinter( hPrinter ); return FALSE; } // Start a page. if( ! StartPagePrinter( hPrinter ) ) { EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); return FALSE; } // Send the data to the printer. if( ! WritePrinter( hPrinter, lpData, dwCount, &dwBytesWritten ) ) { EndPagePrinter( hPrinter ); EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); return FALSE; } // End the page. if( ! EndPagePrinter( hPrinter ) ) { EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); return FALSE; } // Inform the spooler that the document is ending. if( ! EndDocPrinter( hPrinter ) ) { ClosePrinter( hPrinter ); return FALSE; } // Tidy up the printer handle. ClosePrinter( hPrinter ); // Check to see if correct number of bytes were written. if( dwBytesWritten != dwCount ) return FALSE; return TRUE; } Aber damit bin ich nicht weiter gekommen, trozdem danke
  4. Hallo. Da mein Theard Schriftarten von Drucker Verwenden bis jetzt noch nicht beantwortet wurde und ich eine Idee gefunden hab, die leider nicht zum Alten Forumbereich passt, eröffne ich diesen Neuen theard Also ich habe herausgefunden, dass mein Drucker ( Epson Tm-88II ) nur im Grafikmodus Langsam druckt. ( z.B. Bilder, etc ). Und bei .NET läuft ja alles unter GDI+ und es werden ja Strings "gemalt". Darum ist es wahrscheinlich auch langsam. Meine idee ist es Daten wie in Exel zu drucken, also direkt den Text ( Idee, etwas über "RAW" ansteuern ) Wie geht das genau? Liebe Grüße
  5. Irgentwie konnt ich mir denken, dass niemand darauf ne antwort findet, aber ich hab eine Alternatividee: In exel wird die Schriftart angezeigt und in der gewünschten geschwindigkeit gedruckt ( FontA11 ) Weiss jemand, wie ich genau das Selbe Drop-Down menü erzeugen kann und dann vielleicht mit FontA11 drucken kann? Danke
  6. Vielleicht hilft das Weiter: Ich hab herausgefunden, dass die Schriftarten die im Drucker gespeichert sind PostScriptFonts heißen
  7. Windows XP Wie entferne ich den Anschluss? Das war ja auch teil meiner Frage. Und Wie entferne ich die Treiber?
  8. Hallo. Wie man in .NET Druckt, weiss ich ja: static String^ text; void pd_PrintPage( Object^ /*sender*/, PrintPageEventArgs^ ev ) { System::Drawing::Font^ printFontB = gcnew System::Drawing::Font("Arial",30); System::Drawing::Font^ printFont = gcnew System::Drawing::Font( "Arial",12 ); //Image^ newImage = Image::FromFile( "print.jpg" ); Point ulCorner = Point(30,0); //ev->Graphics->DrawImage( newImage, ulCorner ); ev->Graphics->DrawString("•••S•••K•••S•••",printFontB,Brushes::Black,0,0); ev->Graphics->DrawString("17.04.2009\t22:00\n\nCola\nPreis:2,00\n\n",printFont,Brushes::Black,0,20); ev->Graphics->DrawString("•••S•••K•••S•••",printFontB,Brushes::Black,0,90); } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { PrintDocument^ pd = gcnew PrintDocument; //text = "Cola Bieeer 1,2\nHeute voll Billig brudeeeer xDDD\n Hallooo"; pd->PrintPage += gcnew PrintPageEventHandler( this, &Form1::pd_PrintPage ); pd->Print(); //pd->PrintPage += gcnew PrintPageEventHandler( this, &Form1::pd_PrintPage ); //pd->Print(); } Der Code ist zwar nicht der schönste, aber er tut seinen Zweck. Mein Problem ist jetzt, dass ich mit einem Bondrucker arbeite. Er hat intigrierte Fonds, mit denen er Schneller drucken kann ( z.B. FontA11 ). Es handelt sich um einen Epson TM-88II Bondrucker. Hier sind alle Font's aufgelistet: Mit Exel kann ich die Schriftart auswählen und ich erreiche die Gewünschte geschwindigkeit. Wie wähle ich aber die Schriftart in .NET aus, da sie ja nicht wie die anderen im Systemordner/Schriftarten zu finden ist? Liebe Grüße errox
  9. Hallo Freunde, ich hab ein Großes Problem. Mein Bondrucker druckt nicht mehr, ich weiss wie ich es geschafft hab, aber ich hab nur eine Theorie warum. Also ich fang mal von vorne an: Der Drucker hat einen Parallel-Port, ich hab ein Parallel-Seriel Kabel: Sprich der Drucker ist am COM1 Port angeschlossen. So das wars mit den Daten. Jetzt zum Problem Ich installier den Drucker ganz normal, und hab die API Funktion vergessen ( Dass der Drucker nach dem Druck automatisch den Bon abtrennt, Farbeinstellung, etc. ). Er druckt zwar, aber ich wollte die API Funktion und hab desshalb den Drucker gelöscht, und ihn wieder Installiert. Jedes mal wenn ich was Drucken will, sendet er ein Signal und dann kommt nichts. Also hab ich mir überlegt ich Probier es mal auf meinem 2t Rechner Diesmal installier ich die API Funktion direkt mit, funktioniert wunderbar. Aber wenn ich wieder den Drucker lösche, und ihn reinstalliere klappt nichts. Sprich: Das Problem trifft nur auf, wenn ich den Drucker gelöscht hab ( Woran es genau liegt, weiss ich nicht ) Meine Lösung ist entweder den Rechner zu Formatieren ( keine lust, nerven ) oder EVENTUELL die Virtuellen Anschlüsse löschen ( z.B. ESD_COM1, etc. ) Falls jemand andere Vorschläge oder erfahrungen gemacht hat, nur zu. Ich würde aber gerne die Variante mit den Virtuellen Anschlüssen bevorzugen. Leider weiss ich nicht, wie das geht. Weiss das zufällig jemand OHNE den PC zu Formatieren? Danke Liebe Grüße errox
  10. Nein. :S Ich fühl mich wie ein idiot. Vielen Dank für eure Hilfe ( P.S. den Theard könnt ihr löschen )
  11. Bin ich doof. read = Registry::LocalMachine->OpenSubKey("HARDWARE\\PCI"); if(Convert::ToString(read->GetValue("slots")) != "4") { key_fehler(); return 0; } Aber so funktioniert es genau so wenig
  12. Hallo Freunde. Ich spiele zur Zeit etwas mit meiner Registry rum und habe ein Problem: Ich kann zwar so in der Registry was schreiben: RegistryKey^ key = Registry::LocalMachine->CreateSubKey("HARDWARE\\PCI"); key->SetValue("slots","4"); Und es wird auch angezeigt, aber das auslesen geht nicht: RegistryKey^ read = Registry::CurrentUser->OpenSubKey("HARDWARE\\PCI"); if(Convert::ToString(read->GetValue("slots")) != "4") { key_fehler(); return 0; } Ich krieg immer eine Fehlermeldung. Schlüssel in der Registry ohne "\\" kann ich ohne Probleme auslesen. Wie löse ich das Prob? Liebe Grüße errox
  13. Das vor Application::Run(gcnew Form1()); ist genau das, wonach ich gesucht habe! Vielen dank! Die Prüfung soll den Zweck bedienen, dass nicht jeder X-Beliebige das Programm benutzen kann ( Die Anwendung wird auf ner Kasse bedient und eventuell Vermietet. Der Mieter soll nicht auf die doofe idee kommen, die Anwendung zu "klauen" ) Ich werde mich mal mit Registryeinträgen befassen Liebe Grüße errox
  14. Hallo Freunde. Meine Anwendung die ich in der Letzen Zeit entwickelt habe ist soweit fertig. Aber ein Problem hab ich noch: Eine Funktion, die die Anwendung nur unter bestimmten PC's laufen lässt. Ich hab es mir so vorgestellt: Ich setze Einige Registry einträge, ein paar Dateien im Sys32 Ordner und wenn diese Daten nicht vorhanden sind, startet das Programm nicht ( diese Registry und sys32 daten kann man über einen Setup ( win 32 anwendung ) seperat installieren ) Falls ihr andere Prüfvorschläge habt, nur rein damit Das einzige Problem ist: Wie beende ich die Anwendung? private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { try { load_config(); } catch(...){} } private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) { e->Cancel = true; if(MessageBox::Show("Sind sie sich Sicher, dass sie die Anwendung beenden wollen?","Anwendung Beenden",MessageBoxButtons::YesNo,MessageBoxIcon::Question) == ::DialogResult::Yes) { IO::File::Delete("config\\temp_boot"); IO::File::Delete("config\\temp_status"); IO::File::Delete("config\\temp_storno"); e->Cancel = false; } } Ich hab mir gedacht, dass ich in Form1_Load e->Cancel = false; benutze, aber das geht ja nicht. Wie mach ich das am besten? Liebe Grüße errox
  15. Hallo. Ich habe bei meinem Mainboard k7vm2 alles auf Default gesetzt. Nach dem neustart verlangt der ein BIOS Passwort, obwohl ich keins gesetzt hab. Wie kann ich alles resetten oder wie komm ich wieder dazu, dass ich wieder "normal" im BIOS bin? Liebe Grüße errox
  16. Super, danke. Es ist wirklich einfacher, als ich mir gedacht hab Du hast echt starke nerven. Vielen lieben dank!! Liebe Grüße errox
  17. Vielen vielen vielen vielen lieben Dank!!! Ich habs!!!! void pd_PrintPage( Object^ /*sender*/, PrintPageEventArgs^ ev ) { System::Drawing::Font^ printFont = gcnew System::Drawing::Font( "Arial",10 ); ev->Graphics->DrawString("hallo\nDies ist ein test!!!",printFont,Brushes::Black,0,0); } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { PrintDocument^ pd = gcnew PrintDocument; pd->PrintPage += gcnew PrintPageEventHandler( this, &Form1::pd_PrintPage ); pd->Print(); } Ein "wunsch" hab ich noch. Ganz oben sollte eine Grafik zu sehen sein ( 64 * 64 pix ) Dateiformat von jpg, über psd bis zu bmp. Wie es am besten zu verarbeiten ist. Wie kann ich das hinzufügen?
  18. Also solangsam komm ich in fahrt... ich weiss dass ich jetzt void pd_PrintPage aufrufen muss. Das ist der Druckvorgang. Aber bei dem pd_PrintPage wird Streamreader benutzt. Wie kann ich meinen "normalen" String benutzen? Ich habs mir so vorgestellt: private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { PrintDocument^ pd = gcnew PrintDocument; pd->PrintPage += gcnew PrintPageEventHandler( this, &Form1::DrawStringPointF ); pd->Print(); }
  19. Also so? private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { PrintDocument^ pd = gcnew PrintDocument; pd->PrintPage += gcnew PrintPageEventHandler( this, &PrintingExample::pd_PrintPage ); pd->Print(); } Und wie kann ich nun den Methodenzeiger deklarieren?
  20. Ich hätte nie im leben gedacht dass es so Kompliziert ist, einen kleinen Text auszudrucken. Gibt es vielleicht einen Methodenzeiger, der einfacher zu Bedienen ist?
  21. Ich hab mir mal Graphics.DrawString Method angeguckt. Bin ich so auf dem Richtigen weg? public: void DrawStringPointF( PaintEventArgs^ e ) { // Create string to draw. String^ drawString = "Dies ist ein Test\nNeue Zeile!"; // Create font and brush. System::Drawing::Font^ drawFont = gcnew System::Drawing::Font( "Arial",5 ); SolidBrush^ drawBrush = gcnew SolidBrush( Color::Black ); // Create point for upper-left corner of drawing. PointF drawPoint = PointF(150.0F,150.0F); // Draw string to screen. e->Graphics->DrawString( drawString, drawFont, drawBrush, drawPoint ); } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { PrintDocument^ pd = gcnew PrintDocument; pd->PrintPage += gcnew PrintPageEventHandler(this, DrawStringPointF()); pd->Print(); } }; }
  22. Also ich bin schonmal ziemlich weit: String^ text = "Dies ist ein Test\nNeue Zeile!"; PrintDocument^ pd = gcnew PrintDocument; System::Drawing::Font^ printFront = gcnew System::Drawing::Font("Arial",5); // "text" ( Variable Drucken ) pd->Print(); Arial, größe 5 ist klar. Aber ich möchte es schlicht haben: Wie kann ich die Variable "text" drucken? Mit den Ganzen Klassen, zusätzlichen Funktionen ist es wirklich schwer :S
  23. Jetzt schon, danke. Ich werde mich mal damit befassen und mich melden, wenn was nicht stimmt ( was so sein wird, ich aber nicht hoffe :S ) Liebe Grüße errox
  24. streamToPrint = gcnew StreamReader( "C:\\My Documents\\MyFile.txt" ); Darum meint ich das mit der Datei anzulegen. Gut zu Wissen, danke.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...