Добавление изображений в DOC OpenXML, созданный из AltChunk

StackOverflow https://stackoverflow.com/questions/1281034

  •  16-09-2019
  •  | 
  •  

Вопрос

Мне нужен автоматический процесс для создания файлов DOCX из источника XHTML. Файлы XHTML содержат изображения (<img> Элементы) чьи атрибуты «SRC» указывают на внешнюю ссылку. Но файлы DOCX должны быть читаемыми без сетевого соединения, поэтому мне нужно найти способ встраивать изображения непосредственно в пакет DOCX (а именно в папку /медиа).

До сих пор я использовал метод AltChunk (как описано Эрик Уайт) для создания файла .docx. Я надеялся использовать SDK OpenXML, чтобы вставить детали изображения в упаковку. Но для этого мне нужно вставить абзацы (<p> узлы) в документ. К сожалению, часть документа содержит только ссылку на AltChunk (хранясь отдельно в пакете DOCX). Конечно, после того, как DOCX открывается, отредактирована и сохранена, часть AltChunk удаляется, и его содержимое правильно встроено в Document.xml. Но я не знаю никакого способа сделать это программатически, так что это не помогает.

Другие варианты, которые я рассмотрел:

  1. Разделение XHTML на сегменты, разделенные между каждым изображением, затем добавляя каждый альтчунк по одному, с соответствующим ссылкой на изображение между каждым. (Утомительно, но кажется возможным)
  2. Вставка изображений в папку мультимедиа, а затем найти способ встраивать WordProcessingML непосредственно в XHTML, чтобы <img> Ссылка на упакованный файл изображения. (В лучшем случае сомнительно) может ли кто -нибудь подумать о лучшем подходе?
Это было полезно?

Решение

Что ж, я решил свою собственную проблему: я решил преобразовать документ в MHTML (который может содержать изображения, встроенные непосредственно в файл), а затем использовать AltChunk для создания окончательного файла DOCX. Тем не менее, я все еще хотел сделать некоторую пост-обработку в файле (для вставки энджетов в документ Word), но, как упоминалось выше, это невозможно, пока после Алтчунк был преобразован в DOCX, который не может быть сделан программно.

Поэтому меня осенило, что я могу вообще обойти путь AltChunk и просто использовать MHTML в качестве «шлюза» от XHTML до DOCX. Я только что превратил XHTML в MHTML, в комплекте со встроенными изображениями а также Энджеты, затем переименовали файл с расширением .doc. Полученный документ может быть открыт непосредственно Word (и будет более правильно преобразован при последующем сохранении). До сих пор это отлично работает (хотя с некоторыми ошибками в версии Word Mac, а также Word2003).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top