Seite 2 von 2

Re: Druckerausgabe

Verfasst: 15.01.2013 21:45
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

Re: Druckerausgabe

Verfasst: 15.01.2013 22:02
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

Re: Druckerausgabe

Verfasst: 26.07.2013 22:28
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