https://github.com/terratensor/docx2txt
DOCX to TXT Converter — это утилита на Go для конвертации файлов DOCX в TXT или GZ.
https://github.com/terratensor/docx2txt
Last synced: 3 months ago
JSON representation
DOCX to TXT Converter — это утилита на Go для конвертации файлов DOCX в TXT или GZ.
- Host: GitHub
- URL: https://github.com/terratensor/docx2txt
- Owner: terratensor
- License: mit
- Created: 2025-02-15T20:21:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-16T21:51:35.000Z (about 1 year ago)
- Last Synced: 2025-03-03T08:55:05.457Z (about 1 year ago)
- Language: Go
- Size: 9.77 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DOCX to TXT Converter
[](https://goreportcard.com/report/github.com/terratensor/docx2txt)
[](https://opensource.org/licenses/MIT)
**DOCX to TXT Converter** — это утилита на Go для конвертации файлов DOCX в TXT или GZ. Программа поддерживает многопоточную обработку, упаковку в GZ с настраиваемым уровнем сжатия, логирование ошибок и сохранение проблемных файлов в отдельную папку.
---
## Установка
1. Убедитесь, что у вас установлен Go (версия 1.16 или выше).
2. Склонируйте репозиторий:
```bash
git clone https://github.com/terratensor/docx2txt.git
cd docx2txt
```
3. Установите зависимости:
```bash
go mod download
```
## Использование
### Основные параметры
- `-input`: Путь к папке с DOCX файлами (обязательный).
- `-output`: Путь к папке для сохранения TXT/GZ файлов (обязательный).
- `-goroutines`: Максимальное количество одновременно работающих горутин (по умолчанию равно количеству ядер CPU).
- `-compress`: Упаковывать ли выходные файлы в GZ (по умолчанию `false`).
- `-level`: Уровень сжатия GZIP (от 0 до 9, по умолчанию 6).
- `-errors`: Путь к папке для сохранения файлов с ошибками (по умолчанию `errors`).
## Примеры запуска
1. **Конвертация в TXT:**
```bash
go run main.go -input ./examples/input -output ./examples/output
```
2. **Конвертация в GZ с максимальным сжатием:**
```bash
go run main.go -input ./examples/input -output ./examples/output -compress -level 9
```
3. **Указание папки для ошибок:**
```bash
go run main.go -input ./examples/input -output ./examples/output -errors ./examples/errors
```
4. **Ограничение количества горутин:**
```bash
go run main.go -input ./examples/input -output ./examples/output -goroutines 4
```
## Логирование
Все ошибки записываются в файл `conversion_errors.log` в корне проекта. Пример лога:
```bash
ERROR: 2025/02/15 20:51:10 main.go:91: Ошибка при чтении из файла: XML syntax error on line 2: illegal character code U+000B
ERROR: 2025/02/15 20:51:10 main.go:98: Файл example.docx успешно скопирован в папку с ошибками: errors/example.docx
```
## Пример структуры папок
### Входная папка (input)
```bash
examples/input/
├── example1.docx
├── example2.docx
└── example3.docx
```
### Выходная папка (output)
```bash
examples/output/
├── example1.txt
├── example2.txt.gz
└── example3.txt
```
### Папка с ошибками (errors)
```bash
examples/errors/
└── example_error.docx
```
## Лицензия
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
## Как использовать проект
1. Склонируйте репозиторий:
```bash
git clone https://github.com/terratensor/docx2txt.git
cd docx2txt
```
2. Установите зависимости:
```bash
go mod download
```
3. Запустите программу:
```bash
go run main.go -input ./examples/input -output ./examples/output
```