1 votes

Enregistrer chaque fichier PDF d'un répertoire comme un autre PDF (opération similaire à l'impression d'un PDF comme un PDF)

Considérons la procédure suivante :

1) Ouvrez un fichier PDF en utilisant le visualiseur de documents (Ubuntu).

2) Aller au fichier

3) Aller à l'impression

4) Choisissez "Imprimer comme fichier" et cochez la case "pdf".

Oui, j'imprime un PDF en tant que fichier PDF. Je dois le faire pour une grande collection de fichiers. Je voudrais faire cela en exécutant un script au terminal.

Vous pensez peut-être que cette procédure n'a aucun sens, mais c'est en fait le seul moyen sûr que j'ai trouvé pour régler le problème. aquí . Cette question de StackOverflow montre un problème avec les fichiers PDF : le marqueur EOF n'est pas trouvé. En suivant la procédure décrite ci-dessus, je parviens à résoudre ce problème [Il ne s'agit pas de la solution présentée sur le site StackOverflow, qui ne fonctionne pas ici].

Je voudrais que cela se fasse automatiquement avec tous les dossiers qui présentent ce problème.

Je sais que je dois construire un script (.sh) pour cela, mais je ne sais pas comment procéder.

Un exemple de fichier PDF (1) présentant des problèmes est le suivant aquí

Le fichier PDF corrigé (2) est aquí

La seule différence entre eux est que j'ai ouvert le premier en utilisant le "Ubuntu Document Viewer", je suis allé dans "File", "Print", "Print to File", "Output=pdf".

Je veux que cela se fasse automatiquement.

EDIT :

Je ne veux PAS fusionner les fichiers.

2voto

Kurt Pfeifle Points 3525

Vous pouvez réaliser ce que vous voulez le plus facilement avec l'aide de Ghostscript. Je l'ai testé avec succès avec la version 9.26 de Ghostscript :

gs                  \
  -o out.pdf        \
  -sDEVICE=pdfwrite \
   in.pdf

Je dois admettre que je ne comprends pas vraiment votre problème avec le marqueur EOF dans le non modifié fichier d'exemple ici parce que je peux clairement voir que ce marqueur EOF y est présent.

Cependant, je constate un problème supplémentaire qui apparaît dans votre "corrigé fichier d'exemple ici ce fichier utilise maintenant un format de page A4 (595 x 842 pts) avec de grandes marges blanches, alors que votre fichier non modifié a de petites marges et un format de page de 362 x 558 pts (ce qui est moins de la moitié du A4 !).

Ma méthode a l'avantage de préserver la taille originale des pages.

Pour l'appliquer à tous les fichiers PDF du répertoire actuel, y compris tous les sous-répertoires, utilisez la commande suivante :

find . -name "*.pdf" -type f | while read line; do
    gs -o mod-${line} -sDEVICE=pdfwrite "${line}"
done

1voto

spacelander Points 412

Assurez-vous que vous avez cups-pdf installé et ajouté comme imprimante. Notez le nom de l'imprimante pdf. (Facultatif) Modifier /etc/cups/cups-pdf.conf : décommentez et changez la ligne où il est dit #Out /var/spool/cups-pdf/${USER} dans le répertoire de sortie souhaité.

Puis redémarrez CUPS : sudo systemctl restart cups

Maintenant, afin d'imprimer, faites :

SOURCEDIR="/path/to/source/pdfs"
for i in "$SOURCEDIR"
do
    lpr -P <pdf printer name> "$i"
done

Maintenant, copiez les fichiers du répertoire de sortie par défaut vers l'emplacement désiré, si vous n'avez pas édité cups-pdf.conf

Instale poppler-utils et exécuter pdfunite input1.pdf input2.pdf input3.pdf output.pdf .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X