Пакетное преобразование docx для очистки HTML
Я начинаю задаваться вопросом, возможно ли это. Я искал решения в 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 - это то, что несет ответственность за прикрепление всех этих тегов и дополнительного кода. Моя проблема заключается в том, что я ничего не знаю о том, как это сделать. Возможно, там уже есть альтернативная версия. Все, что мне нужно, это тот, который сохранит таблицы и форматирование текста. Изображения не нужны.
Ответы
Ответ 1
Это похоже на то, что вам нужно: http://msdn.microsoft.com/en-us/library/ff628051(v=office.14).aspx
Автор Эрик Уайт писал о своем опыте разработки этого инструмента. Вы можете увидеть этот список сообщений в своем блоге здесь: http://blogs.msdn.com/b/ericwhite/archive/2008/10/20/eric-white-s-blog-s-table-of-contents.aspx#Open_XML_to_XHtml
Ответ 2
Поскольку я большой поклонник Aspose.Words, коммерческой библиотеки для создания/обработки документов Word, я бы сделал что-то вроде:
Поскольку вы написали, что работаете в университете, я не уверен, что это коммерческие пакеты.
Ответ 3
Привет, я не знаю, какие правила распространяются на ваши собственные решения, поэтому дайте мне знать, если я не в сети.
Я - веб-разработчик, у которого были те же проблемы, поэтому я создал свой собственный инструмент:
http://www.convertwordtohtml.com
Мы также работаем над новой версией, которая будет иметь даже лучшее качество конверсии и одно нажатие на клик, например, вы можете щелкнуть правой кнопкой мыши на текстовом файле, и он будет напрямую преобразован в html и код, помещенный в буфер обмена. Текущая версия также поддерживает доступ к командной строке, а новая версия будет иметь версию сервера.
Существует бесплатная пробная версия, загружаемая с сайта, и если у вас есть какие-либо вопросы, свяжитесь со мной в любое время.