将图像嵌入为 base64 而不是输出到文件夹

embed images as base64 instead of outputing to folder

从 docx 转换为 html 时,您可以指定任何图像的输出路径

org.docx4j.Docx4J.toHTML(wordMLPackage, imageDirPath, imageTargetUri, fos2);

生成的 html 文档通过文件引用图像:

<img height="22" id="rId7" src="..cc6bcedf-2770-45ad-8e81-610bbd8746ceimage1.png" width="42">

相反,我希望转换器将文件嵌入为 base64。这可能吗?

您可以编写自己的 ConversionImageHandler 实现来执行此操作。

默认实现 HTMLConversionImageHandler 将图像写入文件。

要使用您的图像处理程序,请通过 htmlSettings.setImageHandler

指定它

您不需要自定义 ConversionImageHandler 即可实现此目的。 您只需将 imageDirPath 设置为空字符串,图像就会被嵌入

org.docx4j.Docx4J.toHTML(wordMLPackage, "", "", fos2);

发生这种情况是因为 org.docx4j.model.images.AbstractConversionImageHandlerHTMLConversionImageHandler 的派生)已经为您处理了这种情况。