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 :D

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