1

我正在使用 LibreOffice 4 和 Java Uno API 来管理文档。

我遇到了通过 Java Uno API 将带有 img 标签的 HTML 文档导入 LibreOffice 并以其他格式(例如 odt、docx、doc、rtf)保存文档的情况。

问题在于 LibreOffice 将 img 标签转换为带有链接的图形对象(未嵌入文档中)。

我试图使用 html base64 但似乎 LibreOffice 不支持它。

现在我想将这些链接的图形对象转换为嵌入的图形对象。
我可以通过 XTextGraphicObjectsSupplier 遍历图像,但我无法弄清楚如何嵌入这些对象。

可能吗?

也许可以在 html img 标签中创建一些神奇的属性,然后 LibreOffice 会嵌入它?

4

1 回答 1

1

似乎自由/开放办公室不支持此选项。唯一的方法是删除并再次插入嵌入的图像,但您必须注意格式(例如大小等)。我通过执行这些步骤实现了我的目标(警告它是黑客......):

  1. 将 HTML 保存到 odt。在这个 odt 图形链接到磁盘上的文件。
  2. 解压 odt 文件。
  3. Pictures在解压缩的目录中创建目录并将所有图像移到那里。
  4. 编辑content.xml系统文件的路径并将其替换为Pictures/file-name.
  5. 编辑META-INF/manifest.xml和类似的东西<manifest:file-entry manifest:media-type="image/png" manifest:full-path="Pictures/file-name"/>
  6. Zip 文件夹并将扩展名更改为 odt。
  7. 通过 Libre/Open Office Java Uno API 读取 odt 文件。现在这个文档已经嵌入了图形对象。
于 2013-03-18T09:19:56.440 回答