【问题标题】:get page width and height in virtual webbrowser [duplicate]在虚拟网络浏览器中获取页面宽度和高度[重复]
【发布时间】:2014-03-08 18:17:45
【问题描述】:

我正在尝试获取上传的 html 文件的宽度和高度。这是我到目前为止所做的。

WebBrowser wb = new WebBrowser();
int ht,wd;
wb.Navigate("D:\\page1.HTM");
ht = wb.Height;
wd = wb.Width;

但上面的代码总是返回错误的页面大小。

谁能帮我在 c# 环境中获得准确的页面大小?

仅供参考:对于那些将此问题标记为重复的人,请考虑原始问题(根据您的观点),网络浏览器工具在形式,但就我而言,我不会实施它。我只是要使用它。我希望第一行代码能说明这一点。

【问题讨论】:

  • @pravprab ,我需要上传的 html 文档的 实际像素 大小。根据您的链接,它说我们需要一个解析器。我使用虚拟浏览器控件来加载 html 文件以满足我的要求。你有什么其他方法可以在这里实现我的选择吗?
  • 仅供参考: 我只需要 Internet Explorer 的实际尺寸。我不关心其他浏览器。
  • 这是一个不错的选择.. 但据我所知,我们无法在虚拟网络浏览器中实现 javascript。 :( 或者还有其他方法吗?

标签: c# height browser width virtual


【解决方案1】:

你可以试试

public partial class Form1 : Form
{
    WebBrowser wb = new WebBrowser();
    public Form1()
    {
        InitializeComponent();
        wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
        wb.Navigate("D:\\page1.HTM");

    }

    private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        int scrollWidth = wb.Document.Body.ScrollRectangle.Width;
        int scrollHeight = wb.Document.Body.ScrollRectangle.Height;
    }
}

这对我来说很好..!

代码

wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);

用于将DocumentCompleted 事件绑定到虚拟网络浏览器Form1 是一个 winform,除了声明为 WebBrowser wb = new WebBrowser(); 的虚拟网络浏览器之外,该表单中没有控件存在。

DocumentCompleted 事件在文档(此处为 page1.HTM)完全加载后触发。

Reference

【讨论】:

  • 其实你的理解正好相反。我在某个位置有一个 html 文件。如果我从 c# 应用程序引用该应用程序,则应用程序必须返回 html 页面的实际宽度和高度(根据 Internet Explorer)。所以,我不能在文件中使用 ajax 组件。
  • 我不允许重写 html 文件...即使它被触发了,我怎样才能获得 c# 中的值...即,从 javascript 到 c#?
  • 很好。如果是一个文件,我可以重写文件。但是,考虑到必须对一组 10000 个文件执行操作。在这种情况下,您的建议将失败。
  • 它可能......但我正在寻找知道如何......因为有几个将html文件转换为pdf的dll。它们的转换主要是基于html页面大小。它们仅在视觉工作室中开发。所以我不能认为这是不可能的。
  • 对象引用未设置为对象的实例。这是我在使用您的建议时遇到的错误。我的代码是 WebBrowser wb = new WebBrowser(); wb.Navigate(new Uri("D:\\page1.HTM")); int scrollWidth = wb.Document.Body.ScrollRectangle.Width; int scrollHeight = wb.Document.Body.ScrollRectangle.Height;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2017-03-20
  • 2012-06-15
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 2011-01-21
相关资源
最近更新 更多