Wenn ich das Beispielprogramm "printer.pb" starte kommt die Fehlermeldung "There is no current 2D drawing object". Was mache ich falsch ? Gibt es sonst ein einfaches Beispiel für eine simple Ausdruckroutine ? Ich möchte lediglich einen reportartigen Textausdruck programmieren.
Dank für jede Hilfe,
Rumpelstilzchen
Problem mit Beispiel Printer.pb
-
- Beiträge: 3
- Registriert: 25.11.2005 19:43
- Wohnort: Telfs/Tirol
Problem mit Beispiel Printer.pb
Die Summe der Bosheit bleibt immer gleich !
- Andre
- PureBasic Team
- Beiträge: 1765
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
Schau bitte mal ins CodeArchiv auf www.PureArea.net, da findest Du mehrere Beispiel-Codes zum Drucken.
-
- Beiträge: 3
- Registriert: 25.11.2005 19:43
- Wohnort: Telfs/Tirol
Danke Andre für den Hinweis, aber beim Versuch das Beispiel "Print_DPI_independent.pb" (Rui Carvalho) aus dem CodeArchiv zu starten kam nur die Fehlermeldung "LoadFont() can´t be called inside a StartDrawing()/StopDrawing() block." Und warum funktioniert das simple Programm "printer.pb" (aus dem Examples-Verzeichnis) nicht ?
Ich habe schon einige komplexe techn. Anwendungen mit PB programmiert und sonst keine Probleme, zu meinem Glück fehlt nur noch das Ausdrucken der Ergebnisse.
(PB 3.94, Windows XP Prof.)
Gruß, Rumpelstilzchen
Ich habe schon einige komplexe techn. Anwendungen mit PB programmiert und sonst keine Probleme, zu meinem Glück fehlt nur noch das Ausdrucken der Ergebnisse.
(PB 3.94, Windows XP Prof.)
Gruß, Rumpelstilzchen
Die Summe der Bosheit bleibt immer gleich !
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Weil man davon ausgehen muss, das das LoadFont() vor dem
Startdrawing aufgerufen werden darf
PS: Das steht nicht in der Hilfe
. Man muss halt improvisieren.
Aber André wird's bestimmt noch dort hineinsetzen, was hier korrigiert ist.
Natürlich muss man auch ein eigenes Bitmap hinzufügen (Name.BMP) und
den Namen und das Verzeichnis anpassen.
Startdrawing aufgerufen werden darf

PS: Das steht nicht in der Hilfe

Aber André wird's bestimmt noch dort hineinsetzen, was hier korrigiert ist.
Natürlich muss man auch ein eigenes Bitmap hinzufügen (Name.BMP) und
den Namen und das Verzeichnis anpassen.

Code: Alles auswählen
; English forum:
; Author: Rui Carvalho
; Date: 01. March 2003
;***************************
;Super Printer - DPI indepent print
;by Rui Carvalho - 2003
;
;Part of GIA - Lift Management Software
;Freeware
;***************************
;rui-carvalho@bigfoot.com
Declare ycm(x.f)
Declare xcm(x.f)
;
;Original printer code by Fred
;
If PrintRequester()
If StartPrinting("PureBasic Test")
FontID.l=LoadFont(0, "Arial", ycm(0.4))
FontID1.l=LoadFont(0, "Arial", ycm(1))
If StartDrawing(PrinterOutput())
DrawingFont(FontID.l);4mm font size
Locate(xcm(15), xcm(5.5)); locate at 15cm by 5,5cm
DrawText("PureBasic Printer Test")
DrawingFont(FontID1); 1 cm font size
Locate(xcm(10), ycm(20))
DrawText("PureBasic Printer Test 2")
If LoadImage(0, "PureBasiclogo.bmp"); The logo bitmap is bigger
ResizeImage(0, xcm(6), ycm(2)) ; resize image for 6cm by 2cm
DrawImage(ImageID(), xcm(1), ycm(1)); draw image at 1cm by 1cm
Else
MessageRequester("", "2", 0)
EndIf
FrontColor(100, 100, 100)
Box(xcm(2), ycm(6), xcm(6), ycm(10)); draw a 4cm by 4cm square
StopDrawing()
EndIf
StopPrinting()
EndIf
EndIf
;**** the trick !!!! ****
Procedure xcm(x.f)
result = x * (PrinterPageWidth()/21) ; 21cm A4
ProcedureReturn result
EndProcedure
Procedure ycm(x.f)
result = x * (PrinterPageWidth()/29.7) ; 29,7cm A4
ProcedureReturn result
EndProcedure
;Tested with fineprintpdf in multiple DPI's
;and on Xerox DC440 laser printer
-
- Beiträge: 3
- Registriert: 25.11.2005 19:43
- Wohnort: Telfs/Tirol
Druckprobleme
Danke Falko, es funktioniert.
Rumpelstilzchen
Rumpelstilzchen
Die Summe der Bosheit bleibt immer gleich !