{{: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