- Move PDF border size to settings.py - Use standard A4 dimensions (210x297mm) - Fix aspect ratio preservation in layout function - Use img2pdf's built-in layout function with proper border specification
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
"""Configuration settings for the PDF Musical Score Cleaner."""
|
|
|
|
import os
|
|
import multiprocessing
|
|
from enum import IntEnum
|
|
|
|
class OptimizationLevel(IntEnum):
|
|
"""Optimization levels for image processing.
|
|
|
|
Levels:
|
|
1: Only trim whitespace
|
|
2: Trim + convert to 1-bit monochrome
|
|
3: All optimizations + optipng
|
|
"""
|
|
TRIM = 1 # Only trim whitespace
|
|
MONOCHROME = 2 # Trim + convert to 1-bit monochrome
|
|
FULL = 3 # All optimizations + optipng
|
|
|
|
# Number of parallel processes to use for operations that support parallelization
|
|
# Defaults to number of CPU cores - 1, but never less than 1
|
|
DEFAULT_PARALLEL_PROCESSES = max(1, multiprocessing.cpu_count() - 1)
|
|
|
|
# Can be overridden by environment variable
|
|
PARALLEL_PROCESSES = int(os.getenv('NOTES_CLEANER_PARALLEL_PROCESSES', DEFAULT_PARALLEL_PROCESSES))
|
|
|
|
# Border size in pixels for the final PDF output
|
|
PDF_BORDER_SIZE = 50
|
|
|
|
# Optimization settings
|
|
OPTIPNG_OPTIMIZATION_LEVEL = int(os.getenv('NOTES_CLEANER_OPTIPNG_LEVEL', '7')) # 0-7, higher = better compression but slower
|
|
TRIM_PADDING_PIXELS = int(os.getenv('NOTES_CLEANER_TRIM_PADDING', '20')) # Padding around content after trimming
|
|
|
|
# Image processing settings
|
|
MONOCHROME_THRESHOLD = int(os.getenv('NOTES_CLEANER_MONO_THRESHOLD', '200')) # 0-255, higher = more white
|
|
|
|
# Temporary directory settings
|
|
TEMP_DIR_PREFIX = 'notes_cleaner_'
|