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.

#26 Le 01/03/2018, à 12:43

pingouinux

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Si ce n'est pas abuser

type pip
cat /usr/local/bin/pip
/usr/bin/pip --version

Hors ligne

#27 Le 01/03/2018, à 12:59

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Ce n'est pas abuser que de me demander de contribuer à résoudre MON problème...

hintzy@hintzy:~$ type pip
pip est /usr/local/bin/pip
hintzy@hintzy:~$ cat /usr/local/bin/pip
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==9.0.1','console_scripts','pip'
__requires__ = 'pip==9.0.1'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pip==9.0.1', 'console_scripts', 'pip')()
    )
hintzy@hintzy:~$ /usr/bin/pip --version
pip 1.0 from /usr/lib/python2.7/dist-packages (python 2.7)

Hors ligne

#28 Le 01/03/2018, à 13:36

pingouinux

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

En fait, quand tu appelles pip, tu utilises /usr/local/bin/pip, qui est  interprété par python3, mais qui appelle ensuite pip, ce qui ne me semble pas cohérent.
Au lieu de faire

pip install ...

essaye

/usr/bin/pip install ...

Pendant que tu y es, donne aussi le retour

type pip3
cat /usr/bin/pip3

Hors ligne

#29 Le 01/03/2018, à 17:27

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Et voilà...

hintzy@hintzy:~$ /usr/bin/pip install fpdf Pillow
Downloading/unpacking fpdf
  Cannot fetch index base URL http://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement fpdf
No distributions at all found for fpdf
Storing complete log in /home/hintzy/.pip/pip.log
hintzy@hintzy:~$ type pip3
pip3 est /usr/local/bin/pip3
hintzy@hintzy:~$ cat /usr/bin/pip3
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.0','console_scripts','pip'
__requires__ = 'pip==1.0'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pip==1.0', 'console_scripts', 'pip')()
    )

Hors ligne

#30 Le 01/03/2018, à 17:57

shoot76

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Apparemment c'est un problème de certificat SSL avec pip ... la solution serait la suivante :

/usr/bin/pip install --index-url=https://pypi.python.org/simple/ fpdf Pillow

On va enfin y arriver! big_smile J'ai quand même hâte de savoir si mon boulot répond à ton problème! Non mais oh ^^

Merci beaucoup pingouinux!


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#31 Le 01/03/2018, à 18:08

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Moi aussi, j'aimerais bien voir le fichier...
J'ai donc fait la commande : je lis un "Permission denied" : il faudrait peut être que je me connecte en root ? mais il y a peut être encore d'autres soucis sad

hintzy@hintzy:~$ /usr/bin/pip install --index-url=https://pypi.python.org/simple/ fpdf Pillow
Downloading/unpacking fpdf
  Downloading fpdf-1.7.2.tar.gz
  Running setup.py egg_info for package fpdf
    
Downloading/unpacking Pillow
  Downloading Pillow-5.0.0.tar.gz (14.2Mb): 14.2Mb downloaded
  Running setup.py egg_info for package Pillow
    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
      warnings.warn(msg)
    
    warning: no files found matching '*.c'
    warning: no files found matching '*.h'
    warning: no files found matching '*.sh'
    no previously-included directories found matching 'docs/_static'
    warning: no previously-included files found matching '.coveragerc'
    warning: no previously-included files found matching 'codecov.yml'
    warning: no previously-included files found matching '.editorconfig'
    warning: no previously-included files found matching '.landscape.yaml'
    warning: no previously-included files found matching '.travis'
    warning: no previously-included files found matching '.travis/*'
    warning: no previously-included files found matching 'appveyor.yml'
    warning: no previously-included files found matching 'build_children.sh'
    warning: no previously-included files found matching 'tox.ini'
    warning: no previously-included files matching '.git*' found anywhere in distribution
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
Installing collected packages: fpdf, Pillow
  Running setup.py install for fpdf
    error: could not create '/usr/local/lib/python2.7/dist-packages/fpdf': Permission denied
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/home/hintzy/build/fpdf/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-2USCrS-record/install-record.txt:
    running install

running build

running build_py

creating build

creating build/lib.linux-i686-2.7

creating build/lib.linux-i686-2.7/fpdf

copying fpdf/py3k.py -> build/lib.linux-i686-2.7/fpdf

copying fpdf/template.py -> build/lib.linux-i686-2.7/fpdf

copying fpdf/html.py -> build/lib.linux-i686-2.7/fpdf

copying fpdf/php.py -> build/lib.linux-i686-2.7/fpdf

copying fpdf/ttfonts.py -> build/lib.linux-i686-2.7/fpdf

copying fpdf/__init__.py -> build/lib.linux-i686-2.7/fpdf

copying fpdf/fonts.py -> build/lib.linux-i686-2.7/fpdf

copying fpdf/fpdf.py -> build/lib.linux-i686-2.7/fpdf

running install_lib

creating /usr/local/lib/python2.7/dist-packages/fpdf

error: could not create '/usr/local/lib/python2.7/dist-packages/fpdf': Permission denied

----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/home/hintzy/build/fpdf/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-2USCrS-record/install-record.txt failed with error code 1
Storing complete log in /home/hintzy/.pip/pip.log

Là je dois m'absenter, je reprends ce soir : en attendant vous pouvez faire des suggestions wink

Hors ligne

#32 Le 01/03/2018, à 18:11

shoot76

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

En effet, un sudo sera bienvenu.

Après je pense que le problème sera réglé.


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#33 Le 01/03/2018, à 22:30

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

De retour devant l'écran...
Avec un sudo, effectivement, ça semble bien se passer puisque j'obtiens à la fin

Successfully installed fpdf Pillow

Un grand BRAVO à tous les 2 !!!!

J'ai donc lancé le script (celui modifié hier AM) mais il y a un pb ligne 27???
Le script :

#!/usr/bin/python

from fpdf import FPDF
from PIL import Image
import glob
import os
import argparse


def makePdf(output, files_folder):
    files = glob.glob(os.path.join(files_folder,'*.jpg'))
    cover = Image.open(files[0])
    width, height = cover.size

    pdf = FPDF(unit = "pt", format = [width, height])
    pdf.set_font('Times', '', 32)
    
    for page in files:
        pdf.add_page()
        pdf.image(page, 0, 0)   
        pdf.cell(0, 10, str(page), 0, 1)

    pdf.output(output, "F")
    
if __name__ == '__main__':
    
    parser = argparse.ArgumentParser(description="Générer un fichier pdf à partir d'un dossier de photos")
    parser.add_argument('--dossier_source', help='Dossier source. Chemin complet vers le dossier des photos.', type=str)
    parser.add_argument('--fichier_pdf', help='Chemin et nom du fichier en sortie', type=str)
    args = parser.parse_args()
    
    makePdf(args.fichier_pdf, args.dossier_source)

et le retour

hintzy@hintzy:~/Documents/Bureautique/JPEGversPDF$ ./script_expose_bota.py --dossier_source Source_Photos --fichier_pdf monfichier.pdf
  File "./script_expose_bota.py", line 27
SyntaxError: Non-ASCII character '\xc3' in file ./script_expose_bota.py on line 27, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Je n'y connais rien donc je ne vois pas l'erreur si ce n'est qu'il y a des " et qu'ailleurs on a ' mais c'est peut être normal...

Dernière modification par gatzy (Le 01/03/2018, à 22:31)

Hors ligne

#34 Le 01/03/2018, à 22:36

pingouinux

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

C'est à cause des accents dans le script. Essaye en mettant ceci en deuxième ligne (juste après #!/usr/bin/python)

# -*- coding: utf-8 -*-

Hors ligne

#35 Le 02/03/2018, à 09:57

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Bonjour
Suite de "nos" aventures wink
J'ai ajouté la ligne conseillée par pingouinux et j'obtiens :

hintzy@hintzy:~/Documents/Bureautique/JPEGversPDF$ ./script_expose_bota.py --dossier_source Source_Photos --fichier_pdf monfichier.pdf
Traceback (most recent call last):
  File "./script_expose_bota.py", line 33, in <module>
    makePdf(args.fichier_pdf, args.dossier_source)
  File "./script_expose_bota.py", line 13, in makePdf
    cover = Image.open(files[0])
IndexError: list index out of range

Des idées ?

Hors ligne

#36 Le 02/03/2018, à 10:09

pingouinux

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Le répertoire Source_Photos, censé contenir les fichiers *.jpg, se trouve-t-il bien dans ~/Documents/Bureautique/JPEGversPDF ?
Sinon, il faut donner le chemin complet sur la ligne de commande, comme semble l'indiquer le commentaire à la ligne 29 de ton script.

    parser.add_argument('--dossier_source', help='Dossier source. Chemin complet vers le dossier des photos.', type=str)

Hors ligne

#37 Le 02/03/2018, à 10:21

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Oui, le répertoire avec les photos est au même endroit :

hintzy@hintzy:~/Documents/Bureautique/JPEGversPDF$ ls -l
total 2372
-rw-rw-r-- 1 hintzy hintzy   10390 mars   1 23:07 Lancement script.odt
-rw-rw-r-- 1 hintzy hintzy 1197370 nov.   6  2016 pip-9.0.1.tar.gz
-rw-r--r-- 1 root   root   1197370 nov.   6  2016 pip-9.0.1.tar.gz.1
-rwxrwxr-x 1 hintzy hintzy     976 mars   2 08:50 script_expose_bota.py
drwxrwxr-x 2 hintzy hintzy    4096 févr. 27 16:33 Source_Photos

Au fait, je peux supprimer les pip-9-0.1?

Hors ligne

#38 Le 02/03/2018, à 10:25

shoot76

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Oui tu peux les supprimer smile

Essaie :

./script_expose_bota.py --dossier_source ./Source_Photos --fichier_pdf monfichier.pdf

J'avais testé avec des chemins relatifs, c'est censé fonctionner.

Sinon

./script_expose_bota.py --dossier_source ~/Documents/Bureautique/JPEGversPDF/Source_Photos --fichier_pdf monfichier.pdf

D'autre part, est-ce que tes fichiers sont bien en 'jpg' (les minuscules sont importantes). si c'est 'JPG' il faut modifier le script en conséquence. Après on pourra essayer de trouver un truc "plus propre"... mais c'était déjà pour tester si ça répondait à ta problématique

Dernière modification par shoot76 (Le 02/03/2018, à 10:26)


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#39 Le 02/03/2018, à 12:13

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Bravo, bravo, bravo !!!!!

j'ai renommé tous les fichiers en "jpg minuscule" et... ça marche avec la 1ère ligne (chemins relatifs) !!!!!!

Cela correspond bien à ce que je cherchais mais, est-ce possible d'y apporter quelques améliorations  wink
- afficher le nom entre les photos ou si ce n'est pas possible mettre en gras et pouvoir définir la couleur dans le script (il faudra me dire où c'est pour que je puisse adapter en fonction des photos...)
Comme ce sont des photos de fleurs, le fond est souvent foncé, donc, par défaut, une écriture en blanc est peut être plus adaptée.
- afficher juste le nom du fichier et pas le nom du dossier (mais c'est vraiment du pinaillage)

Je pense que c'est là qu'il faut modifier le jpg en JPG si je ne veux pas avoir à renommer toutes mes photos ?

files = glob.glob(os.path.join(files_folder,'*.jpg'))

Odile (qui en veut toujours plus...)

Hors ligne

#40 Le 02/03/2018, à 12:26

shoot76

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Content que ça fonctionne enfin smile

J'ai donc modifié le script pour répondre à ta demande : J'ajoute le texte sur une nouvelle page puis la photo la page suivante. Après pour la police, la position et les couleurs... on verra après ^^ Le texte, je garde que le nom du fichier sans l'extension. C'est vrai que ça fera plus propre.

Enfin, j'ai rajouté une commande pour le format de l'extension. Comme ça tu peux le changer à la volée sans éditer le code.

#!/usr/bin/python

from fpdf import FPDF
from PIL import Image
import glob
import os
import argparse
from os.path import basename

def get_filename(file):
    return basename(os.path.splitext(file)[0])

def makePdf(output, files_folder, extension='jpg'):
    files = glob.glob(os.path.join(files_folder,'*.'+extension))
    cover = Image.open(files[0])
    width, height = cover.size

    pdf = FPDF(unit = "pt", format = [width, height])
    pdf.set_font('Times', '', 32)
    
    for page in files:
        pdf.add_page()
        pdf.cell(0, 10, str(get_filename(page)), 0, 1)
        pdf.add_page()
        pdf.image(page, 0, 0)   

    pdf.output(output, "F")
    
if __name__ == '__main__':
    
    parser = argparse.ArgumentParser(description="Générer un fichier pdf à partir d'un dossier de photos")
    parser.add_argument('--dossier_source', help='Dossier source. Chemin complet vers le dossier des photos.', type=str)
    parser.add_argument('--fichier_pdf', help='Chemin et nom du fichier en sortie', type=str)
    parser.add_argument('--extension', help='type de fichier image', type=str, default='jpg')
    args = parser.parse_args()
    
    makePdf(args.fichier_pdf, args.dossier_source, args.extension)
./script_expose_bota.py --dossier_source ./Source_Photos --fichier_pdf monfichier.pdf --extension JPG

NB : L'argument "extension" dépend du format des photos. JPG pour des images du type image.JPG ou jpg pour image.jpg... faire bien attention aux majuscules smile

Dernière modification par shoot76 (Le 02/03/2018, à 12:28)


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#41 Le 02/03/2018, à 12:36

shoot76

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Si tu veux comprendre ce code, il repose principalement sur cette librairie : fpdf

l'idée, c'est de prendre la première image et de s'en servir comme référence pour la largeur/hauteur de la page.

Ensuite, pour chaque image du dossier :
On créé une page vierge
On ajoute le texte
On créé une page vierge
On ajoute l'image

Ensuite on écrit le PDF.

C'est tout.

Si tu veux modifier la couleur du texte, il faudra ajouter une ligne :

fpdf.set_text_color(r: int, g: int = -1, b: int = -1)

en dessous du pdf.set_font(0,10...) où r, g, et b sont les paramètres RGB de la couleur que tu souhaites. (Red/Green/Blue).

N'hésite pas si tu as besoin d'aide. Tu m'as demandé de t'expliquer, je le fais. Mais j'ai conscience que ça n'est pas trivial smile


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#42 Le 02/03/2018, à 13:22

kholo

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

salut,
peut être plus facile de gérer en bash
tout le monde ne script pas donc je met un tuto du type Fécomça

ouvrez un terminal (ctrl + maj + t)
NB pour copier les lignes faites un triple clic sur la ligne puis ctrl + c (ou clic droit puis copier)
pour coller dans le terminal : ctrl + maj + v (ou clic droit puis coller)

créer un dossier bin dans son dossier personnel

mkdir $HOME/bin
Bison Futé a écrit :

SI le retour n'est PAS :

mkdir: impossible de créer le répertoire «/home/votreNom/bin»: Le fichier existe

modifier le PATH (pour prendre tout de suite en compte votre dossier personnel bin)
ou se déconnecter puis se reconnecter (votre ~/bin sera automatiquement ajouté à PATH à chaque connexion)

export PATH=$HOME/bin:+$PATH

mettre un script dans ce dossier

> $HOME/bin/img2pdf_annoted

et le rendre exécutable

chmod +x $HOME/bin/img2pdf_annoted
NB a écrit :

annoted sera facilement reconnaissable ( ! Annotated lol )
la longueur du nom du script n'est pas un problème et le "_" intentionnel ;
taper "img2pdf_" (voir moins) suffira à autocompléter avec la touche tab

édition du fichier pour le moment vide...

nano $HOME/bin/img2pdf_annoted

sélectionnez et copiez le code suivant puis retournez dans nano.
(lisez la suite avant wink )

#!/bin/bash
# ----------------------------------------------

nomlogiciel="${0##*/}"
FONCTION="mettre des photos dans un pdf avec annotations (uniquement le nom dans cet exemple)"
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
echo "lancement $nomlogiciel..."
# echo "chargement ligne $LINENO"

# nautilus "$PWD" ; exit 0

mypid=$$
mkdir /tmp/$mypid
for f in *
do
	ext=${f##*.}
	case ${ext,,} in
		jpg|jpeg|png) # on peut ajouter d'autres formats en minuscule
			# echo "-> $f"
			fSortie="/tmp/$mypid/${f%.*}.jpg"

			# toutes les images au même format : 768 pour la hauteur et largeur selon
			convert -monitor "$f" -resize 1024x768^ -quality 100 "$fSortie"

			# on ajoute du texte
			convert -monitor "$fSortie" \
				-background white \
				-pointsize 72 \
				label:"${f%.*}" \
				-gravity Center \
				-append "$fSortie"
			;;
		*) ;;
	esac
done

# on met toutes les images dans le pdf
convert -monitor /tmp/$mypid/* "unpdf.pdf"

# on supprime les fichiers et dossiers temporaires
rm /tmp/$mypid/*
rm -d /tmp/$mypid

exit 0

dans nano, faites :
ctrl + maj + v pour coller
puis ctrl + x pour demander de quitter -> nano vous propose d'enregistrer
puis o pour valider le nom du fichier
et enfin la touche Entrée pour retrouver le prompt

explications a écrit :

note pour l'annotation dans le script
# option monitor !!! ;°)

convert -monitor "$fSortie" 

# fond du bandeau

-background white 

# taille de la police de caractère

-pointsize 72 

# ce qu'on mettra dans le bandeau : ici le nom sans extension

label:"${f%.*}" 

# au centre du bandeau

-gravity Center 

# on ajoute le texte dans le même fichier (qui pourrait être différent)

-append "$fSortie" 

maintenant, allez dans un dossier avec des images (ou ouvrir un terminal depuis un navigateur de fichiers par le clic droit)
donc, sinon en ligne de commande adaptez

cd "mon/Dossier/avec/des/photos"

appeler le script avec son nom (pas de chemin puisque dans le PATH)
tapez img2pdf_ puis la touche tab qui va compléter

img2pdf_annoted

le script est très verbeux
(voir les -monitor dans le script que l'on peut supprimer ou router vers un fichier log)

Bison Futé a écrit :

si vous avez en retour

img2pdf_annoted : commande introuvable

suivez Bison Futé !!!
vous n'avez pas tout à fait suivi en prenant le temps de vous déconnecter puis vous reconnecter,
ou modifier votre PATH, c'est le moment...
il suffit de fermer tous les programmes, se déconnecter puis se reconnecter
cela vous assurera que votre dossier bin est bien reconnu par votre système et trouvera donc le script juste après...

si tout se passe sans problème,
le pdf sera dans le dossier des photos

ls *.pdf

on peut ajouter la ligne suivante au script ou la taper voire utiliser un gestionnaire de fichiers pour déplacer et renommer ce pdf :

mv unpdf.pdf "$HOME/Bureau/$(date +%F-%T) un nom avec des espaces.pdf"

cool have fun cool

Dernière modification par kholo (Le 03/03/2018, à 13:45)

Hors ligne

#43 Le 02/03/2018, à 15:14

shoot76

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Le retour du bon vieux duel Python vs Bash ! big_smile


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#44 Le 02/03/2018, à 16:12

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Un grand merci shoot76 pour les modifications apportées au script et les explications.
En fait, je me suis mal fait comprendre : je ne voulais pas le titre sur une autre page mais en dehors de l'image pour qu'il soit visible quel que soit la couleur de fond...

Après un peu de tâtonnement, en comparant les 2 versions et avec les explications d'utilisation de la librairie  fpdf, j'ai gardé l'idée d'écrire sur la photo mais en mettant un fond blanc à la cellule dont j'ai augmenté la hauteur pour contenir le texte
C'est ok sauf que, comme je ne connais pas, à priori, la longueur du texte à inscrire, j'ai gardé l'idée de la cellule sur toute la largeur ce qui n'est pas très esthétique quand le nom est court mais là, je suis en train de chercher la perfection.

Mais si je peux abuser encore un peu wink :
- est-ce qu'il y a une façon simple de récupérer la longueur du titre et de la passer en paramètre du pdf.cell, avec un peu d'espace de chaque coté ?

- pour changer la couleur du texte, tu m'indiques d'ajouter :

fpdf.set_text_color(r: int, g: int = -1, b: int = -1)

juste pour ma "culture" à quoi correspond le int = -1

pour mettre une couleur de fond, j'ai "juste" mis :

pdf.set_fill_color(255, 255, 255)

Merci à kholo pour sa solution "alternative" que j'essaierai de tester un jour prochain mais, là j'ai une solution qui convient, donc je vais retourner à mes identifications de fleurs en photos : smile

Et je n'oublie pas les remerciements à pingouinux pour son aide coté python

Hors ligne

#45 Le 02/03/2018, à 16:12

kholo

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

non, non pas de soucis...
c'est surtout pour aller plus vers imagemagick...

Hors ligne

#46 Le 02/03/2018, à 16:34

shoot76

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

gatzy a écrit :

- est-ce qu'il y a une façon simple de récupérer la longueur du titre et de la passer en paramètre du pdf.cell, avec un peu d'espace de chaque coté ?
- pour changer la couleur du texte, tu m'indiques d'ajouter :

fpdf.set_text_color(r: int, g: int = -1, b: int = -1)

juste pour ma "culture" à quoi correspond le int = -1


- Oui, il y a une façon simple smile En python, une chaine de caractères (un mot, une phrase) est un tableau de lettres. On peut représenter "COUCOU" par ['C','O','U','C','O','U']. Si tu fais mot[:3] tu auras les trois premières lettres "COU". Pourquoi je te dis tout ça? Tu vas me dire que ça à rien à voir avec ton problème.. en fait si. Car comme un mot est un tableau, tu peux tout simplement "compter" le nombre de caractères qu'il y a dedans. En Python, c'est la commande 'len'. Donc, pour avoir la taille du mot + une petite marge, tu peux faire :

len(mot)+marge

- En fait, ce sont les paramètres de la fonction. Ici, tu as trois paramètres: r, g et b qui sont de type "int" (integer en Anglais / entier en Français). le -1 correspond à la valeur par défaut. Les couleurs sont encodées allant de 0 à 255 sur trois couleurs primaires (rouge, bleu et vert). Le mélange de ces trois couleurs fait donc la couleur que tu veux. En quelque sorte, les paramètres R G B sont un peu la palette du codeur smile Sur n'importe quel site internet de couleur pour site web tu trouveras les valeurs nécessaires à R G B smile


~ Data-sientist freelance : https://skulder.fr

Hors ligne

#47 Le 02/03/2018, à 22:35

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

@shoot76 : merci pour les explications : j'ai réussi à faire une cellule avec un fond blanc à la bonne taille !

Par contre, désolée si tu pensais en avoir fini avec mes questions...
En testant sur un "vrai" répertoire de photos utilisées pour faire une présentation, je me suis aperçue que :
- les photos sont traitées dans un ordre dont je ne comprends pas la logique : est-ce possible de les traiter par ordre alphabétique de nom ?
- les noms de plantes (et donc des photos) sont souvent avec des lettres avec accents qui sont transformées en caractères "bizarres" (é) : est ce possible d'y remédier ?

Encore merci pour ton aide

Hors ligne

#48 Le 02/03/2018, à 22:49

pingouinux

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

gatzy #47 a écrit :

- les photos sont traitées dans un ordre dont je ne comprends pas la logique : est-ce possible de les traiter par ordre alphabétique de nom ?

Oui, en ajoutant la seconde ligne ci-dessous, après celle qui est dans le script :

    files = glob.glob(os.path.join(files_folder,'*.'+extension))
    files.sort()

Hors ligne

#49 Le 02/03/2018, à 23:00

gatzy

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

C'est vraiment super ce forum : question à peine posée, question résolue... Merci !
Il n'y a plus que le problème de lettres avec accent  wink

Hors ligne

#50 Le 02/03/2018, à 23:07

pingouinux

Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF

Pour les accents, je pense qu'il suffira de modifier cette ligne :

        pdf.cell(0, 10, str(get_filename(page)), 0, 1)

mais je ne peux pas faire de test, car le module fpdf n'est pas installé chez moi.
Pour bricoler avec les encodages des caractères, je trouve que c'est plus facile avec python3.

Hors ligne