Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| pdftohtml [Le 26/10/2009, 08:23] 213.95.41.13 | pdftohtml [Le 28/09/2022, 20:53] (Version actuelle) Amiralgaby [Ajout d'une interface graphique] correction code shell repéré grâce à wiki-corrector | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>logiciel pdf}} | + | {{tag>pdf}} | 
| - | ====== PdfToHtml ====== | ||
| + | ---- | ||
| + | |||
| + | ====== PdfToHtml ====== | ||
| pdftohtml est un utilitaire en ligne de commande qui permet, comme son nom l'indique, de convertir un fichier PDF vers un fichier HTML. | pdftohtml est un utilitaire en ligne de commande qui permet, comme son nom l'indique, de convertir un fichier PDF vers un fichier HTML. | ||
| ===== Installation ===== | ===== Installation ===== | ||
| + | |||
| + | Poppler-utils est normalement installé par défaut toutefois si il ne l'est pas : | ||
| [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://poppler-utils|poppler-utils]]**. | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://poppler-utils|poppler-utils]]**. | ||
| Il contient plusieurs utilitaires, dont celui qui nous intéresse : **pdftohtml**. | Il contient plusieurs utilitaires, dont celui qui nous intéresse : **pdftohtml**. | ||
| - | ===== Utilisation via une interface graphique ===== | + | Vous trouverez une liste des autres utilitaires disponibles dans poppler-utils sur la page [[:poppler-utils]] | 
| - | J'ai créé une petite interface graphique grâce à Zenity afin de simplifier son utilisation. | + | ===== Utilisation (en ligne de commande) ===== | 
| + | |||
| + | La syntaxe générale est la suivante : | ||
| + | <code>pdftohtml [options] <PDF-file> <html-file></code> | ||
| + | Où //<PDF-file>// est à remplacer par l'emplacement du fichier pdf à convertir, | ||
| + | où //<html-file>// est à remplacer par l'emplacement du fichier html et | ||
| + | où //[options]// est à remplacer par aucune,une ou plusieurs des options. | ||
| + | |||
| + | Voici la liste des principales options : | ||
| + | * **-q** : ne pas afficher les messages d'erreur | ||
| + | * **-v** : afficher le copyright et les information de version | ||
| + | * **-p** : échanger les lien .pdf avec .html | ||
| + | * **-c** : générer des sorties complexes | ||
| + | * **-i** : ignorer les images | ||
| + | * **-noframes** : ne pas générer de cadres | ||
| + | * **-stdout** : utiliser la sortie standard | ||
| + | * **-xml** : sortie pour des post-traitements XML | ||
| + | * **-hidden** : forcer l'extraction de texte caché | ||
| + | * **-dev** : périphérique de sortie pour Ghostscript | ||
| + | * **-nomerge** : ne pas merger les paragraphes | ||
| + | * **-nodrm** : écraser les paramètres DRM du document | ||
| + | |||
| + | ===== Ajout d'une interface graphique ===== | ||
| + | |||
| + | J'ai ([[:utilisateurs:mirage59]]) créé une petite interface graphique grâce à Zenity afin de simplifier son utilisation. | ||
| Copiez le code ci-dessous dans un éditeur quelconque (ex : gedit). | Copiez le code ci-dessous dans un éditeur quelconque (ex : gedit). | ||
| <code> | <code> | ||
| - | #!/bin/sh | + | #!/bin/bash | 
| + | ########################################################## | ||
| + | ## Interface Graphique pour pdftohtml  ## | ||
| + | ########################################################## | ||
| + | ##### mirage59  #### | ||
| + | ########################################################## | ||
| + | ############### Script sous licence GPL V3 ############### | ||
| + | ########################################################## | ||
| - | #affichage de la licence | + | #affichage informatif | 
| zenity  --warning --width=400 \ | zenity  --warning --width=400 \ | ||
| --title="Interface graphique pour pdftohtml" \ | --title="Interface graphique pour pdftohtml" \ | ||
| --text="Ce programme est une interface graphique pour l'utilitaire 'pdftohtml' qui permet la conversion d'un fichier PDF en fichier(s) HTML." | --text="Ce programme est une interface graphique pour l'utilitaire 'pdftohtml' qui permet la conversion d'un fichier PDF en fichier(s) HTML." | ||
| - | boiteLicence=`zenity --question --width=350 --height=150 --title="Message de l'auteur (mirage59)" --text="<b>Programme sous licence Paternité-Pas d'Utilisation Commerciale-Partage des Conditions Initiales à l'Identique 2.0 France | + | #sélection du pdf a convertir | 
| - | Pour plus d'informations visiter : | + | fichierEntree=$(zenity --file-selection --title="Sélectionnez le fichier PDF à convertir") | 
| - | http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ \n</b>"` | + | |
| case $? in | case $? in | ||
| 0) | 0) | ||
| - | #l'user a validé la licence | + | #echo $fichierEntree | 
| ;; | ;; | ||
| 1) | 1) | ||
| - | #annuler;; | + | #echo "Aucun fichier sélectionné.";; | 
| - | exit;; | + | exit 2;; | 
| -1) | -1) | ||
| - | #fermer | + | exit 1;; | 
| - | exit;; | + | |
| - | esac | + | |
| - | + | ||
| - | + | ||
| - | #sélection du pdf a convertir | + | |
| - | fichierEntree=`zenity --file-selection --title="Sélectionnez le fichier PDF à convertir"` | + | |
| - | + | ||
| - | case $? in | + | |
| - | 0) | + | |
| - | echo $fichierEntree;; | + | |
| - | 1) | + | |
| - | #echo "Aucun fichier sélectionné.";; | + | |
| - | exit;; | + | |
| - | -1) | + | |
| - | exit;; | + | |
| esac | esac | ||
| #checklist pour les différentes options | #checklist pour les différentes options | ||
| - | options=`zenity  --list --checklist --width=450 --height=400 --separator=" -" \ | + | listeOptions=$(zenity  --list --checklist --width=450 --height=400 --separator=" -" \ | 
| --title="Cochez les options souhaiter pour la conversion"\ | --title="Cochez les options souhaiter pour la conversion"\ | ||
| --column="Cochez" --column="Options" --column="Descriptions" \ | --column="Cochez" --column="Options" --column="Descriptions" \ | ||
| - | 1 q "dont print any messages or errors" \ | + | 1 q "ne pas afficher les messages d'erreur" \ | 
| - | 1 v "print copyright and version info " \ | + | 1 v "afficher le copyright et les information de version" \ | 
| - | 1 p "exchange .pdf links with .html" \ | + | 1 p "échanger les liens .pdf avec .html" \ | 
| - | 1 c "generate complex output" \ | + | 1 c "générer des sorties complexes" \ | 
| - | 1 i "ignore images" \ | + | 1 i "ignorer les images" \ | 
| - | 1 noframes "generate no frames" \ | + | 1 noframes "ne pas générer de cadres" \ | 
| - | 1 stdout "use standard output " \ | + | 1 stdout "utiliser la sortie standard" \ | 
| - | 1 xml "output for XML post-processing " \ | + | 1 xml "sortie pour des post-traitements XML" \ | 
| - | 1 hidden "force hidden text extraction" \ | + | 1 hidden "forcer l'extraction de texte caché" \ | 
| - | 1 dev "output device name for Ghostscript" \ | + | 1 dev "périphérique de sortie pour Ghostscript" \ | 
| - | 1 nomerge "do not merge paragraphs " \ | + | 1 nomerge "ne pas merger les paragraphes" \ | 
| - | 1 nodrm "override document DRM settings "` | + | 1 nodrm "écraser les paramètres DRM du document") | 
| + | |||
| + | options=" -"${listeOptions} | ||
| #sélection du dossier de sortie | #sélection du dossier de sortie | ||
| - | dossierSortie=`zenity --file-selection --directory --title="Sélectionnez le dossier où seront sauvegardé vos fichiers HTML"` | + | dossierSortie=$(zenity --file-selection --directory --title="Sélectionnez le dossier où seront sauvegardé vos fichiers HTML") | 
| case $? in | case $? in | ||
| 0) | 0) | ||
| - | echo "$dossierSortie";; | + | #echo ${dossierSortie} | 
| + | ;; | ||
| 1) | 1) | ||
| echo "Aucun dossier sélectionné."; | echo "Aucun dossier sélectionné."; | ||
| - | exit;; | + | exit 2;; | 
| -1) | -1) | ||
| - | exit;; | + | exit 1;; | 
| esac | esac | ||
| #saisie du nom du fichier html | #saisie du nom du fichier html | ||
| - | fichierSortie=`zenity --entry --title="Choix du nom du fichier html" --text="Quel nom voulez-vous donner à vos fichiers HTML?"` | + | fichierSortie=$(zenity --entry --title="Choix du nom du fichier html" --text="Quel nom voulez-vous donner à vos fichiers HTML?") | 
| case $? in | case $? in | ||
| 0) | 0) | ||
| - | echo "$fichierSortie";; | + | #echo ${fichierSortie} | 
| + | ;; | ||
| 1) | 1) | ||
| echo "Aucun fichier sélectionné."; | echo "Aucun fichier sélectionné."; | ||
| - | exit;; | + | exit 2;; | 
| -1) | -1) | ||
| - | exit;; | + | exit 1;; | 
| esac | esac | ||
| #on génère le script que l'on lancera | #on génère le script que l'on lancera | ||
| - | echo "#!/bin/sh \n">/tmp/ligneCmdPdftohtml.sh | + | echo "#!/bin/bash">/tmp/ligneCmdPdftohtml.sh | 
| - | echo "pdftohtml -$options $fichierEntree $dossierSortie/$fichierSortie.html" >>/tmp/ligneCmdPdftohtml.sh | + | echo "pdftohtml${options} \"${fichierEntree}\" \"${dossierSortie}/${fichierSortie}.html\"" >>/tmp/ligneCmdPdftohtml.sh | 
| #le script pourra s'exécuter en tant que programme | #le script pourra s'exécuter en tant que programme | ||
| chmod u+x /tmp/ligneCmdPdftohtml.sh | chmod u+x /tmp/ligneCmdPdftohtml.sh | ||
| #lancement du script | #lancement du script | ||
| - | sh /tmp/ligneCmdPdftohtml.sh | + | sh /tmp/ligneCmdPdftohtml.sh 2>/dev/null | 
| - | #on supprime le script | + | #le script s'est bien execute ? | 
| - | rm -f /tmp/ligneCmdPdftohtml.sh | + | if test $? -eq 0 | 
| - | + | then | |
| - | #ouverture du dossier de sortie dans nautilus | + | #oui,on supprime le script | 
| - | nautilus $dossierSortie | + | rm -f /tmp/ligneCmdPdftohtml.sh | 
| + | #ouverture du dossier de sortie dans nautilus | ||
| + | nautilus "$dossierSortie" | ||
| + | else | ||
| + | #non | ||
| + | echo "Une erreur s'est produite" | ||
| + | exit 1 | ||
| + | fi | ||
| </code> | </code> | ||
| Ligne 113: | Ligne 143: | ||
| <code> chmod u+x zenity_pdftohtml.sh </code> | <code> chmod u+x zenity_pdftohtml.sh </code> | ||
| - | Vous pouvez ensuite lancer cette interface graphique en exécutant la commande : | + | Vous pouvez ensuite lancer cette interface graphique en exécutant la commande : | 
| <code>sh zenity_pdftohtml.sh</code> | <code>sh zenity_pdftohtml.sh</code> | ||
| ou en créer un raccourci personnalisé contenant le même code. | ou en créer un raccourci personnalisé contenant le même code. | ||
| - | ===== Utilisation en ligne de commande ===== | + | ===== Bug connu de l'interface graphique ===== | 
| - | La syntaxe générale est la suivante : | + | Ce script ne fonctionne pas si les noms de fichiers contiennent des caractères accentués. | 
| - | <code> pdftohtml [options] <PDF-file> <html-file> </code> | + | |
| - | Où //<PDF-file>// est à remplacer par l'emplacement du fichier pdf à convertir, | + | |
| - | où //<html-file>// est à remplacer par l'emplacement du fichier html et | + | |
| - | où //[options]// est à remplacer par aucune,une ou plusieurs des options. | + | |
| - | Voici la liste des principales options : | + | ===== Désinstallation ===== | 
| - | * **-q** : ne pas afficher les messages d'erreur | + | |
| - | * **-v** : afficher le copyright et les information de version | + | |
| - | * **-p** : échanger les lien .pdf avec .html | + | |
| - | * **-c** : générer des sorties complexes | + | |
| - | * **-i** : ignorer les images | + | |
| - | * **-noframes** : ne pas générer de cadres | + | |
| - | * **-stdout** : utiliser la sortie standard | + | |
| - | * **-xml** : sortie pour des post-traitements XML | + | |
| - | * **-hidden** : forcer l'extraction de texte caché | + | |
| - | * **-dev** : périphérique de sortie pour Ghostscript | + | |
| - | * **-nomerge : ne pas merger les paragraphes | + | |
| - | * **-nodrm** : écraser les paramètres DRM du document | + | |
| + | Pour désinstaller pdftohtml il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer le paquet ]] poppler-utils. | ||
| - | ===== Désinstallation ===== | ||
| - | Pour désinstaller pdftohtml il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer le paquet ]] poppler-utils. | ||
| Pour supprimer l'interface graphique il suffit d'effacer le fichier "//zenity_pdftohtml.sh//". | Pour supprimer l'interface graphique il suffit d'effacer le fichier "//zenity_pdftohtml.sh//". | ||
| ===== Liens ===== | ===== Liens ===== | ||
| - | (EN) Site officiel de PDFTOHTML : [[http://pdftohtml.sourceforge.net/]] | + | * (EN) Site officiel de PDFTOHTML : [[http://pdftohtml.sourceforge.net/]] | 
| - | //Créateur de la page : [[utilisateurs:mirage59]] | ||
| + | ---- | ||
| + | //Contributeurs : [[:utilisateurs:mirage59]]// | ||