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]]// |