Добавление изображений в DOC OpenXML, созданный из AltChunk
Вопрос
Мне нужен автоматический процесс для создания файлов DOCX из источника XHTML. Файлы XHTML содержат изображения (<img>
Элементы) чьи атрибуты «SRC» указывают на внешнюю ссылку. Но файлы DOCX должны быть читаемыми без сетевого соединения, поэтому мне нужно найти способ встраивать изображения непосредственно в пакет DOCX (а именно в папку /медиа).
До сих пор я использовал метод AltChunk (как описано Эрик Уайт) для создания файла .docx. Я надеялся использовать SDK OpenXML, чтобы вставить детали изображения в упаковку. Но для этого мне нужно вставить абзацы (<p>
узлы) в документ. К сожалению, часть документа содержит только ссылку на AltChunk (хранясь отдельно в пакете DOCX). Конечно, после того, как DOCX открывается, отредактирована и сохранена, часть AltChunk удаляется, и его содержимое правильно встроено в Document.xml. Но я не знаю никакого способа сделать это программатически, так что это не помогает.
Другие варианты, которые я рассмотрел:
- Разделение XHTML на сегменты, разделенные между каждым изображением, затем добавляя каждый альтчунк по одному, с соответствующим ссылкой на изображение между каждым. (Утомительно, но кажется возможным)
- Вставка изображений в папку мультимедиа, а затем найти способ встраивать WordProcessingML непосредственно в XHTML, чтобы
<img>
Ссылка на упакованный файл изображения. (В лучшем случае сомнительно) может ли кто -нибудь подумать о лучшем подходе?
Решение
Что ж, я решил свою собственную проблему: я решил преобразовать документ в MHTML (который может содержать изображения, встроенные непосредственно в файл), а затем использовать AltChunk для создания окончательного файла DOCX. Тем не менее, я все еще хотел сделать некоторую пост-обработку в файле (для вставки энджетов в документ Word), но, как упоминалось выше, это невозможно, пока после Алтчунк был преобразован в DOCX, который не может быть сделан программно.
Поэтому меня осенило, что я могу вообще обойти путь AltChunk и просто использовать MHTML в качестве «шлюза» от XHTML до DOCX. Я только что превратил XHTML в MHTML, в комплекте со встроенными изображениями а также Энджеты, затем переименовали файл с расширением .doc. Полученный документ может быть открыт непосредственно Word (и будет более правильно преобразован при последующем сохранении). До сих пор это отлично работает (хотя с некоторыми ошибками в версии Word Mac, а также Word2003).