Seite 1 von 1
Drucker API
Verfasst: 27.08.2017 16:13
von appndown
Hi,
ich stehe vor einem kleinen Problem...
Ich möchte gerne den Windows Druckdialog aufrufen und dann schon Werte in den Dialog
eintragen und/oder auslesen...
Jemand eine Idee ?
Gruß
Sascha
Re: Drucker API
Verfasst: 27.08.2017 19:20
von hjbremer
http://www.purebasic.fr/english/viewtop ... 7&start=15
damit du eine Vorstellung von deinem
kleinen Problem bekommst
es gibt leider bis heute immer noch keine vernünftige Printerlib von PB .
bei all den Beispielen im Forum, viele funktionieren nicht korrekt
Knackpunkt ist meistens der Umgang mit DEVMODE, aber auch abhängig von der PB Version
nächstes Problem, wenn Windows Printdialog, dann drucken komplett mit WindowsApi
ich würde viel Zeit dafür einplanen
Re: Drucker API
Verfasst: 01.10.2017 17:58
von udg
bei einer ähnlichen Suche habe ich das gefunden gehabt:
Code: Alles auswählen
Enumeration
#myWindow
EndEnumeration
Enumeration
#myWebGadget
#Print
#Preview
EndEnumeration
Enumeration 1
#OLECMDID_OPEN
#OLECMDID_NEW
#OLECMDID_SAVE
#OLECMDID_SAVEAS
#OLECMDID_SAVECOPYAS
#OLECMDID_PRINT
#OLECMDID_PRINTPREVIEW
#OLECMDID_PAGESETUP
#OLECMDID_SPELL
#OLECMDID_PROPERTIES
#OLECMDID_CUT
#OLECMDID_COPY
#OLECMDID_PASTE
#OLECMDID_PASTESPECIAL
#OLECMDID_UNDO
#OLECMDID_REDO
#OLECMDID_SELECTALL
#OLECMDID_CLEARSELECTION
#OLECMDID_ZOOM
#OLECMDID_GETZOOMRANGE
#OLECMDID_UPDATECOMMANDS
#OLECMDID_REFRESH
#OLECMDID_STOP
#OLECMDID_HIDETOOLBARS
#OLECMDID_SETPROGRESSMAX
#OLECMDID_SETPROGRESSPOS
#OLECMDID_SETPROGRESSTEXT
#OLECMDID_SETTITLE
#OLECMDID_SETDOWNLOADSTATE
#OLECMDID_STOPDOWNLOAD
EndEnumeration
Enumeration 0
#OLECMDEXECOPT_DODEFAULT
#OLECMDEXECOPT_PROMPTUSER
#OLECMDEXECOPT_DONTPROMPTUSER
#OLECMDEXECOPT_SHOWHELP
EndEnumeration
Procedure Print_Preview(type)
WebGadget(#myWebGadget, 0, 0, 0, 0, "")
HideGadget(#myWebGadget, 1)
HTML.s = "<html><head><title>Test</title></head><body>T e s t</body></html>"
SetGadgetItemText(#myWebGadget, #PB_Web_HtmlCode, HTML)
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#myWebGadget), #GWL_USERDATA)
Repeat
While WindowEvent(): Wend
Delay(1)
WebObject\get_Busy(@IsBusy.l)
Until IsBusy = 0
WebObject\ExecWB(type, #OLECMDEXECOPT_PROMPTUSER, 0, 0)
FreeGadget(#myWebGadget)
EndProcedure
OpenWindow(#myWindow, #PB_Any, #PB_Any, 800, 615, "", #PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
ButtonGadget(#Preview, 140, 10, 100, 20, "Print_Preview")
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Preview
Print_Preview(#OLECMDID_PRINTPREVIEW)
Case #Print
Print_Preview(#OLECMDID_PRINT)
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
Re: Drucker API
Verfasst: 04.10.2017 10:19
von dige
Interessanter Workaround! Mal schauen ob das auch zum drucken von Bilder geignet ist
Re: Drucker API
Verfasst: 05.11.2017 00:02
von udg
Ich hoffe auch, dass ich damit mein Bild gedruckt bekomme.
Also, Druckvorschau, und dann drucken.
Mit Text funktioniert der obige Code prima.
Re: Drucker API
Verfasst: 19.11.2017 16:15
von udg
dige hat geschrieben:Interessanter Workaround! Mal schauen ob das auch zum drucken von Bilder geignet ist
http://www.purebasic.fr/german/viewtopi ... 97#p343397
Re: Drucker API
Verfasst: 23.12.2017 20:01
von marcelx
siehe
http://www.purebasic.fr/german/viewtopi ... 16&t=30225
@dige
mit Bilder geht es auch:
http://www.purebasic.fr/german/viewtopi ... 16&t=30462
__________________________________________________
Domains angepasst
24.12.2017
RSBasic