Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Lokale HTML Site mit Iframe vollständig automatisch ausdrucken lassen

Mitglied: Beatzler

Beatzler (Level 1) - Jetzt verbinden

08.04.2012 um 20:45 Uhr, 5338 Aufrufe, 12 Kommentare

Hey,

habt ihr ggf. noch nen guten Tipp für mich ?

Ich bin derzeit auf der Suche nach einer Lösung voll automatisch mittels skript etc. eine lokale, ganze einfache html Seite auszudrucken. Soweit so gut hab ich auch schon z.B. sowas hier gefunden: www.printhtml.com/index.php

klappt wunderbar, Knackpunkt: In dem File ist ein iframe ( Karte ) eingebaut was nicht mit gedruckt wird ....

Habt ihr nen Tipp / Trick?

Per Batch wird dies denke ich sehr schwierig oder ?


Danke im Voraus!

MFG Beatzler
Mitglied: mak-xxl
08.04.2012 um 21:01 Uhr
Moin Beatzler,

Hiermit geht das auch auf der Kommandozeile prima. Das lohnt das anschauen, ebenso wie das.

Frohe Ostern und freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: Beatzler
08.04.2012 um 21:39 Uhr
Hey Mario,

super vielen Dank für deine Antwort und Hilfe!

Leider möchte ich für diese Lösung nich "verhältnissmäßig" soviel Geld ausgeben ...

Daher würden die ersten beiden Lösungen leider wegfallen ... C# kann ich leider nicht proggen :/

Dachte eher an ein einfaches, kleines Basic Skript oder Trick mit der Windows eigenen Druckmöglichkeit etc..

Mhhhhh
Bitte warten ..
Mitglied: mak-xxl
08.04.2012 um 21:46 Uhr
Moin Beatzler,

Nun, wenn 29,99 USD viel Geld sind, dann vielleicht noch:

... Trick mit der Windows eigenen Druckmöglichkeit ...

eventuell kannst Du mit einem dieser Vorschläge die browserinterne Druckfunktion aufrufen?

Frohe Ostern und freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: rubberman
09.04.2012 um 00:02 Uhr
Hallo Beatzler.

Du könntest auch versuchen den InternetExplorer zu scripten:

*.vbs
01.
Const strURL = "http://www.google.com" 
02.
 
03.
' http://msdn.microsoft.com/en-us/library/ms691264%28v=vs.85%29.aspx 
04.
Const OLECMDID_PRINT = 6 
05.
 
06.
' http://msdn.microsoft.com/en-us/library/ms683930%28v=vs.85%29.aspx 
07.
Const OLECMDEXECOPT_DONTPROMPTUSER = 2 
08.
 
09.
Dim objIE 
10.
Set objIE = CreateObject("InternetExplorer.Application") 
11.
objIE.Visible = True 'Setze auf False, wenn alles funktioniert 
12.
objIE.Navigate strURL 
13.
 
14.
Do While objIE.Busy Or (objIE.ReadyState <> 4) 
15.
    Wscript.Sleep 100 
16.
Loop 
17.
 
18.
' http://msdn.microsoft.com/en-us/library/aa752087%28v=vs.85%29.aspx 
19.
objIE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER 
20.
 
21.
WScript.Sleep 3000 
22.
objIE.Quit 
23.
Set objIE = Nothing
Grüße
rubberman
Bitte warten ..
Mitglied: Beatzler
09.04.2012 um 13:36 Uhr
Hey,

das scheint super gut zu funktionieren !!!

Vielen lieben Dank!

Wie bist du auf diese Lösung gekommen?!

Jetzt muss ich den IE nur noch dazu bringen das Iframe richtig anzuzeigen / zu laden aber das sollte man hinbekommen )

BIG THX !

MFG Beatzler
Bitte warten ..
Mitglied: rubberman
09.04.2012 um 15:14 Uhr
Hallo Beatzler.

Zitat von Beatzler:
Wie bist du auf diese Lösung gekommen?!

Ich wusste, dass man den IE scripten kann und hatte auch eine Vorstellung davon wie es funktionieren müsste. Den Rest habe ich bei Google und auf den auskommentierten Seiten im MSDN nachgelesen. Ist also nicht sooo kompliziert gewesen

Das Problem bei HTML Dateien ist nun mal, dass der Quelltext geparst und interpretiert werden muss, um einen Ausdruck der Seite zu erzeugen. Nichts eignet sich besser als ein Webbrowser ...

Grüße
rubberman
Bitte warten ..
Mitglied: Beatzler
09.04.2012 um 17:47 Uhr
Super, einfach genial

Vielen Dank nochmals !

MFG
Bitte warten ..
Mitglied: Beatzler
21.12.2012 um 14:08 Uhr
Hey hey,

hättet ihr ggf. nochmals einen Tipp für mich ? Das mit dem oben genannten Script funktioniert generell super. Nur leider lädt er manchmal das iframe ( google Maps Karte ) auf der auszudruckenden Seite unvollständig oder falsch .... Habe schon mit den Warte / Pausen Werten rumgespielt aber das bringt leider nichts. Wenn ich das ganze manuell per Hand mache funktioniert der Ausdruck ... :/

Jemand ne Idee / nen Tipp wodran das liegen könnte oder wie man das beheben kann ?

VIelen Dank !

MFG Beatzler
Bitte warten ..
Mitglied: rubberman
21.12.2012 um 19:02 Uhr
Hallo Beatzler.

Ich könnte mir vorstellen, das Browser heutzutage soweit optimiert sind, dass sie nur noch die Teile einer Seite laden, die sichtbar sind.
Vielleicht sollte man dann tatsächlich den Browser im Fullscreen Modus laufen lassen und zusätzlich prüfen, ob das IFrame geladen wurde (sofern eines existiert).

01.
Const strURL = "http://maps.google.de/maps?hl=de&tab=wl" 
02.
 
03.
Const OLECMDID_PRINT = 6 
04.
Const OLECMDEXECOPT_DONTPROMPTUSER = 2 
05.
 
06.
Dim objIE 
07.
Set objIE = CreateObject("InternetExplorer.Application") 
08.
objIE.Visible = True 
09.
objIE.FullScreen = True 
10.
objIE.Navigate strURL 
11.
 
12.
Do While objIE.Busy Or (objIE.ReadyState <> 4) 
13.
    WScript.Sleep 100 
14.
Loop 
15.
 
16.
Dim n 
17.
n = objIE.Document.getElementsByTagName("iframe").length 
18.
If n > 0 Then 
19.
  Dim objIFrame 
20.
  Set objIFrame = objIE.Document.getElementsByTagName("iframe")(0) 
21.
  Do While objIFrame.ReadyState <> "complete" 
22.
      WScript.Sleep 100 
23.
  Loop 
24.
End If 
25.
 
26.
objIE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER 
27.
 
28.
WScript.Sleep 3000 
29.
 
30.
Set objIFrame = Nothing 
31.
objIE.Quit 
32.
Set objIE = Nothing
Hoffe das funktioniert.

Grüße
rubberman
Bitte warten ..
Mitglied: Beatzler
21.12.2012 um 19:42 Uhr
Hey rubberman,

klasse erstmal vielen Dank für deinen tollen und schnellen Support !!! Mal wieder Genial!

Kann es auswirkungen haben ob ich das ganze sichtbar oder "unsichtbar" ausführen lasse ?
objIE.Visible = True ( hatte es bisher immer im Hintergrund )

Ich kann das ganze mit nem PDF Printer testen, nur leider verhält sich dort immer alles korrekt und auf Papier stimmt es dann komischerweise nicht ganz .... ( kann ich mir auch noch nicht ganz erklären, passiert aber auf zwei unterschiedlchen Systemen / Druckern identisch ... )

Die aufzurufende Website hat zwei kleine iframe´s, oben nur einen kleinen text und unten die google maps Karte ...
Bin leider kein Experte :/ Muss ich meine frame´s irgendwie speziell bennen oder hat das hiermit nix zu tun getElementsByTagName("iframe") ? Wäre das der name=Tag in der HTML Site ??

Müsste morgen mal einen Versuch mit deinem neuem Code real starten ...

Danke und Gruß

Beatzler
Bitte warten ..
Mitglied: rubberman
21.12.2012, aktualisiert 22.12.2012
Hallo Beatzler,

ob die Visible Eigenschaft einen Einfluss hat, solltest du mal real testen.

getElementsByTagName("iframe") gibt eine Collection (Array) aller im Dokument enthaltenen IFrames zurück. Die Eigenschaft .length dann die gefundene Anzahl. Über den Index lässt sich auf die einzelenen Elemente zugreifen, ein spezieller Name/ID ist nicht notwendig.

In meinem obigen Code bin ich nur von maximal einem IFrame ausgegangen. Um sicher zu stellen, dass wirklich alle IFrames geladen sind, muss noch eine zusätzlich Schleife rein.
01.
Const strURL = "http://maps.google.de/maps?hl=de&tab=wl" 
02.
 
03.
Const OLECMDID_PRINT = 6 
04.
Const OLECMDEXECOPT_DONTPROMPTUSER = 2 
05.
 
06.
Dim objIE 
07.
Set objIE = CreateObject("InternetExplorer.Application") 
08.
objIE.Visible = True 
09.
objIE.FullScreen = True 
10.
objIE.Navigate strURL 
11.
 
12.
Do While objIE.Busy Or (objIE.ReadyState <> 4) 
13.
    WScript.Sleep 100 
14.
Loop 
15.
 
16.
Dim n 
17.
n = objIE.Document.getElementsByTagName("iframe").length 
18.
If n > 0 Then 
19.
  Dim objIFrame, i 
20.
  For i = 1 To n 
21.
    Set objIFrame = objIE.Document.getElementsByTagName("iframe")(i - 1) 
22.
    Do While objIFrame.ReadyState <> "complete" 
23.
        WScript.Sleep 100 
24.
    Loop 
25.
    Set objIFrame = Nothing 
26.
  Next 
27.
End If 
28.
 
29.
objIE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER 
30.
 
31.
WScript.Sleep 3000 
32.
 
33.
objIE.Quit 
34.
Set objIE = Nothing
Grüße
rubberman

EDIT: (i - n) war natürlich falsch. (i - 1) !
Bitte warten ..
Mitglied: Beatzler
23.12.2012 um 19:52 Uhr
Hey rubberman,

vielen dank!!! ICh konnte das ganze heute real mal testen und habe ein bisschen gespielt mit visibile an / aus, den Wartezeiten, FUllscreen sowie ein paar IE Druckeinstellungen usw.
Es ist eine Verbesserung ersichtlich aber leider entstehen immer noch komische Anzeigevarianten der Google Karte....
Das komische ist nur wenn ich im Visible bin sieht alles gut aus, auch wenn ich manuell auf die Druckvorschau klick sieht noch alles schicki aus ... Nur der PDF oder Real Ausdruck ist dann immer teilweise verschoben oder verzehrt ...


Ich glaube es liegt nicht wirklich an deinem Skript....

Sehr komisch alles. Ich danke dir trotzdem auf jedenfall nochmals für deine bisherige klasse Hilfe !!!
Bitte warten ..
Ähnliche Inhalte
E-Mail

E-Mailanhänge automatisch ausdrucken

Frage von HeinrichME-Mail2 Kommentare

Hallo zusammen, wir haben seit einigen Tagen das Problem, dass die E-Mailanhänge nicht mehr automatisch ausgedruckt werden. Seit her ...

HTML

HTML Formulare automatisch leeren

gelöst Frage von MolochoHTML4 Kommentare

Hi, folgendes Problem: ich habe mit PHP ein Chat-Skript geschrieben. Das wird dann ausgegeben auf einer Seite, die so ...

Webentwicklung

SQL Daten in HTML anzeigen lassen

Frage von MiStWebentwicklung1 Kommentar

Hallo, ich habe eine Sybase-Datenbank und ich möchte gerne mir Tabellen aus dieser Datenbank im Browser anzeigen lassen. Welche ...

Microsoft Office

Aktuelles Tabellenblatt automatisch ausdrucken mit vbs

gelöst Frage von SpacewonderMicrosoft Office2 Kommentare

Hallo das Thema war glaube ich schon mal hier besprochen worden. Doch die richtige Antwort war so richtig nicht ...

Neue Wissensbeiträge
CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 4 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Heiß diskutierte Inhalte
Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung26 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...

Windows 10
Unter Windows 10 Home 64Bit (1709) kommt Fehler beim Aufruf von verschiedenen Systemprogrammen wie z.B. Gerätemanager
Frage von bitshopWindows 1017 Kommentare

Hallo, beim meinem Onkel haben wir seit längerem das Problem, dass z.B. beim Aufruf des Gerätemanagers eine Fehlermeldung kommt ...