Отобразить HTML как изображение
Я генерирую купон на основе динамического ввода и обрезанного изображения, и сейчас я показываю купон, используя ntml и css, проблема заключается в том, что печать стала проблемой из-за того, как фон исчезает при печати и других проблемах, поэтому я считаю, что лучшим решением было бы создать образ на основе html или создать какой-то шаблон, который принимает строки и изображение, и генерирует изображение, используя изображение, поданное в качестве фона, и помещает информация о купоне сверху.
Есть ли что-нибудь, что делает это уже?
Это для веб-сайта ASP.NET 3.5 C #!
- Linux: просмотр изображений с прозрачным окном?
- Просмотрите файл изображения и покажите его с помощью Java Swing
- Как сравнить два изображения с использованием байтовых массивов
- Как создать битмап из массива байтов?
- Помогите получить изображение с сервлета на страницу JSP
Заранее спасибо.
edit: Было бы здорово, если бы результат мог быть основан на вводе HTML, поскольку купон был разработан, манипулируя DOM с помощью jQuery и перетаскивая вещи вокруг, все работает отлично, это просто, когда дело доходит до печати (на бумаге ) он имеет проблемы с z-индексацией.
- Изображение в WPF-кнопке не отображается в режиме Runtime
- Как редактировать данные EXIF в .NET
- Масштабирование изображения с помощью CSS: есть ли альтернатива webkit для -moz-crisp-edge?
- Не удается найти утечку памяти
- Как определить содержимое байта является jpeg?
- Извлечение изображения из PDF с помощью itextsharp
- Мои изображения размыты! Почему WPF SnapsToDevicePixels не работает?
- Фильтры JFileChooser
Что вы можете сделать, так это создать страницу aspx, которая изменит тип ответа в нужном вам формате, а затем поместит изображение в stream. Я создал генератор штрих-кода, который делает аналогичную вещь. Исключая все формальности генерации изображения, вы будете 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 или что вам нужно. Таким образом, вы можете заставить его отображать все, что вы хотите указать.
Вы можете отобразить html в bitmap с помощью элемента управления WebBrowser либо в winforms, либо в консольном приложении.
Пример этого можно найти здесь: http://www.wincustomize.com/articles.aspx?aid=136426&c=1
Вышеприведенный пример может быть изменен для запуска в ASP.Net, создав новый STAThread и выполнив Application.Run, чтобы запустить новый цикл сообщений.
PHP / Ruby Alternative
Если вы получили доступ к этому вопросу и на самом деле ищете что-то, что будет работать без Windows, вы можете попробовать библиотеку KHTML: http://wiki.goatpr0n.de/projects/khtmld
На веб-сайте есть смешное имя, которое я допускаю, но я могу заверить вас, что он подлинный. Другие связанные страницы: страница sourceforge http://khtml2png.sourceforge.net/
Попробуйте PDFSharp … это не совсем «взять этот HTML-файл и сделать PDF-файл», но с небольшим размахом вы можете легко сделать PDF-файл из информации, которую вы используете, чтобы сделать HTML.
МАРКУП ТОЛЬКО АЛЬТЕРНАТНОЕ РЕШЕНИЕ
Используйте SVG и XSLT для преобразования html-данных в изображение, которое может быть отображено / сохранено / и т. Д.
Я признаю, что сначала было утомительно заставить это работать из-за всех координат, но хорошо стоит усилий после его запуска.
Существует очень мощная библиотека создания изображений под названием GD, которую я часто использую с PHP.
Я убежден, что для этой библиотеки есть shell, которую могут использовать программисты ASP. Попробуй это
Если «другие проблемы» довольно серьезны, разве вы не могли бы просто проинструктировать своих пользователей включить Фоновые изображения при печати?
В любом случае, я бы по умолчанию использовал PDF, а не изображение, вдвойне, так как он предназначен для печати.
Просто настройте свой css правильно, чтобы у вас был css-файл, предназначенный для печатного носителя. Довольно легко гарантировать, что купон всегда будет parsingчивым, не беспокоясь о том, есть ли у него изображения bg или нет. Неправильное перемещение к изображению не имеет никакого смысла, если только нет причин, по которым вы не хотите, чтобы оно было машиносчитываемым.
Я не пробовал себя, но вы должны иметь возможность отображать HTML в изображение с помощью элемента управления WebBrowser и метода DrawToBitmap (), унаследованного от базового classа Control.
ОБНОВЛЕНИЕ: Я пробовал это сам, и есть некоторые предостережения. Элемент управления WebBrowser, похоже, не отображает веб-страницу до тех пор, пока элемент управления не будет показан, поэтому WebBrowser должен быть в форме, и форма должна отображаться для отображаемого HTML-документа и события DocumentCompleted.