Files
compress/internal/domain/entities/pdf.go
Dmitriy Fofanov ec65cfd05a Достижение: Добавлены скрипты и документация для релиза PDF Compressor.
- Добавлен release-body.md для подробных заметок о релизе на русском языке.
- Реализован release-gitea.ps1 для автоматизированного релиза Gitea с помощью PowerShell.
- Создан release-gitea.sh для автоматизированного релиза Gitea с помощью Bash.
- Добавлен release.sh для сборки и маркировки релизов с поддержкой нескольких платформ.
- Улучшен пользовательский интерфейс благодаря информативному логированию и обработке ошибок.
- Добавлена ​​поддержка переменных окружения и управления конфигурацией.
- Добавлена ​​функция создания архивов и загрузки ресурсов в Gitea.
2025-11-05 09:33:12 +03:00

38 lines
1021 B
Go

package entities
import (
"time"
)
// PDFDocument представляет PDF документ
type PDFDocument struct {
Path string
Size int64
ModifiedTime time.Time
Pages int
}
// CompressionResult представляет результат сжатия
type CompressionResult struct {
CurrentFile string
OriginalSize int64
CompressedSize int64
CompressionRatio float64
SavedSpace int64
Success bool
Error error
}
// CalculateCompressionRatio вычисляет коэффициент сжатия
func (cr *CompressionResult) CalculateCompressionRatio() {
if cr.OriginalSize > 0 {
cr.CompressionRatio = ((float64(cr.OriginalSize) - float64(cr.CompressedSize)) / float64(cr.OriginalSize)) * 100
cr.SavedSpace = cr.OriginalSize - cr.CompressedSize
}
}
// IsEffective проверяет, было ли сжатие эффективным
func (cr *CompressionResult) IsEffective() bool {
return cr.Success && cr.CompressionRatio > 0
}