Skip to content

Str1bo/Ufaev_qa

Repository files navigation

Приложение для наложения печати на документы

Веб-приложение для наложения печати (водяных знаков) на PDF и Word документы с возможностью настройки позиции, прозрачности и других параметров.

Возможности

  • ✅ Загрузка PDF и Word документов
  • ✅ Загрузка печати в форматах JPG и PNG
  • ✅ Настройка прозрачности печати (10% - 100%)
  • ✅ Выбор позиции печати:
    • Пользовательские координаты X, Y
    • По центру документа
    • В углах (верхний/нижний, левый/правый)
  • ✅ Выбор страницы для наложения печати
  • ✅ Предварительный просмотр позиции
  • ✅ Drag & Drop загрузка файлов
  • ✅ Современный и отзывчивый интерфейс
  • ✅ Автоматическое скачивание результата в PDF

Установка

Требования

  • Node.js (версия 14 или выше)
  • npm или yarn

Шаги установки

  1. Клонируйте репозиторий или скачайте файлы проекта

  2. Установите зависимости:

npm install
  1. Запустите сервер:
npm start

Для разработки с автоматической перезагрузкой:

npm run dev
  1. Откройте браузер и перейдите по адресу:
http://localhost:3000

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

1. Загрузка файлов

  • Нажмите "Выбрать файл" в разделе "Загрузить документ" и выберите PDF или Word файл
  • Нажмите "Выбрать файл" в разделе "Загрузить печать" и выберите JPG или PNG изображение
  • Также поддерживается перетаскивание файлов (drag & drop)

2. Настройка параметров

После загрузки обоих файлов появится раздел настроек:

  • Позиция печати: Выберите предустановленную позицию или "Пользовательская" для ручной настройки
  • X координата: Позиция по горизонтали (в пикселях)
  • Y координата: Позиция по вертикали (в пикселях)
  • Прозрачность: Настройте прозрачность печати от 10% до 100%
  • Номер страницы: Укажите на какой странице разместить печать

3. Предварительный просмотр

В разделе "Предварительный просмотр" вы можете увидеть примерное расположение печати на документе.

4. Обработка

Нажмите кнопку "Обработать документ" для создания финального PDF с наложенной печатью.

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

├── server.js          # Основной сервер Express
├── package.json       # Зависимости и скрипты
├── public/            # Веб-интерфейс
│   ├── index.html     # Главная страница
│   ├── styles.css     # Стили
│   └── script.js      # JavaScript логика
├── uploads/           # Папка для загруженных файлов (создается автоматически)
├── temp/              # Временные файлы (создается автоматически)
└── README.md          # Документация

Технологии

Backend

  • Express.js - веб-сервер
  • Multer - обработка загрузки файлов
  • PDF-lib - работа с PDF документами
  • Sharp - обработка изображений
  • Mammoth - конвертация Word в PDF

Frontend

  • HTML5 - структура страницы
  • CSS3 - стили и анимации
  • JavaScript (ES6+) - интерактивность
  • Font Awesome - иконки

API Endpoints

POST /upload

Загрузка документов и печати

  • document - файл документа (PDF, DOC, DOCX)
  • stamp - файл печати (JPG, PNG)

POST /process

Обработка документа с наложением печати

  • documentPath - путь к документу
  • stampPath - путь к печати
  • x, y - координаты позиции
  • opacity - прозрачность (0.1 - 1.0)
  • mode - режим позиционирования
  • page - номер страницы

Ограничения

  • Максимальный размер файла: 10MB
  • Поддерживаемые форматы документов: PDF, DOC, DOCX
  • Поддерживаемые форматы печати: JPG, PNG
  • Результат всегда сохраняется в формате PDF

Безопасность

  • Валидация типов файлов
  • Ограничение размера файлов
  • Автоматическая очистка временных файлов
  • Безопасная обработка путей к файлам

Разработка

Для добавления новых функций:

  1. Установите nodemon для автоматической перезагрузки:
npm install -g nodemon
  1. Запустите в режиме разработки:
npm run dev

Лицензия

MIT License

Поддержка

При возникновении проблем создайте issue в репозитории проекта или обратитесь к разработчику.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors