Вставлять изображения как 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

Другие вопросы по тегам