0

我需要编写一个像 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 的 Page)中的私有成员。在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支持保存图像的方法?
非常感谢!

4

1 回答 1

0

实际上,您插入的图标不是 HTML 的一部分,因此不会保存。要以 HTML 样式执行此操作,您需要<IMG>参考图像 URL 插入标记。

可能file://... some path here ... yourImage.jpg

如果您需要以某种方式嵌入图像 HTMLEditorKit 是不够的。

嵌入图像没有简单的方法。

你可以看到我在 RTF 中尝试这样做

但总的来说,您应该自己编写代码。

于 2018-01-11T07:52:07.580 回答