我使用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 回答
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文件 . 现在这个文档嵌入了图形对象 .