Я начинаю задаваться вопросом, возможно ли это. Я искал решения в Google и не придумывал ничего, что работает именно так, как мне бы хотелось.
Я думаю, что было бы полезно объяснить, что это значит. Я работаю в группе базы данных в ИТ-отделе моего университета. Моя основная задача - взять спецификации отчета в файле docx, скопировать его в Dreamweaver, исправить форматирование и разместить его на своем веб-сайте. Моя проблема в том, что это смешно утомительно делать это снова и снова. Я понял, что, я не писал ничего на С# в течение некоторого времени, возможно, я мог бы написать приложение, чтобы захватить файл 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 - это то, что несет ответственность за прикрепление всех этих тегов и дополнительного кода. Моя проблема заключается в том, что я ничего не знаю о том, как это сделать. Возможно, там уже есть альтернативная версия. Все, что мне нужно, это тот, который сохранит таблицы и форматирование текста. Изображения не нужны.