首页 文章

Open / Libre Office API替换图像

提问于
浏览
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会嵌入它吗?

1 回答

  • 1

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

    • 将HTML保存到odt . 在这个odt图形链接到磁盘上的文件 .

    • 解压缩odt文件 .

    • 在解压缩的目录中创建目录 Pictures 并移动所有图像 .

    • 编辑 content.xml 并将系统文件的路径替换为 Pictures/file-name .

    • 编辑 META-INF/manifest.xml 之类的东西 <manifest:file-entry manifest:media-type="image/png" manifest:full-path="Pictures/file-name"/>

    • Zip文件夹并将扩展名更改为odt .

    • 通过Libre / Open Office Java Uno API读取odt文件 . 现在这个文档嵌入了图形对象 .

相关问题