|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
kaestnerw
Anmeldungsdatum: 25.01.2015 Beiträge: 4 Wohnort: Salzburg
|
Verfasst am: 04.02.2015, 18:17 Titel: Schriftart und Größe am Drucker steuern |
|
|
Hallo *,
Ich würde gerne beim drucken verschieden Schriften verweden. Gibts dazu irgendwelche Musterprogramme...
Hardware: Windows 7 Prof. mit div.Druckern dran Canon MP280, Brother HL-2250-Dn, OKI Farblaser, AMD-4 Kern Prozessor mit 3,8 GHz, 8 GB Hauptspeicher. derzeit Installiert FreeBasic 1.01.0 für Windows und FBIde 0.4.6r4 bin da baer nicht fixiert, kann auch eine andere Version verwenden.
Danke und Gruß
kaestnerw |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 04.02.2015, 22:07 Titel: |
|
|
Also laut
http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOpenLpt
gibt es immerhin einen Modus, der die Verwendung beliebiger Windows-Drucker erlaubt (sogar das Mitgeben eines Namens für den Druckjob ist vorgesehen), dito auch bei Linux mit lpr.
Nur das Problem: Die sog. TTY-Emulation unterstützt natürlich keine grafischen Möglichkeiten wie u.a. der Schriftartwechsel. => Somit müsstest Du Deinen Druckjob in einer gerätespezifischen Druckersprache aufbereiten, wie dies im MS-DOS-Zeitalter noch üblich war, wo Druckerdaten im RAW-Format verschickt wurden. Ist aus meiner Sicht höchstens für höherwertige Drucker geeignet, typischerweise Laserdrucker mit PCL- und PostScript-Emulation (dies sind recht gut standardisierte Befehlssätze) => Der Endbenutzer Deiner FB-Applikation müsste sich dann ein Gerät dieser Kategorie zulegen.
Auf jeden Fall nicht mehr mit LPRINT arbeiten, sondern OPEN, PRINT#und CLOSE, damit fürs Betriebssystem eine saubere Abgrenzung der Druckjobs im Spooler resultiert. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
|
Nach oben |
|
|
peter_u
Anmeldungsdatum: 19.09.2006 Beiträge: 17 Wohnort: Remscheid, NRW
|
Verfasst am: 24.02.2015, 11:54 Titel: PCL Druckersprache |
|
|
Hallo,
ich habe vor einigen Jahren ein Programm erstellt (und bis heute fortlaufend aktualisiert), welches Drucker mit PCL5e anspricht. Wir nutzen damit - auch auf Wíndows 8.1! - einen HP2300DTN Duplex,Netzwerk,Mehrfach-Blattfächer für DIN-A4 und A5 problemlos (gibt es auf einer Auktionsplattform für ca 79 Euro). Wie oben schon beschrieben brauchst Du einen Drucker, der über eingebaute Schriftarten verfügt und auch dann ist die Druckerprogrammierung nicht ganz einfach.
Dein Brother HL2250DN hat PCL6 eingebaut - soweit mir bekannt ist, ist dies abwärtskompatibel zu PCL5e.
Ich bin hier im Forum eher Tipp-Empfänger als -Geber, aber vielleicht kann ich ausnahmsweise mal helfen
Bei Interesse sende mir eine PN. _________________ Der alte Mann lernt noch
--- Learning by doing --- |
|
Nach oben |
|
|
peter_u
Anmeldungsdatum: 19.09.2006 Beiträge: 17 Wohnort: Remscheid, NRW
|
Verfasst am: 24.02.2015, 12:10 Titel: Code Beispiel bei einem HP DRucker mit PCL5e |
|
|
Der dritte Link von grindstone verweist auf meine damalige Frage.
Hier der Code aus meinem Programm mit Erklärungen als Basis für eigene Versuche (sorry an die Admins - ich hoffe es ist ok, dass ich das so poste, bin nicht der Forum-Freak):
'Variable für Drucker anlegen:
Dim Shared As String druckername
'Druckername vergeben: MINITOWER = Netzwerkname PC, dahinter Netzwerkname Drucker
druckername="lpt:\\MINITOWER\HP LaserJet 2300 Series PCL 5e"
----------------------------------------------------------
Function selectPrinter( ) As String
' Windows Druckerauswahl fuer einen bestimmten Drucker
Dim As PrintDlg pd
pd.lStructSize = SizeOf( PrintDlg )
If PrintDlg( @pd ) = FALSE Then
Exit Function
End If
Dim As DEVNAMES Ptr dn = GlobalLock( pd.hDevNames )
Function = *Cast( ZString Ptr, Cast( Byte Ptr, dn ) + dn->wDeviceOffset )
GlobalUnlock( dn )
End Function
-------------------------------------------------------------------------------------------------------------------
'Beispiel AUSDRUCK
Open lpt druckername for Output as #98
' INFO Bedeutung: &11H Fach 2, &11S Duplex, &126A DIN A4
' und im HP! Drucker eingebauten Font ansprechen:
Print #98, Chr$(27);"E";Chr$(27);"&l1H";Chr$(27);"&l0S";Chr$(27);"&l26A";Chr$(27)+"(13U"+Chr$(27)+"(s0p13h0s0b4099T";
' andere Schriftart und Grösse
Print #98, " ";Chr$(27)+"(s1p24v0s2b24607T";"PIANOTRANS ";Chr$(27)+"(s0p10h0s0b4099T";
'Druckdatei schliessen
Print #98, Chr$(27);"E" 'Blatt auswerfen
Close #98 _________________ Der alte Mann lernt noch
--- Learning by doing --- |
|
Nach oben |
|
|
kaestnerw
Anmeldungsdatum: 25.01.2015 Beiträge: 4 Wohnort: Salzburg
|
Verfasst am: 24.02.2015, 18:51 Titel: |
|
|
Hallo *,
also nochmals herzlichen Dank für die Infos, das eine oder andere davon werde ich sicher noch probieren. Für den Moment (als schnelle Lösung) habe ich folgenden Weg gewählt: es gibt da ein Gratis-Programm QBdruck, das kann man gratis aus dem Internet herunterladen, es liest eine Datei ein und man kann damit alle vorhandenen Schriften unter Windows in den verschiedensten Größen drucken, das erfüllt ganz meine Erfordernisse.
(z.B. die Schrift Algerian in der Größe 170 dann sind die Buchstaben 3 c hoch und 2,5 cm breit. Damit kann man eine ganze Menge anfagen und das reicht mir aufs erste.
Danke und Gruß |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 24.02.2015, 21:30 Titel: |
|
|
kaestnerw hat Folgendes geschrieben: | Für den Moment (als schnelle Lösung) habe ich folgenden Weg gewählt: es gibt da ein Gratis-Programm QBdruck, das kann man gratis aus dem Internet herunterladen, es liest eine Datei ein und man kann damit alle vorhandenen Schriften unter Windows in den verschiedensten Größen drucken, das erfüllt ganz meine Erfordernisse. |
Am besten uns allen den Download-Link dafür geben. Ansonsten in Deinem Fall noch schauen, ob es evtl. ein Kommandozeilen-Interface besitzt, dann wäre ein Schreiben dieser Datei ins %TEMP% und mit einem SHELL-Aufruf den Druckvorgang starten möglich, so dass der Druckvorgang für den Endanwender transparent abläuft. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|
|
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.
|
|