Bonjour.
J\\\'ai créé une petite interface graphique avec Tkinter pour réaliser une concaténation de pdf via l\\\'outil pdftk.
Seulement j\\\'ai rencontré plusieurs problèmes :
-Les espaces dans les noms de fichiers me génaient terriblement, j\\\'ai résolu le problème en ajoutant des \\\\.
-Je suis aujourd\\\'hui coincé sur les caractères accentués qui peuvent apparaître dans les noms de fichiers : Quand il y a un accent dans le nom, le programme plante ( ou en tout cas ne fonctionne pas )
Je vous mets mon code :
Si quelqu\\\'un a une idée, je suis preneur, même s\\\'il s\\\'avère que c\\\'est évident. ( je programme en python depuis 2 jours )
Aucun dit : # -*- coding:Utf-8 -*-
#Ce programme a pour but de
#réaliser une interface graphique pour assembler
#2 documents au format pdf
import subprocess
from Tkinter import *
import tkFileDialog
liste=\\\"\\\"
def concatene():
global liste
nouveau_pdf = tkFileDialog.askopenfilename(title=\\\'Selectionnez un pdf \\\',filetypes=[(\\\"pdf\\\", \\\".pdf\\\")])
nouveau_pdf=gere_espaces(nouveau_pdf)
liste=liste+\\\" \\\"+nouveau_pdf
def sauver():
global liste
sauve=tkFileDialog.asksaveasfilename(title=\\\'enregistrer sous\\\',filetypes=[(\\\"pdf\\\",\\\".pdf\\\")])
sauve=gere_espaces(sauve)
action= \\\"pdftk \\\"+liste+\\\" cat output \\\"+sauve
subprocess.call([action],shell=True)
fen1.destroy()
#les espaces dans les noms de fichiers génèrent des erreurs
#corrigeons cela
#les accents ne sont pas non plus bien vus en ligne de commande
#la seconde partie de cette fonction corrige ce probleme
def gere_espaces(nom_de_fichier):
resultat=\\\'\\\'
i=0
l=len(nom_de_fichier)
while i<l:
if nom_de_fichier[i]==\\\" \\\":
resultat+=\\\"\\\\ \\\"
elif nom_de_fichier[i]==\\\"é\\\":
resultat+=\\\'e\\\'
else:
resultat+=nom_de_fichier[i]
i+=1
return resultat