Подтвердить что ты не робот

Отобразить HTML как изображение

Я создаю купон на основе динамического ввода и обрезанного изображения, и сейчас я показываю купон, используя ntml и css, проблема заключается в том, что печать стала проблемой из-за того, как фон исчезает при печати и другие проблемы, поэтому я считаю, что лучшим решением было бы создать изображение на основе html или создать какой-то шаблон, который принимает строки и изображение, и генерирует изображение, используя изображение, загруженное в качестве фона и помещает информацию о купоне сверху.

Есть ли что-нибудь, что делает это уже?

Это для веб-сайта ASP.NET 3.5 С#!

Спасибо заранее.

edit: Было бы здорово, если бы результат мог быть основан на вводе HTML, так как купон разработан, манипулируя DOM с помощью jQuery и перетаскивая вещи вокруг, все работает отлично, это просто, когда дело доходит до печати (на бумаге) он имеет проблемы с z-индексацией.

4b9b3361

Ответ 1

Что вы можете сделать, так это создать страницу aspx, которая изменит тип ответа в нужном вам формате, а затем поместит изображение в поток. Я создал генератор штрих-кода, который делает аналогичную вещь. Исключая все формальности создания изображения, вы будете Page_Load выглядеть примерно так:

Bitmap FinalBitmap = new Bitmap();
MemoryStream msStream = new MemoryStream();

strInputParameter == Request.Params("MagicParm").ToString()

// Magic code goes here to generate your bitmap image.
FinalBitmap.Save(msStream, ImageFormat.Png);

Response.Clear();
Response.ContentType = "image/png";

msStream.WriteTo(Response.OutputStream);

if ((FinalBitmap != null)) FinalBitmap.Dispose();

и что это! Тогда все, что вам нужно сделать в вашем изображении, - установить URL-адрес как нечто вроде RenderImage.aspx? MagicParm = WooHoo или что вам нужно. Таким образом, вы можете визуализировать все, что вы хотите указать.

Ответ 2

Вы можете отобразить html в растровое изображение с помощью элемента управления WebBrowser либо в winforms, либо в консольном приложении.

Пример этого можно найти здесь: http://www.wincustomize.com/articles.aspx?aid=136426&c=1

Приведенный выше пример может быть изменен для запуска в ASP.Net, создав новый STAThread и выполнив Application.Run, чтобы запустить новый цикл сообщений.

Ответ 3

Альтернатива PHP/Ruby


Если вы получили доступ к этому вопросу и действительно ищете что-то, что будет работать без Windows, вы можете попробовать библиотеку KHTML: http://wiki.goatpr0n.de/projects/khtmld

На веб-сайте есть смешное имя, которое я допускаю, но я могу заверить вас, что он является подлинным. Другие связанные страницы: страница sourceforge http://khtml2png.sourceforge.net/

Ответ 4

Попробуйте PDFSharp... это не совсем "взять этот HTML-код и сделать PDF файл", но с небольшим количеством фрилансеров вы можете легко сделать PDF из информации, которую вы используете для создания HTML.

Ответ 5

ТОЛЬКО ПОЛЬЗОВАТЕЛЬСКОЕ РЕШЕНИЕ MARKUP

Используйте SVG и XSLT для преобразования данных html в изображение, которое может быть отображено/сохранено/и т.д.

Я признаю, что сначала было утомительно заставить это работать из-за всех координат, но хорошо стоит усилий после его запуска.

Ответ 6

Существует очень мощная библиотека создания изображений, называемая GD, которую я часто использую с PHP.

Я убежден, что для этой библиотеки есть оболочка, которую могут использовать программисты ASP. Попробуйте это

Ответ 7

Если "другие проблемы" довольно серьезны, не могли бы вы просто проинструктировать своих пользователей включить Фоновые изображения при печати?

В любом случае, я бы по умолчанию использовал PDF, а не изображение, вдвойне, так как он предназначен для печати. ​​

Ответ 8

Просто настройте свой css правильно, чтобы у вас был файл css, предназначенный для среды печати. Довольно легко гарантировать, что купон всегда будет разборчивым, не беспокоясь о том, есть ли у него изображения bg или нет. Неправильное перемещение к изображению не имеет никакого смысла, если только нет причин, по которым вы не хотите, чтобы оно было машиносчитываемым.

Ответ 9

Я не пробовал себя, но вы должны иметь возможность отображать HTML в изображение с помощью элемента управления WebBrowser и метода DrawToBitmap(), унаследованного от базового класса Control.

ОБНОВЛЕНИЕ: Я пробовал это сам, и есть некоторые оговорки. Элемент управления WebBrowser, по-видимому, не отображает веб-страницу до тех пор, пока элемент управления не будет показан, поэтому WebBrowser должен быть в форме, и форма должна отображаться для отображаемого HTML-кода, а событие DocumentCompleted должно быть поднято.