Il est fort possible que la méthode utilisée ne sois plus reproduisible car les dépendances ne sont plus disponibles aux versions utilisées.
Cette méthode a été très utile pour convertir des fichiers complexes en pages HTML simplifiées pour affichier des documents légaux.
Le site qui utilisait cette méthode était pour l’Union des Artistes (UDA) pour les ententes collectives et l’engin de recherche des documents pour les membres. L’autre partie que j’ai été impliquée pour l'UDA était notamment l’écriture et l’architecture du HTML et le styling CSS pour l’ensemble du site.
Comment je valide et convertit des documents HTML trop chargés ou provenant de Microsoft Word en HTML valide et simplifié
integration outils techniques tutoriels php - 📁 programmation
Description
Cette procédure est faite optimiser la conversion document word en html, spécialement ceux qui sont généré avec beaucoup de «tagsoup» en en simplifier a sa plus simple expression HTML. Valide.
Exemple
Avant
Le HTML a les balises brisées à l'intérieur de chaque balise pour illustrer le poid et la répétition
<h2
class="Standard"
dir="ltr"
lang="fr-FR"
style="margin-top: 0; margin-bottom: 0; text-align: center;"
xml:lang="fr-FR"
>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>
TERMS AND CONDITIONS OF 1
</span>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>‐</span
>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>
YEAR OR 30
</span>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>‐</span
>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>
DAY ACCESS AND USE
</span>
</h2>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>OF THE SERVICE BY SUBSCRIBERS</span
>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>SECTION 1</span
>
<span
lang="en-CA"
style="font-weight: bold; font-size: 16.0px;"
xml:lang="en-CA"
>
PURPOSE OF THE SERVICE
</span>
Après
<h2>TERMS AND CONDITIONS OF 1 ‐ YEAR OR 30 ‐ DAY ACCESS AND USE</h2>
<span>OF THE SERVICE BY SUBSCRIBERS SECTION 1 PURPOSE OF THE SERVICE</span>
Inspiration et pistes
-
Convertir de format document en ligne de commande De Microsoft Word 2000 vers du HTML. Pour ce faire, j’ai suivi la documentation d’UNOCONV.
-
Utiliser open office en mode "headless" (en le transformant en service) et y envoyer les documents pour conversion. (Renoir de : l’article original sur StackOverflow a été supprimé par l’auteur. Probablement que cette méthode n’est plus valide.)
Procédure
Version abstraite
- Utiliser Open Office (ou peu importe) pour exporter le document en HTML
- Purifier via
HTMLTidy
- Nettoyer les attributs inutiles avec la classe
htmLawed
Use cases
Document texte seulement
- Pas de formulaire, ni images, etc.
- Idéal pour un document légal, par exemple.
Étapes concrètes:
- A partir du fichier HTML généré exemple: Fichier appelé "
1.1.2.en.html
"
- Extraire le fichier
htmLawed.zip
(voir site officiel) qui contient la classe PHP que nous allons utiliser.
cd ~
mkdir htmlawed
mv htmLawed.zip htmlawed/
cd htmlawed
unzip htmLawed.zip
Passer au travers de la classe htmLawed
require('htmLawed.php');
$config = array('safe'=>1,'elements'=>'a,em,strong,p,ul,li,ol,h1,h2,h3,h4,h5,div,tr,td,table','deny_attribute'=>'* -title -href');
$out = htmLawed(file_get_contents('in.html'), $config);
echo $out;
Rouler le script. Déplacer le fichier a utiliser, puis exécuter le script pour
en générer dans out.html
cp ~/1.1.2.en.tidy.html in.html
php cleanup.php > out.html
Rouler Tidy. Normaliser le fichier "1.1.2.en.html
", Nettoyer les balises,
minuscules, etc
tidy \
--drop-font-tags 1 \
--logical-emphasis 1 \
--clean 1 \
--merge-spans 1 \
--show-body-only 1 \
--output-xhtml 1 \
--word-2000 1 \
--indent "auto" \
--char-encoding "utf8" \
--indent-spaces "2" \
--wrap "90" \
1.1.2.en.html > 1.1.2.en.tidy.html
tada!
Précautions
Ordre d'exécution des tâches
Remarque:
J'ai essayé de passer Tidy avant htmLawed et j'ai réalisé que le nettoyage de htmLawed est assez drastique et que Tidy rend le code plus propre. Sans oublier que htmLawed peut générer des balises vides que Tidy va éliminer.
Références
- Options Tidy
- htmLawed Documentation a PHP Html purification Class