Skip to content

Latest commit

 

History

History
140 lines (102 loc) · 6.9 KB

File metadata and controls

140 lines (102 loc) · 6.9 KB

MarkPDFdown

English | 中文 | 日本語 | Русский | العربية | فارسی

Настольное приложение для конвертации PDF-документов в формат Markdown с использованием визуального распознавания на основе больших языковых моделей (LLM).

Возможности

  • Поддержка нескольких LLM: OpenAI, Anthropic Claude, Google Gemini, Ollama (локальные модели) и OpenAI Responses API
  • Высококачественная конвертация: Использование возможностей компьютерного зрения LLM для точного преобразования PDF в Markdown
  • Параллельный просмотр: Просмотр оригинальных страниц PDF рядом с сгенерированным Markdown
  • Поддержка формул и кода: Полная поддержка LaTeX-уравнений (KaTeX) и блоков кода с подсветкой синтаксиса
  • Многоязычный интерфейс: Английский, китайский, японский, русский, арабский и персидский
  • Параллельная обработка: Настраиваемое количество рабочих процессов для ускорения конвертации
  • Отслеживание прогресса: Обновление статуса в реальном времени и поддержка повторной обработки отдельных страниц
  • Локальное хранилище: База данных SQLite для сохранения задач

Скриншоты

1769311168213_download

Установка

Быстрый старт (рекомендуется)

Запуск напрямую через npx (требуется Node.js 18+):

npx -y markpdfdown

Скачать установщик

Скачайте последнюю версию для вашей платформы со страницы Releases:

  • Windows: MarkPDFdown-{version}-x64.exe
  • macOS: MarkPDFdown-{version}-arm64.dmg / MarkPDFdown-{version}-x64.dmg
  • Linux: MarkPDFdown-{version}-x86_64.AppImage

Использование

  1. Настройка провайдера: Перейдите в Настройки и добавьте учётные данные LLM-провайдера (API-ключ, базовый URL)
  2. Добавление модели: Настройте модель, которую хотите использовать для конвертации
  3. Загрузка PDF: Перетащите или нажмите для выбора PDF-файла
  4. Выбор модели: Выберите LLM-модель для конвертации
  5. Конвертация: Запустите процесс конвертации
  6. Просмотр: Просматривайте результаты постранично с параллельным сравнением
  7. Скачивание: Экспортируйте объединённый Markdown-файл

Разработка

Требования

  • Node.js 18+
  • npm 8+

Настройка

# Установка зависимостей
npm install

# Генерация Prisma-клиента
npm run generate

# Запуск миграций базы данных
npm run migrate:dev

# Запуск сервера разработки
npm run dev

Сборка

# Продакшн-сборка
npm run build

# Установщики для конкретных платформ
npm run build:win    # Windows NSIS установщик
npm run build:mac    # macOS DMG
npm run build:linux  # Linux AppImage

Тестирование

npm test              # Запуск всех тестов
npm run test:unit     # Только юнит-тесты
npm run test:renderer # Только тесты компонентов
npm run test:coverage # Генерация отчёта о покрытии

Структура проекта

src/
├── main/                 # Главный процесс Electron
   ├── index.ts         # Точка входа, создание окна, настройка IPC
   └── ipc/             # Обработчики IPC
├── preload/             # Preload-скрипты (window.api)
├── renderer/            # React-фронтенд
   ├── components/      # UI-компоненты
   ├── pages/           # Страницы маршрутов
   └── locales/         # i18n-переводы
├── core/                # Бизнес-логика (Чистая архитектура)
   ├── infrastructure/  # База данных, внешние сервисы
   ├── application/     # Воркеры, оркестрация
   ├── domain/          # Интерфейсы, доменные типы
   └── shared/          # Шина событий, утилиты
└── shared/              # Общие типы между main/renderer

Технологический стек

  • Фреймворк: Electron 35 + React 18 + TypeScript
  • Инструмент сборки: Vite 6
  • UI: Ant Design 5
  • База данных: Prisma ORM + SQLite
  • Обработка PDF: pdf-lib, pdf-to-png-converter, Sharp
  • Markdown: react-markdown, remark-gfm, remark-math, rehype-katex, rehype-prism-plus
  • Тестирование: Vitest + Testing Library

Поддерживаемые LLM-провайдеры

Провайдер Модели Примечания
OpenAI GPT-4o, GPT-4-turbo и др. Требуется API-ключ
Anthropic Claude 3.5, Claude 3 и др. Требуется API-ключ
Google Gemini Gemini Pro, Gemini Flash и др. Требуется API-ключ
Ollama LLaVA, Llama 3.2 Vision и др. Локально, без API-ключа
OpenAI Responses Любая OpenAI-совместимая модель Поддержка пользовательских эндпоинтов

Лицензия

Apache-2.0

Участие в разработке

Приветствуются вклады в проект! Пожалуйста, прочитайте файл AGENTS.md для ознакомления с руководством по разработке.