Проблема с отображением изображения внутри HTML-текста в Jeditorpane
У меня есть строка с содержимым HTML, и я устанавливаю ее в JeditorPane. Строка содержит источник изображения. Я сталкиваюсь с большим количеством проблем, оказывающих это.
Мне нужно отправить изображение на принтер. Все выглядит хорошо, но логотип, который всегда сломан.
это HTML-код
<td style="width:20%; height: auto" colspan="1">
<img src = "images/client-logo1.png" />
</td>
и вот как я использую его после прочтения HTML в строку имени HTML
protected byte[] createImage(String html, String imageName) {
final String methodName = "createImage";
if (LOG.isTraceEnabled()) {
LOG.trace("enter\n\t{}", new Object[] {html, imageName});
}
StringReader reader = new StringReader("");
JEditorPane pane = new JEditorPane();
// pane.setEditable(false);
pane.setEditorKit(new HTMLEditorKit());
pane.setContentType("text/html");
pane.setText(html);
pane.setSize(IMAGE_WIDTH, IMAGE_HEIGHT);
pane.setBackground(Color.white);
// Create a BufferedImage
BufferedImage image = new BufferedImage(pane.getWidth(), pane
.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = image.createGraphics();
// Have the image painted by SwingUtilities
JPanel container = new JPanel();
SwingUtilities.paintComponent(g, pane, container, 0, 0, image
.getWidth(), image.getHeight());
g.dispose();
byte[] imageInByte = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "PNG", baos);
baos.flush();
imageInByte = baos.toByteArray();
} catch (IOException e1) {
e1.printStackTrace();
throw new CVProxyApplicationException(
"Not able to create image due to: "
+ e1.getLocalizedMessage());
}
if (LOG.isTraceEnabled()) {
LOG.trace("exit\n\t{}");
}
/*
* // If printer supports bytes, no need to create an image.
* ByteArrayOutputStream os = new ByteArrayOutputStream();
* image.flush(); try { ImageIO.write(image, "png", os); os.flush(); }
* catch (IOException e1) { e1.printStackTrace(); } return
* os.toByteArray();
*/
return imageInByte;
}
любая помощь???
1 ответ
Я подозреваю, что проблема может быть в атрибуте SRC. Убедитесь, что images / client-logo1.png - это фактический путь к изображению. Если он хранится локально, не забудьте использовать префикс file:
,
Например, если изображение хранится в Windows по пути C: \ images \ client-logo1.png, тег img будет выглядеть так:
<img src="file:C:\images\client-logo1.png" />