Открытая библиотека для работы с документами Microsoft Word формата .docx в мире .Net в 2023 году: Wordroller

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Свою предыдущую статью на Хабре я написал в 2016 году, и она была посвящена подборку команды стартапа. Примерно в это время я погрузился в историю создания собственного продукта и стало не до создания контента. Так получилось, что в 2020 году мне пришлось сделать свою реализацию библиотеки для создания, редактирования и индексирования документов формата Microsoft Word, стандартизированного как OOXML WordprocessingML и получившего в свое время расширение файла .docx. Именно ей и хотелось бы поделиться с сообществом.

Так исторически сложилось, что ядро нашего проекта работает на стеке технологий Microsoft, а для формирования Word'овских документов мы использовали [тогда] открытую библиотеку DocX, ныне принадлежащую коммерческой компании и распространяемой на платной основе. Причем коммерциализация произошла ровно в момент всеобщего перехода на .Net Core, а последняя свободная версия библиотеки новую платформу не поддерживала. Нужна была замена.

Конечно, никто в здравом уме не берет спецификацию и не делает такие вещи с нуля добровольно. К сожалению, оказалось, что и dotnet-порт Apache POI, и разработанная Microsoft Open XML SDK — очень низкоуровневые библиотеки с очень высоким порогом входа, требующие глубокого знания формата, а код оригинальной библиотеки DocX оказался просто живым кошмаром, совершенно не поддающимся рефакторингу (так что я полностью понимаю желание новых владельцев брать за нее деньги, поскольку психотерапевт — удовольствие не дешевое).

Ко всему этому оригинальная DocX была полна труднообъяснимых багов с единицами измерения, непредсказуемой работой с таблицами и другими проблемами, которые нужно было решать. Поэтому пришлось вооружиться спецификацией 2007 года и сделать для себя что-то работающее.

Этой библиотекой, лицензируемой под лицензией Apache 2.0 и хотелось бы поделиться:

https://github.com/shestakov/wordroller

Wordroller реализует основные функции, присутствовавшие в орининальной DocX: работа с абзацами текста, стилями, таблицами и изображениями, поиск и замена текста.

Не были реализованы менее востребованные вещи, такие как автофигуры, функциональность режима правок (она не была полноценно реализована и в оригинальной библиотеке, особенно для таблиц).

Буду рад, если уже неновая библиотека облегчит кому-то жизнь, особенно в небольших отделах автоматизации и стартапах.

Источник: https://habr.com/ru/articles/731814/


Интересные статьи

Интересные статьи

Свежее исследование Gartner на будущий 2023 год на удивление сильно отличается от прогнозов на 2022. Оттого интереснее посмотреть, на что делают акцент ребята из главного в области информационных техн...
Привет, Хабр! Сейчас многие сталкиваются с проблемой замены BI-платформы из-за выхода с рынка зарубежных вендоров — особенно популярного и многими любимого PowerBI. И поэтому наши коллеги снова подход...
Приглашаем принять участие в крупнейшей технической международной конференции 2021 года Microsoft Ignite со 2 по 4 марта!Microsoft Ignite – одно из ключевых мер...
Всем привет. В этой статье я хотел бы поделиться своим опытом настройки и использования pass — менеджера паролей для Linux и не только, примечательного своей простотой, использованием уже присутс...
FAQ.Net — программа для заметок, написанная под Windows на языке C# (.NET Framework 2.0). История началась с того, что нужна была портативная программа для хранения накопленных знаний (копий ста...