2011-11-07 5 views
1

HTML 컨트롤 (presuambly div)의 콘텐츠를 가져 와서 몇 가지 다양한 이미지 형식 (jpg, png 및 bmp로 충분)으로 내보낼 수있는 도구를 아는 사람이 있습니까? ? 나는 렌더링이 서버 측 (GDI는 괜찮다.)이되도록 선호하고 가능하다면 저장된 것을 필요로하지 않도록 HttpHandler로 리턴 할 수있는 이미지를 생성한다. 여러 가지보고 도구 (SSRS, Telerik보고)가 이미지 옵션에 대한 내보내기를 제공한다는 것을 알고 있지만 어떻게하는지 알 수는 없습니다.ASP.NET 콘텐츠를 이미지로 내보내기

답변

2

서버 측에서 IE 또는 다른 브라우저를 스핀 업하고 GDI를 사용하여 해당 창의 스크린 샷을 찍을 수 있지만 특정 div를 찾아내는 것이 더 많은 작업을 수행합니다.

클라이언트 측 스크린 샷이 필요한 경우 Java 또는 이와 비슷한 것을 사용해야합니다.

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

도 도움이 될 수 있습니다.

+0

내가이 옵션이 가장 잘 작동하지만, 좀 더 사용자 정의와 진정한 화면 캡처를 복용 필요 내가 실현이 응용 프로그램에 더 많은 비트를 하므로써 것이라고 생각 ... 그것은 것입니다 당신을 도움이되기를 바랍니다 최선의 방법. 나는 대신 GDI에서 이미지를 그리기로 결정했는데, 번거롭지 만 전반적인 시나리오에 가장 적합한 유연성을 줄 것입니다. 팁을 가져 주셔서 감사합니다! – RubyHaus

0

당신은 ....

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 탭을 누른 다음 다음 OK 버튼을 누릅니다 system.windows.forms에게 네임 스페이스를 선택 -

  • 오른쪽
  • 이 참조를 추가 프로젝트 이름을 클릭합니다.
  • 파일 뒤의 .aspx 코드에서는 System.Windows.Formsnamespace를 가져와야합니다.

CopyFromScreen() 함수에서 사용되는 매개 변수를 사용자 정의하여 필요한 경우 화면의 작은 부분을 캡처하는 방법을 파악할 수 있습니다.

위와 같이 폴더를 만들고 C# 코드에서 폴더 경로를 지정하십시오. 코드를 사용자 정의하고 생성 될 때마다 비트 맵 파일의 동적 이름을 지정할 수 있습니다.

나는이 아니다처럼

관련 문제