Text Drucken wie ?

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
gambasso
Foriker
Beiträge: 920
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Text Drucken wie ?

Beitrag von gambasso » Sa 1. Sep 2018, 18:06

moin,

ich möchte beliebigen Text drucken können. Habe aber keine Ahnung davon!

Bisher versucht: Text im TextEditor geladen, selektiert, im String eingelesen und als 'DrawText' in eine DrawingArea (nicht korrekt) angezeigt.
Fehlermeldung: ich solle 'DrawingArea' nicht mehr verwenden, veraltet.
Mit 'Paint' daraufhin versucht. Jetzt bekomme ich nichts mehr angezeigt.

Versuchsaufbau mit DrawingArea > Panel > ScrollView > DrawingArea = mir wird der Text unvollständig angezeigt!

Versuchsaufbau mit Paint und ScrollArea > Panel > ScrollView > ScrollArea = kommt nichts!

Wie bekomme ich den Text angezeigt? Wie dann gedruckt?
Gruss

SommerWin
Foriker
Beiträge: 47
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von SommerWin » Sa 1. Sep 2018, 21:05

Hallo,
ich hab kurz das Printing Example aus den Beispielprogramm probiert, da steckt eigentlich alles drin was man zum Drucken braucht.
Wenn ich dort auf das Drucksymbol klicke öffnet sich ein Fenster mit meinen installierten Druckern.
Auf der Konsole druckt man mit "lpr -P Druckername Dateiname"

Schöne Grüsse
Kurt

gambasso
Foriker
Beiträge: 920
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von gambasso » Mi 5. Sep 2018, 11:30

moin,

so einfach geht es selten. Was ist, wenn der Text mal länger Zeilen hat?
Ich kenne jetzt nicht das angegebene Beispiel, wo ist es her?
Gruss

SommerWin
Foriker
Beiträge: 47
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von SommerWin » Mi 5. Sep 2018, 17:10

Hab die Datei angehängt, die stammt aus der Software Farm...

Und den Zeilenumbruch macht er automatisch, wenn die eingestellte Blattbreite erreicht ist, eine neue Zeile wenn LF kommt.


Schöne Grüsse
Kurt
Dateianhänge
Printing.tar.gz
(67.93 KiB) 22-mal heruntergeladen

gambasso
Foriker
Beiträge: 920
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von gambasso » Mi 5. Sep 2018, 17:38

hallo SommerWin,

ja, fast alle Zeilenumbrüche sind willkürlich. Habe das Programm mal mit der 'fstab' gefüttert.
Das möchtest Du wirklich nicht haben.
Gruss

SommerWin
Foriker
Beiträge: 47
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von SommerWin » Do 6. Sep 2018, 18:37

Hallo,
das Programm stammt aus den Gambas Beispielprogrammen, aber ich denk man kann es weitgehend anpassen.
Du fragtest ja wie man ein Textfile einlesen und darstellen kann, das macht das Beispiel.
Ich hab die fstab gerade untersucht, die benutzt als Zeilenvorschub $0a (linefeed), auf der Shell wird das auch korrekt angezeigt
um das in dem Fenster korrekt darzustellen müsste $0a durch $0d (carriage return) ersetzt werden.
Und dann wird es auch korrekt ausgedruckt.

schöne Grüsse Kurt

SommerWin
Foriker
Beiträge: 47
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von SommerWin » So 9. Sep 2018, 09:10

Guten Morgen,

bau doch mal im Programmabschnitt > Public Sub scrText_Draw() < nach der Dimensionierung von sText folgenden Code ein:

Dim Suchstring As String
Dim Ersatz As String

Suchstring = Chr$(10)
Ersatz = Chr$(13)

sText = Replace$(sText, Suchstring, Ersatz)

Dann passt auch die Formatierung im Ausgabefenster.


Schöne Grüsse
Kurt

gambasso
Foriker
Beiträge: 920
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von gambasso » So 9. Sep 2018, 16:30

moin,

wie bekomme ich die Größe des 'DrawText' raus? Also vom Text, der auf eine DrawingArea gezeichnet wurde.
Ich zeichne den Text in ein Image, aber da muß ich vorher die Größe des Image angeben, sonst komm eine Fehlermeldung.
Wo her weiß ich aber die benötigte Größe?
Gruss

SommerWin
Foriker
Beiträge: 47
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von SommerWin » So 9. Sep 2018, 23:23

Grübel grübel...
ich tät's so probieren, aber jetzt net hau'n, falls net funktioniert:
Zuerst den grössten (vom Ausmass) Buchstaben nehmen und die Drawing Area solange anpassen bis der sauber rein passt.
Somit hast die Grösse der Drawaing Area die 1 Buchstabe maximal benötigt.
Dann mit len(Stringlänge) der längsten Textzeile, das ergibt die Breite des Fensters also X-Achse
und der Anzahl der Zeilen ergibt Y-Achse multiplizieren.

Schöne Grüsse
Kurt

gambasso
Foriker
Beiträge: 920
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Text Drucken wie ?

Beitrag von gambasso » Mo 10. Sep 2018, 16:52

hallo Kurt,

ich glaube, ich hab da was gefunden. Und zwar: Paint.PathExtents.X (bzw. Y /Width /Height). Beachte Width + Height, nicht W ~ H !
Gedachtes Rechteck um den Text. Muß man aber mt 'Y' probieren, hatte erst was abgeschnitten.
Die Werte vor dem "Paint.End" auslesen.
Vorher zur Textübergabe "Paint.Text(txt, 1,14)", kein "DrawText"! Dann noch vor beenden "Paint.Fill", sonst ahst Du hohlen Text.
Gruss

Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 10 Gäste