# Download and Setup SumatraPDF Portable for Label Printer # This script downloads SumatraPDF portable and sets up the deployment structure Write-Host "" Write-Host "========================================================" Write-Host " Label Printer - SumatraPDF Setup" Write-Host "========================================================" Write-Host "" # Create SumatraPDF folder if it doesn't exist $sumatraFolder = "SumatraPDF" if (-not (Test-Path $sumatraFolder)) { New-Item -ItemType Directory -Path $sumatraFolder -Force | Out-Null } # Check if SumatraPDF.exe already exists $sumatraExe = Join-Path $sumatraFolder "SumatraPDF.exe" if (Test-Path $sumatraExe) { Write-Host "[OK] SumatraPDF.exe already exists at: $sumatraExe" -ForegroundColor Green Write-Host "" Read-Host "Press Enter to exit" exit 0 } Write-Host "[1/3] Downloading SumatraPDF portable (64-bit, ~5 MB)..." -ForegroundColor Cyan # SumatraPDF download URL (latest stable version) $url = "https://www.sumatrapdfreader.org/dl/rel/3.5.2/SumatraPDF-3.5.2-64.zip" $zipFile = "SumatraPDF-temp.zip" try { # Download with progress $progressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri $url -OutFile $zipFile -ErrorAction Stop Write-Host "[OK] Download complete" -ForegroundColor Green } catch { Write-Host "[ERROR] Failed to download SumatraPDF" -ForegroundColor Red Write-Host "Error: $_" -ForegroundColor Red Write-Host "" Write-Host "Please download manually from:" -ForegroundColor Yellow Write-Host " https://www.sumatrapdfreader.org/download-free-pdf-viewer" -ForegroundColor Yellow Write-Host " Extract SumatraPDF.exe to the 'SumatraPDF' folder" -ForegroundColor Yellow Write-Host "" Read-Host "Press Enter to exit" exit 1 } Write-Host "" Write-Host "[2/3] Extracting..." -ForegroundColor Cyan try { # Extract ZIP file Add-Type -AssemblyName System.IO.Compression.FileSystem [System.IO.Compression.ZipFile]::ExtractToDirectory($zipFile, $sumatraFolder) Write-Host "[OK] Extraction complete" -ForegroundColor Green } catch { Write-Host "[ERROR] Failed to extract ZIP file" -ForegroundColor Red Write-Host "Error: $_" -ForegroundColor Red Read-Host "Press Enter to exit" exit 1 } Write-Host "" Write-Host "[3/3] Cleaning up..." -ForegroundColor Cyan # Remove temporary ZIP file if (Test-Path $zipFile) { Remove-Item $zipFile -Force } Write-Host "[OK] Cleanup complete" -ForegroundColor Green Write-Host "" # Verify installation if (Test-Path $sumatraExe) { Write-Host "========================================================" Write-Host " SETUP SUCCESSFUL!" -ForegroundColor Green Write-Host "========================================================" Write-Host "" Write-Host "SumatraPDF portable is now installed at:" -ForegroundColor Green Write-Host " $sumatraExe" -ForegroundColor Green Write-Host "" Write-Host "The Label Printer app will now be able to print PDFs silently." -ForegroundColor Green Write-Host "" } else { Write-Host "========================================================" Write-Host " SETUP INCOMPLETE" -ForegroundColor Yellow Write-Host "========================================================" Write-Host "" Write-Host "Could not find SumatraPDF.exe after extraction." -ForegroundColor Yellow Write-Host "Please check the SumatraPDF folder and ensure SumatraPDF.exe is present." -ForegroundColor Yellow Write-Host "" } Read-Host "Press Enter to exit"