Bonjour a tous,

je rencontre un problème avec des pdf générés par un logiciel et qui sont mal formatés.
j'aimerais donc pouvoir générer des pdf correctement formatés à partir de ces mauvais pdf ce que j'arrive très bien à faire manuellement en ouvrant le pdf et en l'enregistrant de nouveau depuis acrobat reader mais qui est ébarbatif vu la quantité de pdf généré chaque jour.

j'aimerais donc faire un tache planifié qui va scanner un répertoire contenant les pdf mal formatés et les imprimer un par un en pdf dans un autre répertoire pour qu'ils soient correctement formatés.

Pour cela j'ai pensé à PowerShell et j'ai donc commencé à creer un bout de script pour réaliser cette tache.

Mon script est loin d'être propre est fini, mais j'arrive déja à faire le principal et scanner mon répertoire et imprimer dans un autre. Le problème c'est qu'actuellement j'imprime un fichier vide et je ne sais pas trop comment faire pour imprimer mon pdf.

SI une ou plusieurs persones pouvaient m'aider à résoudre ce problème, cela serait bien urbain de votre part.


voici le bout de code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

$MonFolder = Get-ChildItem -Path $varCheminRepertoireScript -File #On récupère la liste des fichiers de ce répertoire
$scanlogdir="C:\Users\212392697\Documents\Cardio\Fichier MAC 7 et MAC 5\testconvert\Log"
# Create a Log file $scanlogname
$scanlogname = Join-Path -Path $scanlogdir -ChildPath "$(Get-Date -Format 'MM-dd-yyyy').log"

foreach ($MyFile in $MonFolder)
{

	# Get the List of files in the Directory
	echo "$(get-date) - Checking for any scanned pdf files in $scandir" | Out-File -Append $MyFile.name
	Add-Type -AssemblyName System.Drawing
	$doc = New-Object System.Drawing.Printing.PrintDocument
	$doc.DocumentName = $MyFile.name
	$doc.PrinterSettings = new-Object System.Drawing.Printing.PrinterSettings
	$doc.PrinterSettings.PrinterName = 'Microsoft Print to PDF'
	$doc.PrinterSettings.PrintToFile = $true
	$file=[io.fileinfo]$MyFile.name
	#echo "$(get-date) - Checking for any scanned pdf files in $scandir" | Out-File -Append [io.path]::Combine($file.DirectoryName, $file.BaseName) + 'converti.pdf'
	$pdf= [io.path]::Combine($file.DirectoryName, $file.BaseName) + 'converti.pdf'
	Write-Host."$file.DirectoryName"
	Write-Host."$file.BaseName"
	Write-Host "$pdf"
	$doc.PrinterSettings.PrintFileName = $pdf
	$doc.Print()
	$doc.Dispose()
}

D'avance merci pour votre aide.

Dubidon