Fix printer detection, implement portable deployment with SumatraPDF
- Fixed network printer enumeration (PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS) - Added printer name truncation to 20 chars with full name mapping - Implemented silent PDF printing using SumatraPDF with landscape orientation - Added auto-dismiss for success popup (3 seconds) - Bundled SumatraPDF inside executable for portable single-file deployment - Updated build script to embed SumatraPDF - Added setup_sumatra.ps1 for downloading SumatraPDF portable - Added DEPLOYMENT.md documentation
This commit is contained in:
@@ -47,13 +47,39 @@ if ($LASTEXITCODE -ne 0) {
|
||||
}
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "[4/5] Cleaning old build artifacts..." -ForegroundColor Cyan
|
||||
Write-Host "[4/6] Checking for SumatraPDF..." -ForegroundColor Cyan
|
||||
$sumatraPath = "SumatraPDF\SumatraPDF.exe"
|
||||
if (-not (Test-Path $sumatraPath)) {
|
||||
Write-Host ""
|
||||
Write-Host "WARNING: SumatraPDF not found!" -ForegroundColor Yellow
|
||||
Write-Host "SumatraPDF is required for silent PDF printing." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host "Run the setup script first:" -ForegroundColor Yellow
|
||||
Write-Host " powershell -ExecutionPolicy Bypass -File setup_sumatra.ps1" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
$response = Read-Host "Continue building without SumatraPDF? (y/n)"
|
||||
if ($response -ne "y") {
|
||||
Write-Host "Build cancelled."
|
||||
Read-Host "Press Enter to exit"
|
||||
exit 1
|
||||
}
|
||||
Write-Host ""
|
||||
Write-Host "Building without SumatraPDF (PDF printing will not work)..." -ForegroundColor Yellow
|
||||
$addBinaryArg = @()
|
||||
} else {
|
||||
Write-Host "Found: $sumatraPath" -ForegroundColor Green
|
||||
# Add SumatraPDF as bundled binary (will be embedded inside the exe)
|
||||
$addBinaryArg = @("--add-binary", "$sumatraPath;.")
|
||||
}
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "[5/6] Cleaning old build artifacts..." -ForegroundColor Cyan
|
||||
if (Test-Path "dist") { Remove-Item -Recurse -Force "dist" }
|
||||
if (Test-Path "build") { Remove-Item -Recurse -Force "build" }
|
||||
Remove-Item -Force "*.spec" -ErrorAction SilentlyContinue
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "[5/5] Building executable with PyInstaller..." -ForegroundColor Cyan
|
||||
Write-Host "[6/6] Building executable with PyInstaller..." -ForegroundColor Cyan
|
||||
Write-Host "This may take 5-15 minutes, please wait..."
|
||||
Write-Host ""
|
||||
|
||||
@@ -73,6 +99,11 @@ $pyinstallerArgs = @(
|
||||
"-y"
|
||||
)
|
||||
|
||||
# Add SumatraPDF binary if available (bundles inside the exe)
|
||||
if ($addBinaryArg) {
|
||||
$pyinstallerArgs += $addBinaryArg
|
||||
}
|
||||
|
||||
pyinstaller @pyinstallerArgs
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host ""
|
||||
|
||||
Reference in New Issue
Block a user