Je souhaite convertir un dossier contenant des fichiers PDF en fichiers XPS à l'aide de Powershell. En raison des restrictions du système, je suis incapable de télécharger un logiciel tiers tel que iTextSharp pour faire ce travail.Imprimer PDF en XPS avec Powershell
J'ai pu obtenir Powershell pour ouvrir le document et ouvrir la fenêtre d'impression pour XPS, mais le nom est toujours vide. Est-il possible que le nouveau nom de fichier corresponde au nom de fichier d'origine?
De même, comment le processus peut-il être automatisé afin que l'entrée de l'utilisateur ne soit pas nécessaire (par exemple, entrer le nom du fichier ou appuyer sur imprimer)? Enfin, est-il possible de changer le répertoire dans lequel il imprime?
Get-ChildItem -path $pdf_filepath -recurse -include *.pdf | ForEach-Object {Start-Process -FilePath $_.fullname -Verb Print -PassThru | %{sleep 10;$_} }
La fonction print_files récupère les noms des fichiers dans le répertoire et stocke ces noms dans le dossier C: \ c pour une utilisation ultérieure. La fonction enter_my_names ouvre la fenêtre, rappelle le nom stocké dans C: \ c et imprime le fichier sous un nouveau nom. Le flux de travail appelle la fonction enter_my_names en parallèle afin de le rendre plus rapide. Enfin, print_files imprime les fichiers dans le répertoire désigné, puis supprime les informations inutiles de C: \ c. Est-ce que je l'ai décrit avec précision? Je rencontre des problèmes où les fichiers suivants tentent d'écraser parce que le nom ne change pas. – MrKGado
@MrKGado J'ai modifié le script. Maintenant c'est définitivement mieux. Il est également commenté afin que vous puissiez mieux comprendre chaque section. Il faut installer Adobe Reader, espérons que ce n'est pas un problème majeur. Passez une bonne journée –
C'est très utile, merci! Comment puis-je utiliser le Get-ChildItem pour collecter les noms de fichiers d'origine afin que les fichiers imprimés portent le même nom? J'ai essayé de modifier les lignes 6 et 8 avec les autres pièces de comptoir, mais j'ai fini par le casser à chaque fois. J'ai utilisé 'Get-ChildItem -Path $ mydir -Recurse -Name' pour rassembler les noms de fichiers, mais je n'ai pas réussi à trouver comment les lier au nom de sauvegarde d'impression. Des pensées? – MrKGado