Microsoft 365 Conversion de PDF au format XML unicode UTF 8

maguie

XLDnaute Junior
Bonjour
J'aurais une petite question voir deux si la première n'est pas résolue
J'importe des fichiers pdf d'un site web et je les convertis avec Onipage au format XML. Le souci c'est que le format XML converti à un unicode UTF 16 et j'aurais souhaité qu'il soit avec un unicode UTF 8.
Peut-on sur windows 2019 mettre une option par défaut avec un UTF 8 au lieu de 16. Sinon existe une macro qui peut convertir tous les fichiers d'un répertoire au format XML
J'utilise également Adobe qui met parfaitement le format PDF au format XML UTF 8 le souci c'est qu'il faut convertir fichier par fichier et cela consomme énormément de temps;
Par avance merci
 

Hasco

XLDnaute Barbatruc
Bonjour,

Dans le module du fichier joint vous trouverez la macro ConvertirFichiers à adapter à votre cas ainsi qu'une macro de préparation et une d'enregistrement du document.

Mettez le fichier dans le même répertoire que vos fichiers utf-16
Important :
1 - La macro cherche tous les fichiers dont le nom se termine par "utf-16.xml"
je suppose que les noms de vos fichiers ne terminent pas de la sorte aussi changez le masque de recherche dans la ligne suivante :
fichier = Dir(Chemin & "*utf-16.xml",
Par (exemple)
fichier = Dir(Chemin & "*.xml")
pour chercher tous les fichiers .xml du répertoire

2 - La macro conserve l'original et enregistre le nouveau fichier en lui adjoignant le suffixe "-utf-8"
Si vous ne voulez pas conserver l'original (je ne vous le conseille pas) enregistrez le fichier sous le même nom.

3- La macro modifie à l'intérieur du fichier la première ligne (processinginstruction) qui peut dans vos fichiers ressembler à
<?xml version="1.0" encoding="utf-16" standalone="yes"?>
pour
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
Vérifiez si cette 'processinginstruction' est dans vos fichiers. Eventuellement faîtes vos modifications dans la procédure 'PreparerXmlDoc'

4 - Elle inscrit le nom du fichier original et du fichier convertit en colonnes A et B d'une feuille nommée 'Feuil1' (Eventuellement, changez le nom pour une feuille du classeur qui contiendra la macro )

5 - Veillez dans Outils/Références de l'éditeur de code (VBE) que la référence à la bibliothèque 'Microsoft xml, v6.0' soit cochée.

VB:
Sub ConvertirFichiers()
 Dim fichier As String, fichier2 As String, Chemin As String
 Dim xmlDoc As MSXML2.DOMDocument60
 
 Chemin = ThisWorkbook.Path & Application.PathSeparator
 '
 ' Premier fichie xml du répertoire
 fichier = Dir(Chemin & "*utf-16.xml")
 
 Do While fichier <> ""
    '
    ' initialisation du document xml et chargement
    Set xmlDoc = New MSXML2.DOMDocument60
    xmlDoc.Load (fichier)
    '
    ' nom du fichier convertit et traitement
    fichier2 = Chemin & Replace(fichier, ".xml", "-utf-8.xml")
    PreparerXmlDoc xmlDoc
    Enregistrer xmlDoc, fichier2
    '
    ' libérer la mémoire
    Set xmlDoc = Nothing
    '
    ' inscrire dans la feuille les informations idoines
    ThisWorkbook.Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 2) = Array(fichier, fichier2)
    '
    ' passer au fichier suivant
    fichier = Dir()
 Loop

End Sub

Je crois que je n'ai rien oublié !? :rolleyes:

P.S. cette macro a correctement fonctionnée sur des fichiers xml sans caractères extravagants, je ne sais pas si elle serait efficace sur des fichiers avec d'autres caractères que ceux l'alphabet européens

cordialement
 

Pièces jointes

  • utf-16-8.xlsm
    24.8 KB · Affichages: 1
Dernière édition:

maguie

XLDnaute Junior
Re, une version Acrobat améliorable
Bonjour
J'aurais une autre petite question
J'aurais souhaité télécharger des fichiers pdf via un site WEB TESE URSSAF.
La procédure serait la suivante : Sur le site TESE se connecter avec identifiant et mot de passe, interagir via le bouton édition puis via une liste déroulante sélectionner l'option bulletin de salaire et télécharger les pdf. J'ai tenté plusieurs macros mais en vain
Si vous avez une idée?
Merci beaucoup
 

Discussions similaires

Statistiques des forums

Discussions
290 754
Messages
1 910 207
Membres
176 538
dernier inscrit
Charlydebutant
Haut Bas