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.

Poppler-utils est normalement installé par défaut toutefois si il ne l'est pas : Installez le paquet poppler-utils.

Il contient plusieurs utilitaires, dont celui qui nous intéresse : pdftohtml.

Vous trouverez une liste des autres utilitaires disponibles dans poppler-utils sur la page poppler-utils

La syntaxe générale est la suivante :

pdftohtml [options] <PDF-file> <html-file>

<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

J'ai (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).

#!/bin/bash
##########################################################
##            Interface Graphique pour pdftohtml        ##
##########################################################
#####                     mirage59                    ####
##########################################################
############### Script sous licence GPL V3 ###############
##########################################################

#affichage informatif
zenity  --warning --width=400 \
	--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."

#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 2;;
  -1)
	exit 1;;
esac

#checklist pour les différentes options
listeOptions=$(zenity  --list --checklist --width=450 --height=400 --separator=" -" \
	--title="Cochez les options souhaiter pour la conversion"\
	--column="Cochez" --column="Options" --column="Descriptions" \
	1 q "ne pas afficher les messages d'erreur" \
	1 v "afficher le copyright et les information de version" \
	1 p "échanger les liens .pdf avec .html" \
	1 c "générer des sorties complexes" \
	1 i "ignorer les images" \
	1 noframes "ne pas générer de cadres" \
	1 stdout "utiliser la sortie standard" \
	1 xml "sortie pour des post-traitements XML" \
	1 hidden "forcer l'extraction de texte caché" \
	1 dev "périphérique de sortie pour Ghostscript" \
	1 nomerge "ne pas merger les paragraphes" \
	1 nodrm "écraser les paramètres DRM du document")

options=" -"${listeOptions}

#sélection du dossier de sortie
dossierSortie=$(zenity --file-selection --directory --title="Sélectionnez le dossier où seront sauvegardé vos fichiers HTML")

case $? in
  0)
	#echo ${dossierSortie}
	;;
  1)
	echo "Aucun dossier sélectionné.";
	exit 2;;
  -1)
	exit 1;;
esac

#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?")
case $? in
  0)
    	#echo ${fichierSortie}
	;;
  1)
	echo "Aucun fichier sélectionné.";
	exit 2;;
  -1)
	exit 1;;
esac

#on génère le script que l'on lancera
echo "#!/bin/bash">/tmp/ligneCmdPdftohtml.sh
echo "pdftohtml${options} \"${fichierEntree}\" \"${dossierSortie}/${fichierSortie}.html\"" >>/tmp/ligneCmdPdftohtml.sh
#le script pourra s'exécuter en tant que programme
chmod u+x /tmp/ligneCmdPdftohtml.sh
#lancement du script
sh /tmp/ligneCmdPdftohtml.sh 2>/dev/null

#le script s'est bien execute ?
if test $? -eq 0
then
	#oui,on supprime le script
	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

Enregistrez ensuite ce fichier avec une extension ".sh".

je vous conseille de l'appeler : zenity_pdftohtml.sh et de le sauvegarder dans votre répertoire personnel (HOME)

Ouvrez ensuite le terminal et tapez la ligne suivante qui permettra au script de s'exécuter :

 chmod u+x zenity_pdftohtml.sh 

Vous pouvez ensuite lancer cette interface graphique en exécutant la commande :

sh zenity_pdftohtml.sh

ou en créer un raccourci personnalisé contenant le même code.

Ce script ne fonctionne pas si les noms de fichiers contiennent des caractères accentués.

Pour désinstaller pdftohtml il suffit de supprimer le paquet poppler-utils.

Pour supprimer l'interface graphique il suffit d'effacer le fichier "zenity_pdftohtml.sh".


Contributeurs : mirage59

  • pdftohtml.txt
  • Dernière modification: Le 28/09/2022, 20:53
  • par Amiralgaby