2013-12-11 9 views
5

Verwenden von IE 11, Windows 8.1.Drucken von Google Maps in einem Webbrowser-Steuerelement - zeigt keine Wegbeschreibungen Linie

Ich Anstecken der folgenden in einem Windows-Formularanwendung:

var html = "<iframe width=\"425\" height=\"350\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" " + 
       "src=\"https://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Oklahoma+City,+OK&amp;daddr=texas&amp;hl=en&amp;" + 
       "geocode=FSgxHQIddAQw-imB0vh-VIqthzGdOk_RdBKiMw%3BFVfN5wEdi54L-ilJMoILNnBAhjE83ggYjxzrFg&amp;aq=t&amp;sll=39.632471," + 
       "-56.554076&amp;sspn=61.466508,135.263672&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;z=7&amp;output=embed\">" + 
       "</iframe>" + 
       "<br /><small><a href=\"https://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Oklahoma+City,+OK&amp;daddr=texas" + 
       "&amp;hl=en&amp;geocode=FSgxHQIddAQw-imB0vh-VIqthzGdOk_RdBKiMw%3BFVfN5wEdi54L-ilJMoILNnBAhjE83ggYjxzrFg&amp;aq=t&amp;" + 
       "sll=39.632471,-56.554076&amp;sspn=61.466508,135.263672&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;z=7\" style=\"color:#0000FF;" + 
       "text-align:left\">View Larger Map</a></small>"; 

     webBrowser1.DocumentText = (html); 

Jetzt möchte ich dies als gesehen drucken, aber es zeigt nicht die Richtungen Linien, wenn ich nach Druckvorschau

bekam
private void button1_Click(object sender, EventArgs e) 
    { 
     this.webBrowser1.ShowPrintPreviewDialog();   
    } 

Ich habe verschiedene Browser-Emulationen ausprobiert und immer noch keine Möglichkeit, die Richtungslinien in Google Maps zu drucken. IE6 - 11 ohne Glück.

SetBrowserFeatureControlKey("FEATURE_BROWSER_EMULATION", fileName, GetBrowserEmulationMode()); 

    public static UInt32 GetBrowserEmulationMode() 
    { 
     int browserVersion = 7; 
     using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer", 
      RegistryKeyPermissionCheck.ReadSubTree, 
      System.Security.AccessControl.RegistryRights.QueryValues)) 
     { 
      var version = ieKey.GetValue("svcVersion"); 
      if (null == version) 
      { 
       version = ieKey.GetValue("Version"); 
       if (null == version) 
        throw new ApplicationException("Microsoft Internet Explorer is required!"); 
      } 
      int.TryParse(version.ToString().Split('.')[0], out browserVersion); 
     } 

     // Internet Explorer 10. Webpages containing standards-based !DOCTYPE directives are displayed in IE10 Standards mode. Default value for Internet Explorer 10. 
     UInt32 mode = 11000; 

     switch (browserVersion) 
     { 
      case 7: 
       // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode. Default value for applications hosting the WebBrowser Control. 
       mode = 7000; 
       break; 
      case 8: 
       // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode. Default value for Internet Explorer 8 
       mode = 8000; 
       break; 
      case 9: 
       // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode. Default value for Internet Explorer 9. 
       mode = 9000; 
       break; 


      case 10: 
       // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode. Default value for Internet Explorer 9. 
       mode = 10000; 
       break; 

      default: 
       // use IE10 mode by default 
       break; 
     } 

     return mode; 
    } 

Kann mir jemand helfen, herauszufinden, warum dies nicht die Richtungen Zeilen drucken? Denken Sie daran, wenn Sie diesen HTML-Code direkt in eine HTML-Datei einfügen und mit IE öffnen, werden die Zeilen für die Routen angezeigt. Aber sie drucken nicht.

aktualisieren

IE verwenden, können Sie stecken in den folgenden in ein Dokument mit der Erweiterung html.

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0"  marginwidth="0" src="https://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Mesa,+AZ+85201&amp;daddr=85258&amp;hl=en&amp;geocode=FXkl_gEduWFV-Sm5aealKggrhzGuOvW7FLWhww%3BFQ8xAAIdIJBU-SmHMd6RyworhzFB0o03Vh1_HQ&amp;aq=t&amp;sll=34.168218,-111.930907&amp;sspn=16.819377,33.815918&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=33.511629,-111.898842&amp;spn=0.100189,0.145912&amp;z=12&amp;output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Mesa,+AZ+85201&amp;daddr=85258&amp;hl=en&amp;geocode=FXkl_gEduWFV-Sm5aealKggrhzGuOvW7FLWhww%3BFQ8xAAIdIJBU-SmHMd6RyworhzFB0o03Vh1_HQ&amp;aq=t&amp;sll=34.168218,-111.930907&amp;sspn=16.819377,33.815918&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=33.511629,-111.898842&amp;spn=0.100189,0.145912&amp;z=12" style="color:#0000FF;text-align:left">View Larger Map</a></small> 

Dies wird alles korrekt in Firefox gedruckt. Ich habe das auf mehreren Druckern getestet.

Dies wird in IE nicht korrekt gedruckt. Ich habe folgendes versucht:

https://support.google.com/maps/answer/21849?hl=en

Alle Ideen, wie die Linien zu bekommen zu zeigen?

+0

Ich führe deinen Code in meiner App, aber es ist OK, ich benutze framework3.5, eine winform App. –

+0

Also, als Sie zu printpreview gingen, sahen Sie, dass die Linien auftauchten? – Watson

+0

kann es nur Browser Emulation Problem sein, versuchen, FEATURE_BROWSER_EMULATION http://StackOverflow.com/Questions/15874565/How-to-Set-ie9-by-default-for-Web-Browser/15883250#15883250 – volody

Antwort

0

Ich weiß nicht, ob Ihre Lösung hier irgendwo ist. Ich kann meinen (IE8 auf XP) nicht bekommen, um die Druckvorschau nicht korrekt anzuzeigen. Das ist übrigens das erste Mal, dass etwas auf XP für mich funktioniert hat, aber nicht jemand anderes auf einem neueren Betriebssystem. Aber hier sind die Registrierungsschlüssel, die ich in der Regel mit Messing Ende:

HKLM:

SOFTWARE \ Microsoft \ Internet Explorer \ Main \ Featurecontrol \ FEATURE_BROWSER_MODE (10) // Ihre Version

SOFTWARE \ Microsoft \ Internet Explorer \ Main \ Featurecontrol \ FEATURE_BEHAVIORS (0 oder 1)

HKCU:

Softwar E \ Microsoft \ Internet Explorer \ Main \ Featurecontrol \ FEATURE_USE_LEGACY_JSCRIPT (0 oder 1)

SOFTWARE \ Microsoft \ Internet Explorer \ Main \ Featurecontrol \ FEATURE_BROWSER_EMULATION (n000)

Stellen Sie außerdem sicher, dass diese (oder equivelant) Optionen sind in IE Internet Security Zone festgelegt.

  • Allow Scripting von Microsoft Webbrowser Kontrolle
  • Script ActiveX-Steuerelemente ausführen, die für Scripting sicher

Gook Glück!

+0

Versuchte verschiedene Kombinationen, aber keine Würfel. Das alles funktionierte für mich richtig, Windows Update oder ein Browserupdate brachte es um. Wenn ich versuche, den Browser unter IE 10 zu emulieren, dann tritt dieser Fehler auf: http://stackoverflow.com/questions/20506925/wpf-webbrowser-control-and-google-maps-overlays-gray-image – Watson

+0

Denkst du es ist möglich wenn der webbrowsercontrol einen Skriptfehler unterdrückt, aber beim Drucken nicht unterdrückt wird? – Watson

+0

Vielleicht. Versuche es. Schalten Sie die Unterdrückung ein und prüfen Sie, ob beim Versuch, die Vorschau zu rendern, ein Fehler auftritt. – drankin2112