Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Drucken am Drucker

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 133

BeitragVerfasst am: 02.07.2022, 22:11    Titel: Drucken am Drucker Antworten mit Zitat

Hallo,
ich möchte jetzt ein Formular am Drucker ausgeben. Mit Print #LP ist mir das auch problemlos gelungen. Ich möchte aber die Schriftart, die Schriftgröße und die Darstellung (normal, fett, italic) verändern konnen. Dazu brauche ich aber sicherlich Steuerzeichen, die ich dem Drucker senden muss. Gibt es dafür eine Aufstellung bzw. wo kann ich eine solche finden?
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4500
Wohnort: ~/

BeitragVerfasst am: 02.07.2022, 22:56    Titel: Antworten mit Zitat

Ehrlich gesagt weiß ich gar nicht, ob das bei modernen Druckern so einfach ist. Meine diesbezüglichen Kenntnisse beruhen noch auf den Nadeldruckern, die über solche Steuerzeichen angesteuert werden konnten - die Liste der Steuerzeichen lag dem Drucker bei.
Bei heute gängigen Druckern muss man wohl über das Druckprotokoll zugreifen, z. B. über PCL oder PostScript. Bei OPEN LPT wird dann entsprechend "'EMU=TTY" angegeben. (Meine Erfahrungen in diesem Bereich sind aber äußerst bescheiden.)

edit: falsch herum: "'EMU=TTY" wird nicht angegeben.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 133

BeitragVerfasst am: 03.07.2022, 10:31    Titel: Antworten mit Zitat

Danke für die Antwort wenn sie auch nicht sehr ermutigend ist!
Ich habe in der Zwischenzeit gegoogelt und ein paar Seiten über dieses Thema gefunden (leider sind alle schon einige Jahre alt).
Wie du auch schon geschrieben hast hängt da vieles von den Möglichkeiten des Druckers ab. Leider sind mir die immer wieder genannten Features nicht bekannt. Damit kann ich auch mit den Codebeispielen wenig anfangen.

Aber eine Möglichkeit habe ich gefunden, die ich ausprobieren will und die mir erfolgversprechend klingt. Die habe ich in diesem Forum gefunten auf:
https://forum.qbasic.at/viewtopic.php?t=8585&view=previous&sid=31387844c0b47d1d3b1b150ef3913ef2
Es ist eine Freeware mit dem Namen QBdruck. Diesem Programm übergibt man einen Textfile und es kann es mit verschiedenen Schriften auf jedem Drucker ausdrucken.
So weit ich das bis jetzt verstanden habe muss ich in meinem Programm einen entsprechenden Textfile erstellen, der auch die für QBdruck benötigten Steuerzeichen enthält. Den Textfile übergebe ich einem Programm aus QBdruck das dann den Ausdruck macht. Ich denke, ich kann dieses Programm in mein Programm einbinden und dann wieder dorthin zurückkehren. Damit würde der Anwender gar nicht viel davon bemerken.
QBdruck habe ich auf dieser Adresse gefunden: http://www.antonis.de/qbdown/qbsonst.htm
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 133

BeitragVerfasst am: 04.07.2022, 15:40    Titel: Antworten mit Zitat

Ich habe QBdruck jetzt getestet und bin recht zufrieden damit. Im wesentlichen ist es ein Tool mit dem man Textdateien, die entsprechende Steuerzeichen und Befehle enthalten drucken kann.
In diesem Tool sind 5 Schriftarten mit fester und 2 mit variabler Laufweite enthalten. Diese Schriftarten haben feste Größen, konnen aber normal, fett, breit, unterstrichen oder italic gedruckt werden wobei man das nach Belieben wechseln kann.
Neben diesen Schriftarten gibt es auch einen Befehl mit dem man beliebige Schriften aus Windows in beliebiger Größe einbinden kann die wie die Standardschriften verwendet werden können.
Einen Haken hat die Sache: für Berichte und Listen kommen nur Schriften mit fester Laufweite in Frage. Diese gibt es aber offenbar unter Windows 10 nicht (bzw. habe ich keine gefunden). D.h. ich muss eine der 5 Standardschriftarten verwenden. Das ist für meine derzeitige Druckausgabe ungünstig, da die größten dieser Schriften nur 12 Punkte groß sind. Aber wenn ich keine Alternative finde muss das auch genügen denn wie ich Schriften mit variabler Laufweite (ttf) ohne Tabulator spaltengenau drucken soll weiß ich nicht.
Aber alles in Allem ein hervorragende Lösung, die einfach anzuwenden ist und keine besonderen Druckerkenntnisse erfordert.

EDIT: habe doch noch Schriftarten mit fester Lauflänge im Netz gefunden und installiert. Trotzdem bleibt das Problem bestehen, dass der Ausdruck - obwohl in der TXT-Datei im Editor richtig gezeigt wird - mit dem Druckprogramm nicht spaltengerecht erfolgt. Auch die Schriftgröße wird nicht meiner Eingabe entsprechend verändert. Das liegt aber möglicherweise an mir, da mache ich mir jetzt keinen Kopf.

EDIT: noch eine Ergänzung: nachdem ich noch lerne habe ich in Freebasic den Befehl TAB gefunden. Hoffe damit erreiche ich was ich will.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4500
Wohnort: ~/

BeitragVerfasst am: 04.07.2022, 18:52    Titel: Antworten mit Zitat

Die nichtproportionale Standard-Schriftart müsste unter Windows aktuell Consolas sein.
Für das Einrücken gibt es verschiedene Lösungsansätze, aber TAB dürfte in deinem Fall die günstigste sein.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 133

BeitragVerfasst am: 04.07.2022, 19:10    Titel: Antworten mit Zitat

Danke! Consolas könnte passen, brachte aber in meinem Test das gleiche Problem wie die ttf-Schrifarten. Das dürfte aber auch am TAB liegen.
Wie ich gefunden habe gibt es im Netz doch jede Menge von diesen "Nicht-ttfs".
Ich programmiere jetzt einmal einen Output mit den TABs und probier es aus.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4500
Wohnort: ~/

BeitragVerfasst am: 04.07.2022, 19:22    Titel: Antworten mit Zitat

ttf steht doch nur für true type font? Das heißt lediglich, dass es sich um eine Vektorschriftart handelt und dadurch beliebig skalierbar ist. Mit proportional bzw. nicht-proportional hat das nichts zu tun.
In nicht-proportionalen Schriftarten sind auch die Leerzeichen genauso breit wie jeder Buchstabe. Versuche mal ggf. statt der Einrückung so viele Leerzeichen zu schreiben wie benötigt. Schon möglich, dass die Berechnung der Einrückung fehlerhaft ist.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 133

BeitragVerfasst am: 04.07.2022, 20:06    Titel: Antworten mit Zitat

ja, hab ttf da falsch verstanden.
Ich habe die Texte bis zum Spaltenende mit Leerzeichen aufgefüllt aber die sind, mit Ausnahme der Standardschriften in QBdruck, offebar kürzer als die Zeichen denn damit verschiebt sich die folgende Spalte. Daher habe ich an TAB gedacht.
Das seltsame ist, dass das Problem mit den Leerzeichen bei allen Schriften auftritt die ich aus Windows übernommen habe, egal ob sie fixe oder variable Zeichenbreite haben. Daher habe ich z.B. nicht erkannt, dass Consolas fixe Zeichenlänge hat.
Bei den Standardschriften aus QBdruck mit fixher Zeichenbreite hingegen funktioniert es mit den Leerzeichen.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 133

BeitragVerfasst am: 05.07.2022, 14:57    Titel: Antworten mit Zitat

Problem gelöst!
Ich hatte einen Fehler in der Parametrisierung gemacht.
Nun stimmt es und funktioniert mit Consolas sowohl mit TAB als auch mit Leerzeichen.
Mit der von mir heruntergeladenen Schriftart MonospaceTypewriter (mit lt. Beschreibung, konstanter Zeichenlänge) funktioniert es nicht gut. Auch mit anderen Windows-Schriftarten, z.B. Arial, funktioniert es weder mit TABs noch mit Leerzeichen.
Für mich ist das Problem gelöst, da ich mit Consolas sehr gut das Auslangen finde und alles machen kann was ich vorhabe!
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4500
Wohnort: ~/

BeitragVerfasst am: 06.07.2022, 18:54    Titel: Antworten mit Zitat

Arial ist sans-serif, aber proportional (also nicht Monospace). Früher wurde unter Windows als nicht-proportionale Schriftart Courier New verwendet (weiß nicht, ob das noch standardmäßig installiert wird); LibreOffice liefert Liberation Mono mit. Nur für den Fall, dass man noch ein bisschen variieren will. happy
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 133

BeitragVerfasst am: 06.07.2022, 19:01    Titel: Antworten mit Zitat

danke nemored!
was Arial betrifft so hab ich es nur als Beispiel für proportional verwendet.
Ich bin jetzt mit der Lösung sehr zufrieden, da kann ich alles machen was ich vorhabe. Aber es immer gut noch Alternativen zu kennen mit denen man ausprobieren kann.
Ich bin sehr froh, dass sich dieses Problem mit Hilfe dieses Programmes recht einfach lösen ließ!
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz