Я начинаю задумываться, возможно ли это вообще. Я искал решения в Google и не нашел ничего, что работало бы так, как мне бы хотелось.
Я думаю, что было бы полезно объяснить, что это влечет за собой. Я работаю в группе баз данных в отделе информационных технологий моего университета. Моя основная задача - взять спецификации отчета в файле docx, скопировать их в dreamweaver, исправить некоторые форматирования и разместить их на своем веб-сайте. Моя проблема в том, что это до смешного скучно делать это снова и снова. Я подумал, эй, я уже ничего не писал в C # в течение некоторого времени, возможно, я мог бы написать приложение, чтобы получить файл docx, преобразовать его в HTML, исправить CSS, прикрепить верхний и нижний колонтитулы с веб-страницы там и сохраните результат. Первоначально я планировал сделать это один за другим, но, вероятно, не составит труда сделать так, чтобы он вводил список файлов и выполнял пакетное преобразование.
Я нашел эти актуальные темы о том, как этого добиться, но они недостаточно хорошо соответствуют моим потребностям.
http://www.techrepublic.com/blog/howdoi/how-do-i-modify-word-documents-using-c/190
Это, вероятно, хорошо для нескольких документов, но, поскольку он просто автоматизирует экземпляр Word, я чувствую, что он будет медленным и занимать много памяти. Я бы предпочел не открывать и закрывать экземпляр Word более 50 раз.
http://openxmldeveloper.org/articles/333.aspx
Это то, что я начал использовать. Преимущество XSLT заключалось в том, что не нужно было устанавливать и запускать слова для каждого файла. После некоторых поисков я получил доказательство работоспособности концепции. Он берет файл docx, распаковывает его, извлекает из него document.xml и использует файл DocX2Html.xsl, который я очистил от средства просмотра OpenXML. Я полагаю, что это было изначально предоставлено MS для серверов sharepoint, чтобы обеспечить возможность визуализации текстовых документов в браузере. Или что-то в этом роде.
После настройки этого кода в соответствии с моими потребностями и возникновения проблем с методом objXSLT.Load () я в конечном итоге использовал IlMerge, чтобы превратить XSL в DLL. Не знаю, почему я продолжал получать ошибку компиляции при использовании простого старого XSL-файла, но DLL работала нормально, поэтому я был удовлетворен. Здесь (http://pastebin.com/a5HBAakJ) - мой текущий код. Он прекрасно справляется с задачей преобразования docx в HTML (кроме случайных пробелов между словами), но файл результатов имеет смехотворно уродливый синтаксис HTML. Примером такого уродства может быть можно найти здесь (http://pastebin.com/b8sPGmFE).
Кто-нибудь знает, как я мог это исправить? Я думаю, что, возможно, мне нужно создать новый XSL-файл, так как MS предоставил именно то, что отвечает за размещение всех этих тегов и дополнительного кода. Моя проблема в том, что я ничего не знаю о том, как это сделать. Возможно, уже есть альтернативная версия. Все, что мне нужно, это тот, который сохранит таблицы и форматирование текста. Изображения не нужны.