gpt4 book ai didi

java - Open/Libre Office API 替换图像

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:57 27 4
gpt4 key购买 nike

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

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

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

我尝试使用 html base64,但似乎 LibreOffice 不支持。

现在我想将这些链接的图形对象转换为嵌入的图形对象。
我可以通过 XTextGraphicObjectsSupplier 迭代图像,但我不知道如何嵌入这些对象。

可能吗?

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

最佳答案

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

  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. 压缩文件夹并将扩展名更改为 odt。
  7. 通过 Libre/Open Office Java Uno API 读取 odt 文件。现在该文档已嵌入图形对象。

关于java - Open/Libre Office API 替换图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15460505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com