#51 Le 03/03/2018, à 13:47
- kholo
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Hors ligne
#52 Le 05/03/2018, à 19:24
- gatzy
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Bonsoir
Pour les accents, je pense qu'il suffira de modifier cette ligne :
pdf.cell(0, 10, str(get_filename(page)), 0, 1)
J'ai pas mal cherché sur les forums mais je tourne en rond... j'ai testé en utilisant utf8_decode pour le nom à écrire mais manifestement python ne connaît pas
Des idées ?
Hors ligne
#53 Le 05/03/2018, à 19:53
- kholo
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
bon, je dis ça pour ceux que ça intéresse mais mon choix de ffmpeg n'était pas innocent...
Hors ligne
#54 Le 05/03/2018, à 20:01
- pingouinux
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Si personne ne trouve directement la solution, tu peux essayer de placer ces 3 lignes devant celle que tu montres en #52 :
print("page=%s="%page)
print("get_filename(page)=%s="%get_filename(page))
print("str(get_filename(page))=%s="%str(get_filename(page)))
Tu obtiendras 3 lignes par photo. Il suffit que tu ne montres que les 3 correspondant à une photo dont le nom contient un accent.
PS : As-tu testé la solution de kholo ? Si elle te donne satisfaction, inutile de se casser la tête…
Hors ligne
#55 Le 05/03/2018, à 20:05
- gatzy
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
@kholo : j'ai conservé ta proposition dans un coin mais comme j'ai déjà passé pas mal de temps pour faire tourner le script en python et que j'ai l'impression que je suis presque arrivée au but, j'hésite à partir sur une autre voie qui sera très certainement semée d’embûches compte tenu de mes connaissances et de ma vieille version d'ubuntu... mais à force de tourner en rond, je vais peut être me décider à prendre une bretelle de sortie si la solution n'est pas trouvée
A suivre...
Hors ligne
#56 Le 05/03/2018, à 20:17
- gatzy
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Si personne ne trouve directement la solution, tu peux essayer de placer ces 3 lignes devant celle que tu montres en #52 :
print("page=%s="%page) print("get_filename(page)=%s="%get_filename(page)) print("str(get_filename(page))=%s="%str(get_filename(page)))
Tu obtiendras 3 lignes par photo. Il suffit que tu ne montres que les 3 correspondant à une photo dont le nom contient un accent.
Je ne comprends pas...
J'ai mis les print, j'obtiens, par exemple pour une des photos :
page=./Source_Photos/003-radiée.jpg=
get_filename(page)=003-radiée=
str(get_filename(page))=003-radiée=
Et après????
Hors ligne
#57 Le 05/03/2018, à 21:13
- pingouinux
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
- 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 ?
D'après ta réponse en #56, où les caractères sont corrects, je pense que c'est la fonction pdf.cell qui fait mal la conversion. Là je ne peux pas t'aider, pdf n'est pas installé chez moi.
Si ça peut aider quelqu'un à résoudre ton problème, on peut obtenir tes caractères bizarres de cette façon
$ iconv -f latin1 -t utf8 <<<"é"
é
comme si pdf.cell croyait lire du latin1 alors que c'est de l'utf8.
Hors ligne
#58 Le 05/03/2018, à 21:27
- pingouinux
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Sans garantie, tu peux essayer
pdf.cell(0, 10, get_filename(page).decode('utf8').encode('latin1'), 0, 1)
Hors ligne
#59 Le 05/03/2018, à 22:03
- gatzy
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Bravo pingouinux : ta solution avec decode('utf8').encode('latin1') marche !!!!!
Un très grand merci à tous ceux (et peut être celles, avec ces pseudo, on ne sait jamais...) qui se sont penché(e)s sur mon "problème"
Hors ligne
#60 Le 05/03/2018, à 22:28
- pingouinux
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Je suis content pour toi. Si tu penses que c'est bon, modifie ton premier message et ajoute [Résolu] dans le titre.
Pour info, j'ai testé le script bash de kholo en #42 : il génère bien le fichier .pdf avec les accents.
Hors ligne
#61 Le 05/03/2018, à 23:29
- gatzy
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Je n'évacue pas l'idée de tester le script de kholo mais pour l'instant j'ai une solution et cela me va bien.
Je recopie la version finale du script obtenu : peut être que cela aidera quelqu'un qui a le même besoin...
#!/usr/bin/python
# -*- coding: utf-8 -*-
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))
files.sort()
cover = Image.open(files[0])
width, height = cover.size
pdf = FPDF(unit = "pt", format = [width, height])
pdf.set_font('Times', '', 32)
pdf.set_fill_color(255, 255, 255)
for page in files:
pdf.add_page()
pdf.image(page, 0, 0)
Nomfleur= str(get_filename(page))
print(Nomfleur)
pdf.cell(len(Nomfleur)*18, 40, Nomfleur.decode('utf8').encode('latin1'), 0, 1, fill = True)
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)
Hors ligne
#62 Le 06/03/2018, à 12:15
- shoot76
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Bon, la cavalerie arrive après la bataille !
Merci pingouinux et content que ça fonctionne pour toi.
Faudrait nous envoyer des exemples que fichier généré maintenant Faut qu'on voit ces belles fleurs tout de même.
Aller, à bientôt
~ Data-sientist freelance : https://skulder.fr
Hors ligne
#63 Le 06/03/2018, à 15:33
- gatzy
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Je veux bien vous envoyer quelques fleurs pour vous remercier mais je ne sais pas comment joindre un fichier
Odile, qui a encore beaucoup à apprendre
Hors ligne
#64 Le 06/03/2018, à 15:41
- shoot76
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Tu peux utiliser les services de Framasoft, une association Française qui lutte contre les GAFAM (Google, Amazon, Facebook, Apple, Microsoft).
Tu as le lien ici
Si tu ne connais pas cette asso, je t'invite à regarder un peu leur page. Ils ont bon nombre de services gratuits mis à disposition des utilisateurs pour éviter l'utilisation de services privateurs de libertés. On y retrouve par exemple un organisateur de calendrier style Doodle, des notes, un tableur... bref, c'est assez complet et intéressant
J'ai hâte de découvrir de belles fleurs bien vivantes! Je n'ai malheureusement pas le talent requis pour en avoir moi même... elles finissent toutes par mourir dans un délais ma fois plutôt court... Je suis un assassin
~ Data-sientist freelance : https://skulder.fr
Hors ligne
#65 Le 11/03/2018, à 18:53
- gatzy
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Et voici une toute petite sélection (le fichier Pdf devient vite énorme !!!) de printanières... et j'ai même réussi à ajouter une page de garde
Printanières
Première fois que j'utilise Framadrop : j'espère que mon fichier pourra être lu...
Hors ligne
#66 Le 11/03/2018, à 19:24
- erresse
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Bonjour,
Je viens de visionner ton fichier sur Framadrop : Pas de problème, les photos sont très nettes et il est très facile de l'atteindre.
Toutefois, comme tu l'as remarqué toi-même, le PDF devient vite très lourd lorsqu'on y ajoute beaucoup de photos (c'est normal, les photos, ça pèse beaucoup...) et, comme il faut télécharger le fichier pour le relire en local, ç pourrait poser problème à ceux qui ne disposent pas d'une bonne connexion...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#67 Le 11/03/2018, à 22:35
- alex2423
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
Et voici une toute petite sélection (le fichier Pdf devient vite énorme !!!) de printanières... et j'ai même réussi à ajouter une page de garde
Printanières
Première fois que j'utilise Framadrop : j'espère que mon fichier pourra être lu...
Hey oui, malheureusement Framasoft est malheureusement peu connu alors qu'il propose des superbes services.
Je viens de visualiser ton pdf, les photos sont vraiment très très belle. On voit distinctement les fleurs avec le nom en haut à gauche
Hors ligne
#68 Le 14/03/2018, à 12:26
- shoot76
Re : [Résolu] Convertir plusieurs photos JPEG dans un PDF
On peut imaginer une "extension" du script.
A savoir : générer deux fichiers. Un pour le mode en ligne. L'autre pour le mode "download". Pour le mode en ligne, il sera nécessaire de sacrifier la qualité des photos pour en réduire le poids. Mais le PDF pourra être lu en ligne sans avoir une grosse connexion. Et on laisse un second fichier "original", plus lourd, avec les photos en qualité nette.
Au boulot les services de Framasoft sont bloqués par Proxy, je regarde ça en rentrant ce soir. Merci beaucoup Gatzy
EDIT : Ah ouais ça rend bien! Félicitations
Dernière modification par shoot76 (Le 14/03/2018, à 19:59)
~ Data-sientist freelance : https://skulder.fr
Hors ligne