Преобразуйте элемент управления HTML (Div или Table) в изображение с помощью С#

Можно ли преобразовать элемент управления Html в образ в С#?

Есть ли какой-либо метод С#, где я могу передать объект управления Html и вернуть изображение этого элемента управления html?

Возможно ли, какие-либо предложения?

Ответы

Ответ 1

Мы использовали http://iecapt.sourceforge.net/ для преобразования HTML в изображение. Вы можете попробовать. Он доступен для БЕСПЛАТНО.

Ответ 2

Рассмотрим эту (непроверенную!) библиотеку над guangmingsoft под названием htmlsnapshot.

добавить ссылку на htmlsnap2.dll

Там есть пример проекта для загрузки.

Вот их примерный код, снятый прямо из этой ссылки:

snap = new CHtmlSnapClass();
snap.Url("www.google.com", "*")
byte[] data = (byte[])snap.GetImageBytes(".jpg");
//byte[] data = (byte[])snap.GetThumbImageBytes(".jpg", 100, 100, 1);


FileStream fs = File.OpenWrite(@"c:\1.jpg");
BinaryWriter br = new BinaryWriter(fs);
br.Write(data);
br.Close();
fs.Close();

Обновление Если вам нужен только определенный элемент управления, вы можете написать себе страницу, задачей которой является повторное отображение целевого элемента управления как единственных фрагментов HTML на странице.

Ответ 3

Элемент управления, который вы описываете, имеет в качестве выходного HTML. Это все, что он делает.

Ваша проблема в том, что вы хотите превратить фрагмент HTML в изображение. Рендеринг HTML выполняется браузером - ASP.NET не имеет ничего общего с тем, как HTML визуализируется клиентом.

Большинство .NET-библиотек, которые выполняют эту работу (превращая HTML в изображения), используют IE для преобразования. Некоторые из этих утилит включают в себя:

Но более простой ответ на этот вопрос заключается в том, что элементы управления ASP.NET не отображают формат изображения. Вам нужно будет сделать снимок экрана IE на странице, на которой есть только этот элемент управления (или HTML).

Ответ 4

Я не пробовал это сам, но кое-что, что я хотел посмотреть, может помочь вам: HTMLRenderer.