C# 在webbrowser控件中打印谷歌地图-赢得';不要显示方向线
使用IE11、Windows8.1 我正在将以下内容插入windows窗体应用程序:C# 在webbrowser控件中打印谷歌地图-赢得';不要显示方向线,c#,winforms,webbrowser-control,C#,Winforms,Webbrowser Control,使用IE11、Windows8.1 我正在将以下内容插入windows窗体应用程序: var html = "<iframe width=\"425\" height=\"350\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" " + "src=\"https://maps.google.com/maps?f=d&source=s_d&
var html = "<iframe width=\"425\" height=\"350\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" " +
"src=\"https://maps.google.com/maps?f=d&source=s_d&saddr=Oklahoma+City,+OK&daddr=texas&hl=en&" +
"geocode=FSgxHQIddAQw-imB0vh-VIqthzGdOk_RdBKiMw%3BFVfN5wEdi54L-ilJMoILNnBAhjE83ggYjxzrFg&aq=t&sll=39.632471," +
"-56.554076&sspn=61.466508,135.263672&mra=ls&ie=UTF8&t=m&z=7&output=embed\">" +
"</iframe>" +
"<br /><small><a href=\"https://maps.google.com/maps?f=d&source=embed&saddr=Oklahoma+City,+OK&daddr=texas" +
"&hl=en&geocode=FSgxHQIddAQw-imB0vh-VIqthzGdOk_RdBKiMw%3BFVfN5wEdi54L-ilJMoILNnBAhjE83ggYjxzrFg&aq=t&" +
"sll=39.632471,-56.554076&sspn=61.466508,135.263672&mra=ls&ie=UTF8&t=m&z=7\" style=\"color:#0000FF;" +
"text-align:left\">View Larger Map</a></small>";
webBrowser1.DocumentText = (html);
我尝试了不同的浏览器模拟,但仍然无法在谷歌地图中打印方向线。IE6-11没有运气
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;
}
有人能帮我找出为什么这不打印方向线吗?请记住,直接将此html插入.html文件并使用IE打开,将显示方向行。但它们不打印
更新
使用IE,您可以将以下内容插入到扩展名为html的文档中
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=d&source=s_d&saddr=Mesa,+AZ+85201&daddr=85258&hl=en&geocode=FXkl_gEduWFV-Sm5aealKggrhzGuOvW7FLWhww%3BFQ8xAAIdIJBU-SmHMd6RyworhzFB0o03Vh1_HQ&aq=t&sll=34.168218,-111.930907&sspn=16.819377,33.815918&mra=ls&ie=UTF8&t=m&ll=33.511629,-111.898842&spn=0.100189,0.145912&z=12&output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=d&source=embed&saddr=Mesa,+AZ+85201&daddr=85258&hl=en&geocode=FXkl_gEduWFV-Sm5aealKggrhzGuOvW7FLWhww%3BFQ8xAAIdIJBU-SmHMd6RyworhzFB0o03Vh1_HQ&aq=t&sll=34.168218,-111.930907&sspn=16.819377,33.815918&mra=ls&ie=UTF8&t=m&ll=33.511629,-111.898842&spn=0.100189,0.145912&z=12" style="color:#0000FF;text-align:left">View Larger Map</a></small>
这将在firefox中正确打印所有内容。我已经在多台打印机上测试过了
这在IE中打印不正确。我已尝试以下操作:
关于如何让线路显示有什么想法吗?我不知道你的解决方案是否在这里。我无法让我的(XP上的IE8)不正确显示打印预览。顺便说一句,这是我第一次在XP上使用某些东西,而不是在更新的操作系统上使用其他东西。但是,以下是我通常会处理的注册表项: HKLM: SOFTWARE\Microsoft\internetexplorer\Main\FeatureControl\FEATURE\u BROWSER\u MODE(10)//您的版本 软件\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\u行为(0或1) HKCU: 软件\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\U USE\U LEGACY\U JSCRIPT(0或1) 软件\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\u浏览器\u仿真(n000) 此外,确保这些(或同等)选项设置在IE Internet安全区域中
- 允许编写Microsoft web浏览器控件的脚本
- 为标记为安全的ActiveX控件编写脚本
祝你好运 我在我的应用程序中运行了你的代码,但没关系,我使用的是framework3.5,一个winform应用程序。所以,当你转到printpreview时,你看到了显示的行?这可能只是浏览器模拟问题,尝试设置功能\u浏览器\u模拟我正在使用它将默认浏览器模拟设置为IE10。webbrowesercontrol显示正确,但打印不正确。我正在研究您的问题。这不会给我带来任何麻烦。紫色的方向线印得很好。但我也一直在玩IE注册表值,因为我仍然使用XP IE8:)。但作为旁注,IE永远不会安装在windows计算机上。获取IE版本最简单的方法是
webBrowser1.version.Major
如果我能找到答案,我会发布一个答案。我想看看我是否能让它停止工作,看看是什么造成的。尝试了不同的组合,但没有骰子。这一切对我来说都正常工作,windows update或浏览器更新杀死了它。如果我尝试在IE 10下模拟浏览器,则会出现以下错误:您认为webbrowsercontrol是否可能抑制脚本错误,但在打印时不会抑制它?可能。试试看。打开“抑制”按钮,查看当它试图呈现预览时是否出现错误。尝试转到“打印->页面设置”并禁用“启用收缩以适应”。我认为人们在IE10中对此有问题。我关闭了抑制,但没有错误。我束手无策。我已经打开和关闭收缩以适应,它没有任何效果。
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=d&source=s_d&saddr=Mesa,+AZ+85201&daddr=85258&hl=en&geocode=FXkl_gEduWFV-Sm5aealKggrhzGuOvW7FLWhww%3BFQ8xAAIdIJBU-SmHMd6RyworhzFB0o03Vh1_HQ&aq=t&sll=34.168218,-111.930907&sspn=16.819377,33.815918&mra=ls&ie=UTF8&t=m&ll=33.511629,-111.898842&spn=0.100189,0.145912&z=12&output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=d&source=embed&saddr=Mesa,+AZ+85201&daddr=85258&hl=en&geocode=FXkl_gEduWFV-Sm5aealKggrhzGuOvW7FLWhww%3BFQ8xAAIdIJBU-SmHMd6RyworhzFB0o03Vh1_HQ&aq=t&sll=34.168218,-111.930907&sspn=16.819377,33.815918&mra=ls&ie=UTF8&t=m&ll=33.511629,-111.898842&spn=0.100189,0.145912&z=12" style="color:#0000FF;text-align:left">View Larger Map</a></small>