HTML-рендеринг Java с использованием Cobra - PullRequest
5 голосов
/ 07 февраля 2011

В настоящее время я использую Cobra: Java HTML Renderer & Parser для рендеринга HTML-страницы, которая генерируется динамически на основе выбора пользователя в Java-приложении.

В моем приложении пользователь может выбирать из сотен элементов. Элементы отображаются в виде специальных уникальных цветных символов, и пользователь может выбрать более одного элемента.

Как только несколько элементов выбраны, их письменное описание динамически генерируется и форматируется для включения тегов css2 и html4 и загружается в HTML-панель Cobra для отображения.

Я хочу отобразить изображение символа с письменным описанием элемента в HTMLPanel.

Один из способов сделать это - сохранить BufferedImage в файл, используя ImageIO.write, а затем включить HTML-тег img в мой динамически генерируемый HTML-документ, который загружается в HTMLPanel. К сожалению, это недопустимо, поскольку пользователь может выбрать сотни символов, что в свою очередь приведет к сотням вызовов ImageIO.write и невероятному снижению производительности моего приложения.

Альтернативным способом было бы преобразовать BufferedImage в кодировку Base64, а затем непосредственно поместить кодировку в документ HTML следующим образом

<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

К сожалению, HTMLPanel, похоже, игнорирует схему URI данных.

Кто-нибудь знает решение?

1 Ответ

1 голос
/ 15 февраля 2011

Используйте встроенный контейнер сервлетов, такой как Jetty. Укажите URL-адреса на «http://localhost:somePort/imageId",», а затем отправьте эти URL-адреса из памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...