{{:folder-yellow-parent-icon.png?nolink&24|}} [[info:windows_sommaire|Revenir au sommaire]]\\ ====== Script pour automatiser des captures d'écran et les enregistrer en JPEG ====== Ce script PowerShell permet d'automatiser des captures d'écran à partir d'un fichier PDF affiché dans Firefox (format portrait basculé vers la gauche au format paysage), d'enregistrer la capture vers un fichier au format JPEG puis de passer à la page suivante. [CmdletBinding()] Param( [Parameter(Mandatory=$True)] [Int32] $NumberOfPages ) Add-Type -AssemblyName System.Drawing Add-Type -AssemblyName System.Windows.Forms [String] $repertoire = (Get-Item -Path ".\").FullName [Int32] $origineX = 210 [Int32] $origineY = 128 [Int32] $largeurCapture = 1245 [Int32] $hauteurCapture = 880 [Boolean] $premierePage = $True Clear-Host $wShell = New-Object -ComObject wscript.shell $wShell.AppActivate("Firefox") | Out-Null $dateDebut = (Get-Date) for ($i=1; $i -le $NumberOfPages; $i++) { [String] $nomFichier = "Capture_" $nomFichier += Get-Date -Format "yyyy-MM-dd_HH-mm-ss-fff" $nomFichier += ".jpg" [String] $cheminComplet = (Join-Path $repertoire $nomFichier) $dimensionsImage = New-Object System.Drawing.Size($largeurCapture, $hauteurCapture) $pointDepart = New-Object System.Drawing.Point($origineX, $origineY) $captureEcran = New-Object System.Drawing.Bitmap($largeurCapture, $hauteurCapture) $objetGraphique = [System.Drawing.Graphics]::FromImage($captureEcran) $objetGraphique.PageUnit = [System.Drawing.GraphicsUnit]::Pixel $objetGraphique.CopyFromScreen($pointDepart, [System.Drawing.Point]::Empty, $dimensionsImage) $rectanglePremierePage = New-Object System.Drawing.Rectangle 830, 50, 110, 470 $rectangleToutesPages = New-Object System.Drawing.Rectangle 0, 530, 40, 350 $pinceauRectangle = New-Object System.Drawing.SolidBrush([System.Drawing.Color]::FromArgb(255, 255, 255, 255)) if ($premierePage -eq $True) { $objetGraphique.FillRectangle($pinceauRectangle, $rectanglePremierePage) $premierePage = $False } $objetGraphique.FillRectangle($pinceauRectangle, $rectangleToutesPages) $objetGraphique.Dispose() $captureEcran.RotateFlip("Rotate90FlipNone") $captureEcran.Save($cheminComplet, [System.Drawing.Imaging.ImageFormat]::Jpeg) $captureEcran.Dispose() Write-Host ("Capture " + $i + " sur " + $NumberOfPages + " effectuée") $wShell.AppActivate("Firefox") | Out-Null Start-Sleep -Milliseconds 100 $wShell.SendKeys("{RIGHT}") Start-Sleep -Milliseconds 300 } Les fichiers JPEG sont enregistrés dans le répertoire du script. [String] $repertoire = (Get-Item -Path ".\").FullName Les lignes suivantes permettent de définir l'origine et les dimensions de la capture d'écran. La coordonnée (0,0) est en haut à gauche. L'axe X est horizontal et orienté vers la droite et l'axe Y est vertical et orienté vers le bas. [Int32] $origineX = 210 [Int32] $origineY = 128 [Int32] $largeurCapture = 1245 [Int32] $hauteurCapture = 880