Вставлять изображения как base64 вместо вывода в папку
При конвертации из 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. Это возможно?
2 ответа
Вам не нужен кастом ConversionImageHandler
для достижения этой цели. Вы можете просто установить imageDirPath на пустую строку, и изображения будут встроены
org.docx4j.Docx4J.toHTML(wordMLPackage, "", "", fos2);
Это происходит потому, что org.docx4j.model.images.AbstractConversionImageHandler
(из которого HTMLConversionImageHandler
Происходит) уже обрабатывает этот случай для вас.
Вы можете написать свою собственную реализацию ConversionImageHandler, чтобы сделать это.
Реализация по умолчанию HTMLConversionImageHandler записывает изображения в файлы.
Чтобы использовать ваш обработчик изображений, укажите его через htmlSettings.setImageHandler