Druckvorschau für Bild

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Druckvorschau für Bild

Beitrag von marcelx »

Hallo,

mit WebObject\ExecWB kann mann ein Druckvorschau ein HTML-Seite erzeugen:
http://www.purebasic.fr/german/viewtopi ... 16&t=30225

Gibt es ein äquivalente Lösung für ein Bild (aus der Zwischenablage)

Danke und Gruß
MarcelX


Linkfix Foren-URL --Andesdaf
Win-10, PB 5.31 (Windows - x86)
Andesdaf
Moderator
Beiträge: 2658
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Druckvorschau für Bild

Beitrag von Andesdaf »

Du könntest eine temporäre Bilddatei mittels GetClipboardImage() erstellen
und diese dann in die HTML-Seite einbinden.
Win11 x64 | PB 6.00 (x64)
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Druckvorschau für Bild

Beitrag von marcelx »

Danke Andesdaf,

das ist ein Lösungsweg.
Ich dachte, vielleicht gibt es auch so was analog zur WebObject ein ImageObject

EDIT:
Du könntest eine temporäre Bilddatei mittels GetClipboardImage() erstellen
und diese dann in die HTML-Seite einbinden.
So habe ich es realisiert - war das einfacher (Danke für den Tipps Andesdaf)
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: Druckvorschau für Bild

Beitrag von udg »

marcelx hat geschrieben: So habe ich es realisiert - war das einfacher (Danke für den Tipps Andesdaf)
hättest Du wohl mal ein kleines Beispiel?
Ich bin auch immer noch am basteln der selben Funktion -> drucke mir ein Bild-keinen Text

VG
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Druckvorschau für Bild

Beitrag von marcelx »

Hallo udg,
hättest Du wohl mal ein kleines Beispiel?

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.s CaptureActiveWindow()
  Protected Handle
  Protected hDC
  Protected RECT.RECT
  Protected hPrinterDC
 
  Handle = GetForegroundWindow_()
  hDC = GetWindowDC_(Handle)
  GetWindowRect_(Handle,@RECT.RECT)
  imgID=0
  With RECT
    \right-\left
    \bottom-\top
    CreateImage(imgID,\right,\bottom-50)
    hPrinterDC = StartDrawing(ImageOutput(imgID))
    If hPrinterDC
      BitBlt_(hPrinterDC,0,0,\right,\bottom,hDC,0,0,#SRCCOPY)
      StopDrawing()
    EndIf
  EndWith
 
  ReleaseDC_(Handle,hDC)
  
  UseJPEGImageEncoder()
  fn$="xyz.jpg"
  Dateiname$ = GetTemporaryDirectory()+fn$
  SaveImage(imgID, Dateiname$,  #PB_ImagePlugin_JPEG)

  ProcedureReturn Dateiname$ 
EndProcedure

Procedure.s Print_Preview()
  WebGadget(#myWebGadget, 0, 0, 0, 0, "")
  HideGadget(#myWebGadget, 1)
  img$ = CaptureActiveWindow()

  HTML.s = "<html><head><title>Test</title></head><body></body><img src="+#DQUOTE$+img$+#DQUOTE$+"></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(#OLECMDID_COPY,#OLECMDEXECOPT_DONTPROMPTUSER,0,0)
  WebObject\ExecWB(#OLECMDID_PRINTPREVIEW, #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()
      EndSelect
  EndSelect       
Until EventID = #PB_Event_CloseWindow
Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Druckvorschau für Bild

Beitrag von Sicro »

marcelx hat geschrieben:

Code: Alles auswählen

HTML.s = "<html><head><title>Test</title></head><body></body><img src="+#DQUOTE$+img$+#DQUOTE$+"></html>"
ersetzen durch

Code: Alles auswählen

HTML.s = "<html><head><title>Test</title></head><body><img src="+#DQUOTE$+img$+#DQUOTE$+"></body></html>"
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Druckvorschau für Bild

Beitrag von marcelx »

Danke Sicro,
erstaunlich, es funktionniert mit den falsche HTML
(nobody is perfect)
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Druckvorschau für Bild

Beitrag von Sicro »

Die HTML-Parser der Internet-Browser sind recht tolerant, was Syntaxfehler betrifft, sonst würden einige Internetseiten nicht richtig funktionieren. :mrgreen:
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: Druckvorschau für Bild

Beitrag von udg »

marcelx hat geschrieben: Gruß
MarcelX
vielen Dank :allright:

aber außer nichts, sehe ich nichts auf meiner Vorschau.

Pfad zum Bild angepasst. Erst mal jpg beibehalten. ---> nix

was ist der Knackpunkt?
PureBasic v5.61

EDIT:

geht nun. nochmals Danke ;)

VG
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Antworten