none
Drucken von txt - Dateien RRS feed

  • Frage

  • Hallo,

    habe folgendes Problem: In einem Programm wird nach button_Click eine Text-Datei (*.txt) ausgedruckt. Dies funktioniert auch, nur die Buchstaben ä, ö, ü, ß werden nicht mit gedruckt. Hat jemand die Kenntnis, wie man auch diese Buchstaben gedruckt bekommt?.

    Thanks

    H. Helmer

    Mittwoch, 19. Januar 2011 15:54

Antworten

  • Ich würde mal vermuten, dass diese Zeile das Problem ist:

    streamToPrint = gcnew StreamReader( "Adv1.txt" );

    Hier gibst Du keinerlei Encoding an... welches soll er verwenden!?
    Vermutlich nimmt er "Default", was aber wohl nicht stimmt...
    Wenn die Datei nicht mit einem BOM gespeichert wurde, so ist es sehr schwer zu erkennen, in was für einem Encodung die Datei ist...

    Gibt die Texte doch mal als Debug-Ausgabe im VS aus, dann wirst Du sehen, dass diese da auch falsch sind...

    Schau Dir einfach mal die Konstruktoren von "StreamReader" an... und geb ein Encoding an.


    Jochen Kalmbach (MVP VC++)
    Donnerstag, 20. Januar 2011 06:39

Alle Antworten

  • WIE druckst Du denn?


    Jochen Kalmbach (MVP VC++)
    Mittwoch, 19. Januar 2011 16:06
  • Hallo,

    hier ein Ausschnitt aus dem Druck-Teil. Das ganze ist noch umfangreicher enthält aber vor allem Seitenformatierungsanweisungen. Einen Anhang kann man hier wohl nicht anhängen.

    if ( listBox1->SelectedItem->ToString() == "Seite 1" )
         {
          printDialog1->AllowSomePages = true;
                printDialog1->ShowHelp = true;
                printDialog1->Document = pd;

                if ( pd == nullptr )
                   System::Windows::Forms::MessageBox::Show( "null" );

                ;
                ;
                if ( printDialog1 == nullptr )
                   System::Windows::Forms::MessageBox::Show( "pnull" );

                ;
                ;
                System::Windows::Forms::DialogResult result = printDialog1->ShowDialog();
                ;
                ;

                try
                {
                 streamToPrint = gcnew StreamReader( "Adv1.txt" );
                 try
                 {
                  printFont = gcnew System::Drawing::Font( "Arial", 10 );
                  PrintDocument^ pd = gcnew PrintDocument();
                  pd->PrintPage += gcnew PrintPageEventHandler( this, &Form1::pd_PrintPage );
                  pd->Print();
                 }
                 finally
                 {
                  streamToPrint->Close();
                 }

                }
                catch ( Exception^ ex )
                {
                 MessageBox::Show( ex->Message );
                }
         }
    MfG

    H. Helmer

    Mittwoch, 19. Januar 2011 20:07
  • Ich würde mal vermuten, dass diese Zeile das Problem ist:

    streamToPrint = gcnew StreamReader( "Adv1.txt" );

    Hier gibst Du keinerlei Encoding an... welches soll er verwenden!?
    Vermutlich nimmt er "Default", was aber wohl nicht stimmt...
    Wenn die Datei nicht mit einem BOM gespeichert wurde, so ist es sehr schwer zu erkennen, in was für einem Encodung die Datei ist...

    Gibt die Texte doch mal als Debug-Ausgabe im VS aus, dann wirst Du sehen, dass diese da auch falsch sind...

    Schau Dir einfach mal die Konstruktoren von "StreamReader" an... und geb ein Encoding an.


    Jochen Kalmbach (MVP VC++)
    Donnerstag, 20. Januar 2011 06:39
  • Hallo,

    es funktioniert.

    Encoding mit UTF7 - das wars.

    thank´s

    H.H.

    Samstag, 22. Januar 2011 20:41
  •  Hallo H. Helmer,

    Einen Anhang kann man hier wohl nicht anhängen.

    Doch. Man kann Anhänge via SkyDrive hier posten.

    Schau mal wie es gemacht wird: [Wie nutze ich den Skydrive?]

    Grüße,

    Robert

    Freitag, 11. Februar 2011 12:51