Druckerausgabe [ERLEDIGT]

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Druckerausgabe

Beitrag von Danilo »

Pure_Beginner hat geschrieben:danke für deinen Tipp, hab mir CaptureGadget angeschaut, wie nicht anders zu erwarten bekomm ich es nicht hin mit der Druckerausgabe.
Bin immer noch Anfänger aber das mit Leidenschaft. :lol:

Hättest du noch einen Tipp wie ich das ganze zu Papier bekomme ?
Wenn Du ein korrektes Bild mit CaptureGadget bekommst, einfach dieses Bild drucken.

Code: Alles auswählen

Procedure CaptureGadget(Gadget)
    Protected width, height
    Protected hdc, img
 
    width = GadgetWidth(Gadget)
    height = GadgetHeight(Gadget)

    img = CreateImage(#PB_Any, width, height, 24)
    If img
        hdc = StartDrawing(ImageOutput(img))
        If hdc
            ;PrintWindow_(GadgetID(Gadget), hdc, #Null)
            SendMessage_(GadgetID(Gadget),#WM_PRINT,hDC,#PRF_CHILDREN|#PRF_CLIENT|#PRF_NONCLIENT|#PRF_ERASEBKGND)
            StopDrawing()
        Else
            FreeImage(img)
            ProcedureReturn 0
        EndIf
    EndIf
    ProcedureReturn img
EndProcedure


If OpenWindow(0, 0, 0, 800, 600, "ButtonImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   
    ButtonGadget(0,10,5,100,20,"Print")
   
    ButtonGadget(1,10, 30, 300, 200,"BeispielGadget")

    Repeat
        Select WaitWindowEvent()
            Case #PB_Event_CloseWindow
                End
            Case #PB_Event_Gadget
                If EventGadget()=0
                    img = CaptureGadget(1)
                    If PrintRequester()
                        If StartPrinting("PureBasic Test")
                            If StartDrawing(PrinterOutput())
                              If img
                                DrawImage(ImageID(img), 0, 0, PrinterPageWidth()/2, PrinterPageHeight()/4)
                              EndIf
                              StopDrawing()
                            EndIf
                            StopPrinting()
                        EndIf
                    EndIf
                    FreeImage(img)
                EndIf
        EndSelect
    ForEver
EndIf
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: Druckerausgabe

Beitrag von Pure_Beginner »

@Danilo,

bin stark beeindruckt wie gut das funktioniert.
Durch die Befehle muss ich mich erst noch durcharbeiten.
Vorab schon beten Dank für dein Hilfe.

Christian
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Druckerausgabe

Beitrag von derschutzhund »

Thorsten1867 hat geschrieben:In meinen Programmen erzeuge ich für Druckausgaben von Daten usw. PDF-Dokumente (PurePDF). Diese lassen sich problemlos betrachten und ausdrucken und es gibt auch keine Probleme mit verschiedenen Druckern bzw. Druckeinstellungen.
Hallo Thorsten,

genau so etwas brauche ich auch! Ich bekomme bei mir aber PurePDF nicht zum Laufen. Liegt es vielleicht daran, dass ich bisher noch mit der Demoversion experimentiere?
Habe UserLibraries und Residents in das PB-Verzeichnis kopiert.Wenn ich das HelloWorld Beispiel starte bekomme ich immer den Fehler in Zeile 558 von PurePDF: GetlocalInfo_() ist keine Funktion......

EDIT: Habe hier die Lösung gefunden: Linkhttp://forums.purebasic.com/german/view ... b8b8de965

LG Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Antworten