我需要像Word一样编写一个编辑器。它需要支持编辑文件,插入和删除图像以及其他一些东西 我选择JTextPane来做这些事情 我像这样使用imageIcon加载并显示图像:
BufferedImage img = ImageIO.read(file);
ImageIcon icon = new ImageIcon(img);
insertIcon(new ImageIcon(img));
我现在面临的问题是如何将图像保存到文件中?我使用HTMLDocument和HTMLEditorKit来实现save方法,主要逻辑如下:
public void saveAs() {
doc = (HTMLDocument) getStyledDocument();
File newFile = new File(path);
FileWriter fw = new FileWriter(newFile);
kit.write(fw, doc, 0, doc.getLength());
fw.close();
}
Kit和doc是我的Page类中的私有成员(从JTextPane派生的页面)。
在saveAs
方法执行后,保存的文件不包括图像:
<html>
<head>
</head>
<body>
<p style="margin-top: 0">
hello world
</p>
<p style="margin-top: 0">
<p $ename="icon">
</p>
</body>
</html>
从HTML文件中我们可以看到image path
没有编码到那里,我想知道如何实现saveAs
方法来支持保存图像?
非常感谢!
答案 0 :(得分:0)
实际上,您插入的图标不是HTML的一部分,因此不会保存。要以HTML格式执行此操作,您需要参考图像网址插入<IMG>
标记。
可以是file://... some path here ... yourImage.jpg
如果你需要以某种方式嵌入图像HTMLEditorKit是不够的。
没有简单的方法来嵌入图像。
您可以看到我尝试执行此操作in RTF
但一般来说,你应该自己编写代码。