Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2812 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch pour print massif

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Batch pour print massif

n°2385981
legnano
Posté le 22-05-2021 à 22:04:48  profilanswer
 

Bonjour
J'ai une liste de 5000 documents, avec leur chemin complet, répartis dans une multitude de dossiers, et j'aimerais imprimer chacun de ces documents (imprimer en PDF).
je pensais faire un .bat avec la commande PRINT.
 
PRINT [/D:device] [[drive:][path]filename[...]]
 
Mais j'ai du mal à maitriser cette commande.
Déjà j'ai eu du mal a trouver le non de l'imprimante, mais je pense que j'ai trouvé
En tapant 2 fois de suite la même commande, 1 fois ça marche, la seconde fois erreur "Impossible d’initialiser le périphérique" ...
j'ai réussi à projeter mon PDF au bon endroit, en mettant le chemin de projection après "/D:" , a la place du nom de l'imprimante... c'est génial, je savais pas qu'on pouvait faire ça, mais j'arrive plus a le refaire  :??:  
 
Vous sauriez m'expliquer comment ça marche? Je précise (si ça ne se voit pas dans ma question) que je suis ABSOLUMENT débutant en programmation. Faites comme si j'avais 5 ans pour m'expliquer  :)

mood
Publicité
Posté le 22-05-2021 à 22:04:48  profilanswer
 

n°2385998
kyurakushu​nsui
Posté le 23-05-2021 à 09:04:16  profilanswer
 

Bonjour,
Quelque chose n'est pas clair pour moi, vous avez 5000 fichiers .txt à convertir en fichiers .pdf, c'est bien ça ?

n°2386028
legnano
Posté le 23-05-2021 à 18:16:08  profilanswer
 

Non, j'ai un fichier texte qui liste 5000 fichiers PDF (parmi plusieurs dizaines de milliers) que je souhaite envoyer vers une imprimante. Aussi étrange que cela puisse paraitre, c'est vers "print to PDF" que je dois les envoyer.

n°2386047
kyurakushu​nsui
Posté le 24-05-2021 à 01:12:13  profilanswer
 

"print to PDF" est une imprimante virtuelle, elle va simplement convertir vos .txt en .pdf
 
Quant à la commande PRINT, elle permet d'imprimer uniquement des fichiers texte, pas des fichiers PDF ni Word ni Excel.
 
Il va falloir trouver une autre technique, par exemple GhostScript.


Message édité par kyurakushunsui le 24-05-2021 à 01:46:02
n°2386048
kyurakushu​nsui
Posté le 24-05-2021 à 04:49:41  profilanswer
 

Vous pouvez télécharger GhostScript ici : https://www.ghostscript.com/download/gsdnld.html
 
Une fois l'installation effectuée, vous pouvez utiliser ce script .bat que je viens de créer :
 

Code :
  1. @echo off
  2. mode con cols=180 lines=35
  3. setlocal enableextensions enabledelayedexpansion
  4. ver | find "10.0." >nul && chcp 65001 >nul || chcp 28591 >nul
  5. color 0F
  6. if "%~1"=="" (exit /b 1)
  7. if not "%~x1"==".txt" (exit /b 1)
  8. for /f "delims=" %%A in ('2^>nul dir /b /ad "%ProgramFiles%\gs"') do set "ghostscript=%ProgramFiles%\gs\%%~A"
  9. for /f "delims=" %%A in ('2^>nul dir /b /ad "%ProgramFiles(x86)%\gs"') do set "ghostscript=%ProgramFiles(x86)%\gs\%%~A"
  10. if defined ghostscript (set "PATH=%ghostscript%\bin;%ghostscript%\lib;%PATH%" ) else (exit /b 1)
  11. if exist "%ghostscript%\bin\gswin32c.exe" (set binaire=gswin32c.exe)
  12. if exist "%ghostscript%\bin\gswin64c.exe" (set binaire=gswin64c.exe)
  13. set index=0
  14. for /f "skip=1 tokens=2,3 delims=," %%A in ('wmic printer get Name^,PortName^,PrinterStatus /format:csv ^| findstr /r "^[A-Za-z0-9]" ^| findstr /i /v "Microsoft Fax Onenote"') do (
  15. set /a index+=1
  16. set "printer[!index!]=%%A"
  17. set "port[!index!]=%%B"
  18. )
  19. :imprimante
  20. for /L %%G in (1,1,!index!) do echo. & echo.##### [%%G] !printer[%%G]! ("!port[%%G]!" )
  21. echo. & set "choix="
  22. set /p choix="Veuillez sélectionner une imprimante : "
  23. if not defined choix (cls & goto :imprimante)
  24. if not defined printer[%choix%] (cls & goto :imprimante)
  25. echo. & echo Vous avez choisi : !printer[%choix%]!
  26. echo. & echo.
  27. if defined binaire (%binaire% -dPrinted -sDEVICE=mswinpr2 -sPAPERSIZE=a4 -dFIXEDMEDIA -dBATCH -dNOPAUSE -sOutputFile="%%printer%%!printer[%choix%]!" @"%~1" )
  28. exit


 
Un double clic pour lancer le script ne fonctionnera pas.
 
Pour pouvoir utiliser le script, il faut effectuer un glisser-déposer du fichier texte (contenant la liste des PDF) sur l'icône du fichier .bat
 
Le script a été testé (et approuvé) sur Windows 10 Pro 64 bits auquel est reliée une imprimante "Brother MFC-L2710DW"
Le test a été effectué avec l'imprimante connectée via le port USB et également via la liaison sans fil.


Message édité par kyurakushunsui le 24-05-2021 à 16:11:58
n°2386463
legnano
Posté le 27-05-2021 à 21:24:44  profilanswer
 

Bonjour,
Merci pour vos contributions, en particulier kyurakushunsui.
Je n'ai finalement pas utilisé votre scripte, car idéalement, je ne souhaitais pas avoir à installer quoi que ce soit. sur ma machine.
J'ai fait plusieurs essais avant de comprendre comment fonctionnait la commande print avec une imprimante PDF.
Je rappel que le but est de copier des fichiers PDF sans passer par la commande copy ou robocopy.
 
je vous livre ci dessous ma procédure :
 
Lancer un print d'initialisation d'un "fichier bidon.pdf"
print /D:"MICROSOFT Print to PDF" "chemin du fichier bidon"
Un fichier "MICROSOFT Print to PDF" sera créé dans le repertoir actif de cmd. Il n'a pas d'extension, mais si on ajoute .PDF au nom du fichier, on peut ouvrir le "MICROSOFT Print to PDF.PDF" qui sera la copie exacte de "fichier bidon.PDF"
lancer les autres impressions avec le chemin de projection  
print /D:"chemin du fichier projeté" "chemin du fichier à imprimer"
 
ATTENTION : si le fichier projeté existe déjà, message d'erreur "impossible d'initialiser le périphérique "chemin du fichier projeté"
 

n°2386487
kyurakushu​nsui
Posté le 28-05-2021 à 11:47:26  profilanswer
 

Merci d'avoir enfin précisé le but de la manoeuvre : faire une copie de fichiers pdf sans utiliser les commandes copy et robocopy.
 
Car le titre du sujet n'a rien à voir avec une quelconque copie, il s'agit d'imprimer massivement.


Message édité par kyurakushunsui le 28-05-2021 à 12:03:18

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch pour print massif

 

Sujets relatifs
Batch fichier host[Batch] Ajout date création au nom lors d'une copie
Comment tester une liste d'URLs en batch ou PS avec log ?Aide Batch copy + rename (plusieurs dossiers a traiter en même temps)
Batch dont la modification ne fonctionne que si je copie le fichierfichier batch pour relier des fichiers videos
Batch windows avec accentScript Batch
[Batch][W10] Sortie std ne fonctionne pas sous task schedfpt et batch
Plus de sujets relatifs à : Batch pour print massif


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR