Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/01/2010, à 23:01

Syndrome_de_Z

Script former pdf de: toutes les 1ere page d'une collection de pdf ?

Bonjour,
j'ai une  collection de fichiers pdf (centaines de fichiers) dans un dossier.
Je voudrai pouvoir me faire un genre d'index de tous ces fichiers, constitué  de  l'association de toutes les premières pages de mes fichiers pdf du dossier en question, en formant un unique document pdf façon "Survol résumé".

Y-a un façon de faire ça de façon automatisée ?

Cerises sur gâteau possible ?

Ça serait bien aussi si le nom de fichier apparaissait associé à chaque première page correspondante;

A défaut, ça me rendrait service d'avoir une première page du document pdf, constitué de tous les titres en ordre alphabétique par exemple, et avoir ensuite une numérotation de page (du document de toutes les pages de garde), de façon à ce que je puisse retrouver vite qui correspond à quoi sur le document papier. Variante: avoir des liens entre titre fichier et page de garde correspondante, de façon que en cliquant sur l'un, je retrouve l'autre, et/ou vice-versa?

merci par avance!

Hors ligne

#2 Le 06/01/2010, à 21:23

Goda

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

Salut

Je t'ai vite fait écris ça :

#! /bin/bash

LISTE=`ls *.pdf`

mkdir index
ls -1 *.pdf > ./index/liste.txt

for pdf in $LISTE
    do
		convert -quality 80 $pdf[0] ./index/$pdf.jpg
	done
	
	cd index
	
LISTEJPG=`ls *.jpg`

read -p "Nom du fichier de sortie ?  : " NOM

convert -quality 80 -adjoin $LISTEJPG $NOM.pdf
rm *.jpg

edit: oups ! y'avais une coquille dans mon script...

C'est loin de faire ce que tu demande (qui est assez pointu et trop compliqué pour moi et mes faibles connaissances de bash) mais c'est un début.
Lance le script dans le dossier contenant tous tes pdf et il te crée un dossier "index" contenant un pdf contenant la première page de chaque pdf de ton dossier et une liste de tes fichiers.

Il est possible que ça ne fonctionne pas pour certains pdf (protégés, versions differentes (1.6 ou autres))...a voir

A plus

Dernière modification par Goda (Le 07/01/2010, à 11:17)


" Read The F$$$$$ Manual "      --->  man man

Pensez à passer en RÉSOLU...(en éditant le titre du 1er message)

Hors ligne

#3 Le 06/01/2010, à 23:23

od

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

Hors ligne

#4 Le 07/01/2010, à 11:13

Goda

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

Oui j'ai vu ça, mais au premier abord ça à pas l'air trés pratique pour traiter de gros volumes de fichiers...(à cause de la syntaxe utilisée)


" Read The F$$$$$ Manual "      --->  man man

Pensez à passer en RÉSOLU...(en éditant le titre du 1er message)

Hors ligne

#5 Le 10/01/2010, à 18:02

Syndrome_de_Z

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

Bonjour Od et Goda,

J'ai fait tourner la solution proposée par Goda;
c'est sur la bonne voie, mais... la résolution obtenue est très médiocre (à cause du passage pdf > jpg) , même en mettant un paramètre "qualité 100" (le max). J'ai des pdf avec des fonts de petites taille, du coup, j'ai du mal à lire, quand c'est passé à la moulinette jpg.

Du coup, j'ai cherché à adapter en utilisant l'outil pdftk (suggéré par Od), en utilisant la structure du script proposé par Goda.

C'est presque ça, pdftk permet d'extraire une page d'un document pdf, et la concaténer avec celle d'un autre pdf. La résolution est excellente (pas de dégradation du tout).

La cerise est aussi la présence de l'outil 'stamp' de pdftk, qui permet de superposer un document pdf "stamp", avec un autre. Ça me parait être une façon de faire apparaitre les titres de document, placé en haut de chaque 1ere page de pdf correspondante.

Mes soucis:

je suis grand débutant en script.
Y-a-t-il un moyen (avec Oo par exemple ?), de scripter la formation d'un pdf (avec marges trafiquées de façon à ce que le texte soit tout en haut à gauche), pdf contenant une seule page et une seule ligne de texte passée en argument par le script ? Ça me permettrait de former des "stamp.pdf" contenant le nom de fichier, à superposer avec la page du document correspondant.
Je ne sais pas faire. de l'aide ?

autres soucis,
comment (en script):

- concaténer deux contenus de variable (alphanum) pour en faire une autre variable?
(du genre coucou_ + je_suis_la = coucou_je_suis_la)

- afficher (pour déboguer) le contenu d'une variable (par exemple dans le script de Goda, le contenu de LIST, ou $pdf ?

- faire un trap d'erreur (on error, do ...)

- gérer les noms de fichier avec des blancs ?

- enfin, je nage un peu avec les chemins; De guerre lasse, j'ai mis partout des chemins absolus (/home/user, etc...) . Y-a-t-il un moyen "user-friendly" de demander une localisation de dossier via un outil graphique, qui serait invoqué par le script , et qui passerait en argument de retour, le chemin du dossier sélectionné ?

Hors ligne

#6 Le 10/01/2010, à 19:18

toitoinebzh

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

salut

tu connais le logiciel calibre , je pense qu'il te plairait

Hors ligne

#7 Le 10/01/2010, à 19:51

Syndrome_de_Z

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

/suite: là ou j'en suis avec le script /

#! /bin/bash

#version script test.

# *********************************************************************
#  Pour les pdf contenus dans home/MaPomme/Documents/Dossier_a_pdf/

# je veux extraire les premières pages, et les placer dans un document « combo », pdf lui aussi, 
# comprenant une page de garde (qui va plus tard être l'index dans la version finale), et la suite 
# des premières pages des pdf contenus dans le dossier «  Dossier_a_pdf »
# pas encore en place : je veux que sur chaque page du document « combo », apparaisse
# le nom du document dont on a la première page.
# pour l'instant, je n'y suis pas, j'ai simplement mis un nom fixe (stocké dans
# « /home/MaPomme/Documents/Dossier_a_stamp/stamp.pdf  »

# Je démarre le script en ayant avant placé:
# page « stamp » test mise dans   /home/MaPomme/Documents//Dossier_a_stamp/stamp.pdf 
# page de garde test mise dans   /home/MaPomme/Documents//Dossier_a_stamp/PageGarde.pdf 
# le dossier home/MaPomme/Documents/Dossier_a_pdf/
 contient les pdf à traiter

# le script crée le document « combo » placé dans home/MaPomme/Documents/Dossier_a_pdf/Combo.pdf
# *******************************************************************

cd /home/MaPomme/Documents/Dossier_a_pdf/

LISTE=`ls *.pdf`



ls -1 /home/MaPomme/Documents/Dossier_a_pdf/*.pdf > /home/MaPomme/Documents/Dossier_a_pdf/liste.txt

# pour l'index futur (pas encore fait)


cp  /home/MaPomme/Documents//Dossier_a_stamp/stamp.pdf  /home/MaPomme/Documents/Dossier_a_pdf/stamp.pdf

#je ne voulais pas que ce fichier stamp.pdf soit pris en compte dans LISTE

# crée 1ere page du document combo:
pdftk A= /home/MaPomme/Documents//Dossier_a_stamp/PageGarde.pdf  cat A1 output  /home/MaPomme/Documents/Dossier_a_pdf/Combo.pdf


#boucle traitement:
for pdf in /home/MaPomme/Documents/Dossier_a_pdf/$LISTE


    do

         pdftk $pdf stamp /home/MaPomme/Documents/Dossier_a_stamp/stamp.pdf output /home/MaPomme/Documents/Dossier_a_pdf/stamped.pdf

         pdftk A=/home/MaPomme/Documents/Dossier_a_pdf/Combo.pdf B=/home/MaPomme/Documents/Dossier_a_pdf/stamped.pdf cat A B1 output /home/MaPomme/Documents/Dossier_a_pdf/Temporaire.pdf

# (ci-dessus, pdftk n'arrive pas à écrire dans le fichier qu'il prend en argument source; j'utilise donc un fichier temporaire)

         cp  /home/MaPomme/Documents/Dossier_a_pdf/Temporaire.pdf /home/MaPomme/Documents/Dossier_a_pdf/Combo.pdf

         rm /home/MaPomme/Documents/Dossier_a_pdf/stamped.pdf

         rm /home/MaPomme/Documents/Dossier_a_pdf//Temporaire.pdf 


    done



rm /home/MaPomme/Documents/Dossier_a_pdf/stamp.pdf



echo Liste des pdf faite. Conversion faite  dossier Dossier_a_pdf
  


exit 0;

merci pour les suggestions (en particulier le sriptage Oo, pour former un pdf "stamp" de titre ( argument passé par script).

Hors ligne

#8 Le 10/01/2010, à 20:02

Syndrome_de_Z

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

Bonsoir Toitoinebzh,

je viens d'aller voir "calibre" (http://doc.ubuntu-fr.org/calibre).
qui annonce:
"lecture, d'archivage et de conversion de fichiers numériques de type ebook" (dont fichiers pdf.
Je n'ai pas encore installé/exploré/testé;
Ça semble être une piste intéressante, mais j'aimerais bien ne pas "m'arrêter au milieux du gué" avec le petit script, qui m'a donné l'envie d'aller plus loin (si je peux).

Hors ligne

#9 Le 10/01/2010, à 20:19

Syndrome_de_Z

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

Bonsoir Toitoinebzh,

/suite "calibre"/

J'ai installé calibre. Ça a des fonctionnalités intéressantes de collection d'e-book".
A première vue, ça peut créer un e-book constitué d'une collection de pdf.
- La sortie est du ebook.
- du point de vue des fonctionnalités, ça ressemble à un petit "Nautilus" explorant les fichiers pdf (contenus dans l'e-book).

Cependant:
- Créer un e-book de mes pdf n'est pas mon but.
- Ça ne  me permet pas non-plus de faire un document pdf "combo" de toutes les premières pages de mes pdf.

Je suis donc toujours sur le sentier des scripts...

Hors ligne

#10 Le 10/01/2010, à 21:00

toitoinebzh

Re : Script former pdf de: toutes les 1ere page d'une collection de pdf ?

salut

tu peux configurer pour un fichier de sortie en pdf, en tout cas je l'ai fait chez moi
la librairie qui est ensuite créer devient un dossier avec plein de dossier (un dossier = un auteur)
dans chacun de ces dossiers l'image de la première page en jpg est présente, avec le fichier pdf

Hors ligne