如何在使用.NET CF的WebBrowser控件中获取页面的所有位图

3
我有一个WindowsMobile 6.5(运行.NET CF 2.0)应用程序,其中嵌入了一个WebBrowser控件来渲染一些内容(远程生成)。我想要将整个网页内容作为位图获取,以便能够将其发送到打印机(不幸的是,此打印机不支持打印HTML)。
我知道这个问题已经在这里提出过: 在.NET Compact Framework中使用WebBrowser Control获取网页位图 但是对于.NET Compact Framework来说,WebBrowser.DrawToBitmap()不存在可行的解决方案。
如果您需要更多细节,请告诉我。

https://dev59.com/hXRB5IYBdhLWcg3wV196 - Jeremy Thompson
@jeremy-thompson:这些示例是针对完整的.NET Framework或使用DrawToBitmap方法(该方法不存在于.NET Compact Framework)的。 - Pierre-David Belanger
谢谢,我添加了CF标签,希望这能得到更多关注,因为如果这是一个限制,那就不太好了。 - Jeremy Thompson
截屏很容易,但你所展示的内容是否适合屏幕大小呢? - tcarvin
2个回答

1

你需要使用另一个库或API来进行HTML到位图的转换,这样你只需要将文档文本或outerhtml发送给API,确保html页面中的所有链接都是绝对链接而不是相对链接,或者其中有一个基础标签,让API进行转换,然后将位图发送到打印机。所以如果你不能直接做到这一点,我建议你寻找一个HTML到位图的API作为解决方案的第二选项或备选项。

.net可能会有这样的API,如果无法按照首选方式完成,则肯定会有许多第三方API可供选择。


0
string url = @"https://screenshotmachine.com/serve.php?img=example-org-FULL-1bdf72.png";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
    Bitmap bmp = new Bitmap(reader.ReadToEnd());
}
  • 也许你可以使用屏幕截图,而不是通过 ScreenCapture

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接