【问题标题】:Export ASP.NET Content to Image将 ASP.NET 内容导出到图像
【发布时间】:2011-12-23 17:43:01
【问题描述】:

有谁知道任何工具,您可以在其中获取 HTML 控件的内容(可能是 div)并将其导出为几种不同图像格式之一(jpg、png 和 bmp 就足够了)?我更喜欢在服务器端完成渲染(GDI 很好),只创建一个我可以用 HttpHandler 返回的图像,所以如果可能的话,它不需要保存。我知道许多报告工具(SSRS、Telerik Reporting)提供导出到图像的选项,但我不知道他们是如何做到的。

【问题讨论】:

    标签: asp.net image export


    【解决方案1】:

    您可以在服务器端启动 IE 或其他浏览器并使用 GDI 截取该窗口的屏幕截图,但精确定位特定 div 需要更多工作。

    如果您需要客户端屏幕截图,则需要使用 Java 或类似的东西。

    How to take screenshot of div from a webpage using C# and ASP.NET?

    也可能有帮助。

    【讨论】:

    • 我认为这个选项效果最好,但是在使用这个应用程序做更多事情时,我意识到我需要更多的自定义,并且像这样进行真正的屏幕截图并不是最好的方法。我决定在 GDI 中绘制图像,虽然很麻烦,但可以为我的整体场景提供最佳灵活性。不过感谢您的提示!
    【解决方案2】:

    好吧,如果你想截取网页并保存它是图像格式(你想要什么) 你可以这样做....

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Collections.Generic;
    using System.Web.Services;
    using System.Text;
    using System.Windows.Forms;//must be included for capturing screenshot
    
    public partial class capture_webpage_screenshot : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
            Graphics graphics = Graphics.FromImage(bitmap as System.Drawing.Image);
            graphics.CopyFromScreen(25, 25, 25, 25, bitmap.Size);
            bitmap.Save(@"c:\screenshot\myscreenshot.bmp", ImageFormat.Bmp);
    
        }
    }
    

    您必须按照以下步骤操作:

    您只需执行以下步骤。

    • 右键项目名称
    • 添加参考 -> .net 选项卡,然后选择 system.windows.forms 命名空间,然后按确定按钮。
    • 在 .aspx 代码隐藏文件中,您必须导入 System.Windows.Formsnamespace 就是这样。

    通过自定义 CopyFromScreen() 函数中使用的参数,您可以了解如何在需要时捕获屏幕的一小部分。

    创建一个文件夹并在 C# 代码中给出文件夹路径,就像我上面给出的一样。您也可以自定义代码,并在每次生成位图文件时给出它的动态名称。

    希望对你有帮助……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 2018-05-05
      • 2012-11-16
      • 2012-02-22
      • 2020-05-23
      相关资源
      最近更新 更多