- открыть docx
- How to open Microsoft Word documents in Linux
- LibreOffice
- Installing LibreOffice
- Debian 8, Ubuntu 15
- Fedora 23
- OpenSUSE 10
- CentOS 7
- Arch Linux 2016
- AbiWord
- Installing AbiWord
- Debian 8, Ubuntu 15
- Fedora 23
- OpenSUSE 10
- CentOS 7
- Arch Linux 2016
- Antiword
- Using Antiword
- Installing antiword
- Debian 8, Ubuntu 15
- Fedora 23
- OpenSUSE 10
- CentOS 7
- Docx2txt
- Debian 8
- Ubuntu 15
- Fedora 23
- OpenSUSE 10
- CentOS 7
- Arch Linux 2016
- Installing Microsoft-compatible fonts
- Debian 8, Ubuntu 15
- Fedora 23
- OpenSUSE 10
- CentOS 7
- Arch Linux 2016
- Ищу просмотрщик MS Office файлов на Linux.
- Работа с текстовыми документами в Linux и аналог Word
- Как я разбирал docx с помощью XSLT
- Зачем?
- Структура docx
- Минимальный docx
- [Content_Types].xml
- _rels/.rels
- word/document.xml
- word/_rels/document.xml.rels
- docx и Microsoft Word
- Реверс-инжиниринг docx
- Инструменты
- Использование
- Пример 1. Выделение текста жирным
- docProps/app.xml
- docProps/core.xml
- word/document.xml
- word/settings.xml
- Пример 2. Нижний колонтитул
- [Content_Types].xml
- word/_rels/document.xml.rels
- word/document.xml
- word/settings.xml
- word/styles.xml
- word/footer1.xml
- Практика
- Алгоритм
- Распаковка
- Создаём файл нижнего колонтитула
- Добавляем ссылку на колонтитул в список связей основного документа
- Прописываем ссылки в документе
- Добавляем колонтитул в [Content_Types].xml
- В результате
- Выводы
открыть docx
чем открыть docx кроме монстров опенофис и либреофис?
пишет -тип архива не поддерживается, ос xubuntu
Кофисом можно ,но я боюсь что он не менее монстр.
Буквально вчера нужно было открыть докх с несколько таблицами и формулами. Если нужно только посмотреть содержимое, то один из лучших вариантов это отправить себе письмо на яндекс почту и в браузере открыть, а там уже в пдф или что надо. Гугл докс тоже хорошо. Ещё можно отредактировать, хотя как там вставлялись формулы не обратил внимание. Что касается caligra и LO, то там всё совсем плохо было. Калигра чуть лучше наверно показывало содержимое и форматирование, но некоторые формулы в ЛО я мог редактировать. Zoho writer — хуже всего наверное.
В целом это всё от документа зависит и что тебе от него надо. Пол года назад пробовал калигру, то ужаснулся и удалил как страшный сон. Сильно хуже чем в ЛО. Может допили, а может просто документ такой попался.
antiword попробуй хотя я не знаю как он с docx.
как вариант — catdoc. Хз как он с docx, но доки есть, может и docx переварит.
пишет -тип архива не поддерживается, ос xubuntu
Кто пишет? С какими параметрами unzip вызывал?
чем открыть docx кроме монстров опенофис и либреофис?
Ещё MS Word’ом можно открыть, как ни странно.
Источник
How to open Microsoft Word documents in Linux
In an office or production environment, sharing documents between different applications and operating systems is a common issue. If you need to create, open, and edit Microsoft Word documents in Linux, you can use LibreOffice Writer or AbiWord. Both are robust word processing applications that read and write files in Word .doc and .docx formats.
If you need command-line tools that extract the text from Word files, Antiword (.doc files) and docx2txt (.docx) are useful programs to have at your disposal.
In this tutorial, we’ll look at these four applications and how you can use them. We’ll walk through installing them on several of the most popular Linux distributions, including Debian, Ubuntu, Fedora, OpenSUSE, CentOS, and Arch Linux. We’ll also help with installing the core Microsoft TrueType fonts on your Linux system.
LibreOffice
LibreOffice is a free, open-source, actively maintained and frequently updated office productivity suite that is compatible with Microsoft Office applications, including Microsoft Word. You can save your LibreOffice Writer documents in .doc or .docx format, and then either opens correctly in Microsoft Word.
Installing LibreOffice
LibreOffice can be installed using your package manager. To install it, open a terminal and use the following command appropriate for your operating system:
Debian 8, Ubuntu 15
Fedora 23
OpenSUSE 10
CentOS 7
Arch Linux 2016
Once LibreOffice is installed, it should appear in the Applications menu of your GUI. You can also run it from a terminal with the command:
AbiWord
AbiWord is another free and open-source word processor. It has a clean, simple interface developed for almost twenty years. Like LibreOffice, it can open, edit, and save Microsoft Word .doc and .docx files. Unlike LibreOffice, Abiword is not a complete office suite, so it has a smaller footprint and consumes fewer system resources.
Installing AbiWord
Debian 8, Ubuntu 15
Fedora 23
OpenSUSE 10
CentOS 7
Arch Linux 2016
Antiword
Antiword is a command-line tool that converts the contents of a .doc file to plain text.
Antiword only converts .doc files. If you need to convert a .docx file, see docx2txt in the next section.
Using Antiword
Running antiword with the name of a Word .doc file outputs the plain text of the file to standard output.
Antiword does a great job of formatting tables. It also has options for including images as PostScript objects and outputting to PDF.
You can redirect the output to a text file:
Or, if you want to open it directly in a text editor, you can pipe the text to vim:
Installing antiword
Debian 8, Ubuntu 15
Fedora 23
OpenSUSE 10
CentOS 7
Docx2txt
Docx2txt is a command-line tool that converts .docx files to plain text. (It does not convert .doc files.)
To print the contents of a .docx file to the terminal screen or a file, call docx2txt and specify a dash as the output file name. In this example, notice the dash at the end of the command.
To convert a .docx file and output to a text file, use the command form:
To open the .docx text in vim, use the command form:
To open it in nano:
To install doc2txt, follow the instructions for your version of Linux below:
Debian 8
Ubuntu 15
Fedora 23
Fedora’s repositories do not offer a package for docx2txt, but you can install it manually:
Download the source from SourceForge’s docx2txt page. Extract the archive:
You need to make sure that perl, unzip and make are installed on your system, so install or upgrade those packages now:
Then, run make as the root user to install:
Docx2txt is now installed as docx2txt.sh. For instance, to convert the file word-document.docx to a text file, you can run:
The converted text file automatically saves as word-document.txt.
OpenSUSE 10
SUSE repositories do not offer a package for docx2txt, but you can download it from SourceForge’s docx2txt page. Extract the archive:
You need to make sure that perl, unzip and make are installed on your system, so install or upgrade those packages now:
Then, run make as root to install:
Docx2txt is now installed as docx2txt.sh. For instance, to convert the file word-document.docx to a text file, you can run:
The converted text file is automatically saved as word-document.txt.
CentOS 7
CentOS repositories do not offer a package for docx2txt, but you can download it from SourceForge’s docx2txt page. Extract the archive:
You need to make sure that perl, unzip and make are installed on your system, so install or upgrade those packages now:
Then, run make as root to install:
Docx2txt is now installed as docx2txt.sh. For instance, to convert the file word-document.docx to a text file, you can run:
The converted text file is automatically saved as word-document.txt.
Arch Linux 2016
Installing Microsoft-compatible fonts
The core Microsoft fonts are available on Linux. Install them if you are going to be working with Microsoft Word files — especially if they were created on a Windows system. The core fonts include:
- Andale Mono
- Arial
- Arial Black
- Calabri
- Cambria
- Comic
- Courier
- Impact
- Times
- Trebuchet
- Verdana
- Webdings
To install them, follow these steps:
Debian 8, Ubuntu 15
Fedora 23
Install packages required for installation:
Then install the local RPM package:
OpenSUSE 10
Install packages required for installation:
Then install the local RPM package:
CentOS 7
Install packages required for installation:
Then install the local RPM package:
Arch Linux 2016
Install packages required for installation:
Extract the contents of the local RPM package:
This command extracts the raw contents of the RPM file and creates two directories, etc and usr that correspond to your /etc and /usr directories. The font files themselves are located in usr/share/fonts/msttcore.
Источник
Ищу просмотрщик MS Office файлов на Linux.
Посоветуйте какую-нибудь маленькую программку, которая просто открывает .docx, .ppt, .xls и т.п., без редактирования.
Пробовал офисные пакеты (WPS Office, OpenOffice), но они слишком громоздки для подобной задачи.
что значит громоздки? Ты можешь через них конвертировать скриптом в pdf и его уже смотреть.
Хм, это мысль. Но все равно напрямую открыть и сразу смотреть проще и быстрее, был бы просмотрщик.
Вроде то, что нужно. Сейчас попробую установить.
А офис онлайн не вариант? Можно ещё посмотреть teams от ms. Там вроде можно открыть файлы, но умеет ли он делать это без сети я не знаю.
catdoc(1), xls2csv(1), catppt(1).
docx2txt для docx ещё.
Если KDEфобии нету, то okular умеет, если библиотеки calligra или как там её присутствуют.
antiword лучшее что можно придумать для doc, в docx к сожалению не умеет.
Заливай на яндекс диск и смотри в браузере.
сразу смотреть проще и быстрее
напрямую открывать будет работать только для простых docx файлов, для больших и сложных лучше гонять конвертацию в pdf через либру. Бонусом идет — возможность гонять не только в pdf, но и в epub какой-нить.
word viewer под вайном
Не так давно узнал (на лоре), что ms его выпилила с сайта.
FreeOffice, на манжарке даже шёл из коробки.
Источник
Работа с текстовыми документами в Linux и аналог Word
Информация, приведенная в данной статье вряд-ли станет полезной для заядлых линуксоидов. Но для новичков, которые решили установить у себя операционную систему Linux и пощупать — что же она из себя представляет будет вполне полезной.
Давайте проанализируем — что нужно пользователю в первую очередь. Рядовому пользователю. Это просмотр фильмов, работа с документами, электронная почта и, в принципе, все. Здесь мы рассмотрим установку аналога Microsoft Word в Linux. Это всем известный проект LibreOffice.
Если назвать сейчас это название кому-то, возможно он и не поймет о чем идет речь. Этих людей, можно условно поделить на две части. Первая — часть, которая никогда не сталкивалась с Linux, открытым ПО и также никогда не пользовалась. Вторая часть — те, которые пользовались, но помнят, что аналогом Microsoft Word в линуксе является OpenOffice.
Стоит успокоить вторую группу людей — проект OpenOffice и LibreOffice можно считать единым целым . Конечно достаточно условно т.к. это два совершенно разных отдельных проекта с формальной точки зрения. Но фактически, разработчики, работавшие на старом проекте перешли на новый. Таким образом пользователи имеют возможность продолжать пользоваться привычным программным обеспечением, правда под видоизмененным (если брать их точку зрения) названием.
Процесс установки достаточно прост. Чтобы установить аналог Word-а — просто пройдите по ссылке в начале статьи. Там достаточно хорошо описан процесс установки.
Если говорить о сравнении «оригинала» и «аналога» то нужно сказать, что они мало чем отличаются до тех пор, пока не понадобятся специфические функции. К примеру, если рисовать графику, то вы часто можете встретить проблему с переносом файлов, в случае, если они предназначены для ворда и наоброт.
Если брать общий вывод об использовании LibreOffice — наверное проще всего сформулировать это в следующем: если вы хотите использовать данный пакет — используйте его на своем компьютере, для печати и для переноса на компьютер, который читает родной для этого офиса формат. Если же нужно профессионально использовать все возможности — тут уже каждый должен принять решение для себя. Портирование документов между системами — задача не очень простая и тут сложно давать какие-либо рекомендации. Поэтому используйте на свой страх и риск. Хотя, если вам не требуются какие-то специфически фичи — никаких проблем возникнуть не должно.
Жми Привет! Если статья полезна, поддержи меня и сайт, поделись ей
Источник
Как я разбирал docx с помощью XSLT
Задача обработки документов в формате docx, а также таблиц xlsx и презентаций pptx является весьма нетривиальной. В этой статье расскажу как научиться парсить, создавать и обрабатывать такие документы используя только XSLT и ZIP архиватор.
Зачем?
docx — самый популярный формат документов, поэтому задача отдавать информацию пользователю в этом формате всегда может возникнуть. Один из вариантов решения этой проблемы — использование готовой библиотеки, может не подходить по ряду причин:
- библиотеки может просто не существовать
- в проекте не нужен ещё один чёрный ящик
- ограничения библиотеки по платформам и т.п.
- проблемы с лицензированием
- скорость работы
Поэтому в этой статье будем использовать только самые базовые инструменты для работы с docx документом.
Структура docx
Для начала разоберёмся с тем, что собой представляет docx документ. docx это zip архив который физически содержит 2 типа файлов:
- xml файлы с расширениями xml и rels
- медиа файлы (изображения и т.п.)
А логически — 3 вида элементов:
- Типы (Content Types) — список типов медиа файлов (например png) встречающихся в документе и типов частей документов (например документ, верхний колонтитул).
- Части (Parts) — отдельные части документа, для нашего документа это document.xml, сюда входят как xml документы так и медиа файлы.
- Связи (Relationships) идентифицируют части документа для ссылок (например связь между разделом документа и колонтитулом), а также тут определены внешние части (например гиперссылки).
Они подробно описаны в стандарте ECMA-376: Office Open XML File Formats, основная часть которого — PDF документ на 5000 страниц, и ещё 2000 страниц бонусного контента.
Минимальный docx
Простейший docx после распаковки выглядит следующим образом
Давайте посмотрим из чего он состоит.
[Content_Types].xml
Находится в корне документа и перечисляет MIME типы содержимого документа:
_rels/.rels
Главный список связей документа. В данном случае определена всего одна связь — сопоставление с идентификатором rId1 и файлом word/document.xml — основным телом документа.
word/document.xml
- — сам документ
- — тело документа
- — параграф
- — run (фрагмент) текста
- — сам текст
- — описание страницы
Если открыть этот документ в текстовом редакторе, то увидим документ из одного слова Test .
word/_rels/document.xml.rels
Здесь содержится список связей части word/document.xml . Название файла связей создаётся из названия части документа к которой он относится и добавления к нему расширения rels . Папка с файлом связей называется _rels и находится на том же уровне, что и часть к которой он относится. Так как связей в word/document.xml никаких нет то и в файле пусто:
Даже если связей нет, этот файл должен существовать.
docx и Microsoft Word
docx созданный с помощью Microsoft Word, да в принципе и с помощью любого другого редактора имеет несколько дополнительных файлов.
Вот что в них содержится:
- docProps/core.xml — основные метаданные документа согласно Open Packaging Conventions и Dublin Core [1], [2].
- docProps/app.xml — общая информация о документе: количество страниц, слов, символов, название приложения в котором был создан документ и т.п.
- word/settings.xml — настройки относящиеся к текущему документу.
- word/styles.xml — стили применимые к документу. Отделяют данные от представления.
- word/webSettings.xml — настройки отображения HTML частей документа и настройки того, как конвертировать документ в HTML.
- word/fontTable.xml — список шрифтов используемых в документе.
- word/theme1.xml — тема (состоит из цветовой схемы, шрифтов и форматирования).
В сложных документах частей может быть гораздо больше.
Реверс-инжиниринг docx
Итак, первоначальная задача — узнать как какой-либо фрагмент документа хранится в xml, чтобы потом создавать (или парсить) подобные документы самостоятельно. Для этого нам понадобятся:
- Архиватор zip
- Библиотека для форматирования XML (Word выдаёт XML без отступов, одной строкой)
- Средство для просмотра diff между файлами, я буду использовать git и TortoiseGit
Инструменты
Также понадобятся скрипты для автоматического (раз)архивирования и форматирования XML.
Использование под Windows:
- unpack file dir — распаковывает документ file в папку dir и форматирует xml
- pack dir file — запаковывает папку dir в документ file
Использование под Linux аналогично, только ./unpack.sh вместо unpack , а pack становится ./pack.sh .
Использование
Поиск изменений происходит следующим образом:
- Создаём пустой docx файл в редакторе.
- Распаковываем его с помощью unpack в новую папку.
- Коммитим новую папку.
- Добавляем в файл из п. 1. изучаемый элемент (гиперссылку, таблицу и т.д.).
- Распаковываем изменённый файл в уже существующую папку.
- Изучаем diff, убирая ненужные изменения (перестановки связей, порядок пространств имён и т.п.).
- Запаковываем папку и проверяем что получившийся файл открывается.
- Коммитим изменённую папку.
Пример 1. Выделение текста жирным
Посмотрим на практике, как найти тег который определяет форматирование текста жирным шрифтом.
- Создаём документ bold.docx с обычным (не жирным) текстом Test.
- Распаковываем его: unpack bold.docx bold .
- Коммитим результат.
- Выделяем текст Test жирным.
- Распаковываем unpack bold.docx bold .
- Изначально diff выглядел следующим образом:
Рассмотрим его подробно:
docProps/app.xml
Изменение времени нам не нужно.
docProps/core.xml
Изменение версии документа и даты модификации нас также не интересует.
word/document.xml
Изменения в w:rsidR не интересны — это внутренняя информация для Microsoft Word. Ключевое изменение тут
в параграфе с Test. Видимо элемент и делает текст жирным. Оставляем это изменение и отменяем остальные.
word/settings.xml
Также не содержит ничего относящегося к жирному тексту. Отменяем.
7 Запаковываем папку с 1м изменением (добавлением ) и проверяем что документ открывается и показывает то, что ожидалось.
8 Коммитим изменение.
Пример 2. Нижний колонтитул
Теперь разберём пример посложнее — добавление нижнего колонтитула.
Вот первоначальный коммит. Добавляем нижний колонтитул с текстом 123 и распаковываем документ. Такой diff получается первоначально:
Сразу же исключаем изменения в docProps/app.xml и docProps/core.xml — там тоже самое, что и в первом примере.
[Content_Types].xml
footer явно выглядит как то, что нам нужно, но что делать с footnotes и endnotes? Являются ли они обязательными при добавлении нижнего колонтитула или их создали заодно? Ответить на этот вопрос не всегда просто, вот основные пути:
- Посмотреть, связаны ли изменения друг с другом
- Экспериментировать
- Ну а если совсем не понятно что происходит:
Идём пока что дальше.
word/_rels/document.xml.rels
Изначально diff выглядит вот так:
Видно, что часть изменений связана с тем, что Word изменил порядок связей, уберём их:
Опять появляются footer, footnotes, endnotes. Все они связаны с основным документом, перейдём к нему:
word/document.xml
Редкий случай когда есть только нужные изменения. Видна явная ссылка на footer из sectPr. А так как ссылок в документе на footnotes и endnotes нет, то можно предположить что они нам не понадобятся.
word/settings.xml
А вот и появились ссылки на footnotes, endnotes добавляющие их в документ.
word/styles.xml
Изменения в стилях нас интересуют только если мы ищем как поменять стиль. В данном случае это изменение можно убрать.
word/footer1.xml
Посмотрим теперь собственно на сам нижний колонтитул (часть пространств имён опущена для читабельности, но в документе они должны быть):
Тут виден текст 123. Единственное, что надо исправить — убрать ссылку на .
В результате анализа всех изменений делаем следующие предположения:
- footnotes и endnotes не нужны
- В [Content_Types].xml надо добавить footer
- В word/_rels/document.xml.rels надо добавить ссылку на footer
- В word/document.xml в тег надо добавить
Уменьшаем diff до этого набора изменений:
Затем запаковываем документ и открываем его.
Если всё сделано правильно, то документ откроется и в нём будет нижний колонтитул с текстом 123. А вот и итоговый коммит.
Таким образом процесс поиска изменений сводится к поиску минимального набора изменений, достаточного для достижения заданного результата.
Практика
Найдя интересующее нас изменение, логично перейти к следующему этапу, это может быть что-либо из:
- Создания docx
- Парсинг docx
- Преобразования docx
Тут нам потребуются знания XSLT и XPath.
Давайте напишем достаточно простое преобразование — замену или добавление нижнего колонтитула в существующий документ. Писать я буду на языке Caché ObjectScript, но даже если вы его не знаете — не беда. В основном будем вызовать XSLT и архиватор. Ничего более. Итак, приступим.
Алгоритм
Алгоритм выглядит следующим образом:
- Распаковываем документ.
- Добавляем наш нижний колонтитул.
- Прописываем ссылку на него в [Content_Types].xml и word/_rels/document.xml.rels .
- В word/document.xml в тег добавляем тег или заменяем в нём ссылку на наш нижний колонтитул.
- Запаковываем документ.
Распаковка
В Caché ObjectScript есть возможность выполнять команды ОС с помощью функции $zf(-1, oscommand). Вызовем unzip для распаковки документа с помощью обёртки над $zf(-1):
Создаём файл нижнего колонтитула
На вход поступает текст нижнего колонтитула, запишем его в файл in.xml:
В XSLT (файл — footer.xsl) будем создавать нижний колонтитул с текстом из тега xml (часть пространств имён опущена, вот полный список):
В результате получится файл нижнего колонтитула footer0.xml :
Добавляем ссылку на колонтитул в список связей основного документа
Сссылки с идентификатором rId0 как правило не существует. Впрочем можно использовать XPath для получения идентификатора которого точно не существует.
Добавляем ссылку на footer0.xml c идентификатором rId0 в word/_rels/document.xml.rels :
Прописываем ссылки в документе
Далее надо в каждый тег добавить тег или заменить в нём ссылку на наш нижний колонтитул. Оказалось, что у каждого тега может быть 3 тега — для первой страницы, четных страниц и всего остального:
Добавляем колонтитул в [Content_Types].xml
Добавляем в [Content_Types].xml информацию о том, что /word/footer0.xml имеет тип application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml :
В результате
Весь код опубликован. Работает он так:
- in.docx — исходный документ
- out.docx — выходящий документ
- TEST — текст, который добавляется в нижний колонтитул
Выводы
Используя только XSLT и ZIP можно успешно работать с документами docx, таблицами xlsx и презентациями pptx.
Источник