Конвертировать из XML в Microsoft Word Doc

У меня есть партия документов XML и SGML (около 7000 из них). Я хочу что-то, что преобразует их в структурированные документы Microsoft Word. Я читал в Интернете в течение 2 дней о том, как это сделать, и я более запутан, чем когда я начал.

Я вижу, что вы можете использовать Open XML SDK и C# для создания его с помощью Visual Studio, используя этот ответ здесь: ответ Stackru, который ссылается на это с помощью XSLT и Open XML SDK. Однако это 7 лет назад. Я не уверен, что это все еще актуально, и я не знаю, что это определенно то, что мне нужно.

Также документы, из которых я конвертирую, сами теги на шведском языке. Думаю, мне нужно что-то прочитать и преобразовать теги в английский, а затем преобразовать его в формат Word XML.

Я могу писать на C# и C++ и, возможно, смогу разобраться с большинством языков сценариев, если мне это понадобится, но у меня нет опыта в создании текстовых документов из кода. Я понимаю, что мне может понадобиться сделать DTD или XSLT и, возможно, использовать Word XML (я узнал об этом за последние 2 дня) и использовать его в каком-то проекте Visual Studio.

Однако я понятия не имею, как на самом деле пойти по этому поводу. Может кто-нибудь, пожалуйста, направить меня в правильном направлении?

Спасибо

1 ответ

Решение

Эта тема очень широкая и не может дать подробного ответа в одном посте...

Информация, которую вы нашли, датированная 7 лет назад, все еще актуальна и действительна. Все версии Word начиная с 97 могут работать с форматом файла (2003 и более ранние версии нуждаются в пакете совместимости, но большинство компьютеров, которые были обновлены, будут иметь это). Более поздние версии, чем 2007, также могут работать с форматом файла, как было заявлено 7 лет назад, но это не будет охватывать новые функциональные возможности, представленные в 2013/2016. Это может быть добавлено без проблем, вы просто не найдете эти классы в более старой документации, но все это есть в MSDN и в текущих спецификациях ECMA.

Сложная часть, которая на первый взгляд не очевидна, проистекает из того факта, что документ Word Open XML на самом деле представляет собой ZIP-пакет из нескольких XML и двоичных файлов и не может быть преобразован напрямую. Вместо того, чтобы полагаться только на ссылку в SO Q&A, которую вы нашли, вам, возможно, лучше взглянуть на работу напрямую с форматом "плоский файл" OPC, как объяснил Эрик Уайт: http://blogs.msdn.com/b/ericwhite/archive/2008/09/29/the-flat-opc-format.aspx.

То, что вы производите с помощью XSLT, должно иметь такой формат. Это необходимо преобразовать в ZIP-пакет, чтобы продолжить работу с ним с помощью Open XML SDK (и использовать версию 2.5, а не 2.0 7 лет назад). Статьи Эрика Уайта предоставляют информацию о конверсии, которая поможет.

Задача определенно не будет тривиальной, так как Word - очень сложный зверь. Если в наборах этих документов есть что-то общее, вы могли бы быстрее продвигаться, вручную "преобразовав" (частично) один в пользовательском интерфейсе Word в желаемый результат. Сохраните и просмотрите его в инструменте повышения производительности Open XML, где вы можете просмотреть базовый Word Open XML (а также код Open XML SDK, необходимый для его создания). Это должно помочь вам "сопоставить" исходную разметку с разметкой Word Open XML.

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