PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → PDF valide en PDF/A-1
PDF valide en PDF/A-1
Débuté par Roumeg, 23 mar. 2026 19:21 - 6 réponses
Membre enregistré
163 messages
Posté le 23 mars 2026 - 19:21
Bonjour,
je ne veux pas polluer le post sur factur-x car mon cas est un peu différent; donc j'en crée un nouveau.

Je voulais générer mes factures en factur-x mais sans passer par des composants. sur la base d'une gestion commerciale en 26, j'ai donc réussi à générer un xml (de type CII) que j'ai ensuite validé par l'outil mustang. Après de nombreuses tentatives mon xml a bien été validé.
Donc j'en suis à combiner ce xml avec le pdf de ma facture.
Et je suis coincé car je n'arrive pas à générer un PDF compatible PDF/A. J'ai même fait un test avec une vs 2024 et j'ai la même chose.
J'ai toujours le message du valideur : File is not a valid PDF/A-1 input file
la raison est que c'est un problème de police embarquées et en Unicode
Could not read embedded OTF for font Arial,BoldItalic
The font has no glyphs
Là il parle de Arial, mais un test avec un pdf bidon et une phrase en courier new donne le même type d'erreur
Donc ma question : comment imprimer en windev un pdf correct en PDF/A-1 ?
Ceci est mon dernier code en 2024
gprivaterep est une chaîne="c:\Gourou26\PDF"
refpiece est une chaîne="FC1632"
HostPiece,versionPDF sont des chaînes
// sauvegarde les pièces sur le disque en local
repFactX est une chaîne
repFactX=ComplèteRep(gprivaterep)+"factx\"
SI PAS fRepExiste(repFactX) ALORS fRepCrée(repFactX)

ficXML est une chaîne
xPiece est une chaîne
ficXML = repFactX+"FACT_"+refpiece+".xml"


// je regénère le pdf
HostPiece = "FACT_"+refpiece+".pdf"
xPiece = repFactX+"FACTX_"+refpiece+".pdf"
SI fFichierExiste(xPiece) ALORS fSupprime(xPiece)

versionPDF = repFactX+HostPiece
iDestination(iPDF, versionPDF)
iParamètrePDF(iPDFA1b,"","",iPDFUnicode)
//iInitRequêteEtat("FACTURE",IDPIECE)
iImprimeEtat(ETAT_PDF1A) // ça c'est un etat bidon avec une ligne

cmdCombine est une chaîne

cmdCombine=[
cmd /c java -jar "%4Mustang-CLI-2.22.0.jar" --action combine --source "%1" --source-xml "%2" --out "%3" --format fx --version 1 --profile E --attachments ""
]

cmdCombine=ChaîneConstruit(cmdCombine,versionPDF,ficXML,xPiece,repFactX)


je vous remercie par avance de vos éclaircissements.
Membre enregistré
4 357 messages
Posté le 23 mars 2026 - 19:55
Bonjour,
Je te renvoies à la réponse de Boris dans le post https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/279044-factur-conformite-pdf-norme-pdf-279247/read.awp.
A priori pour lui ça fonctionne

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Membre enregistré
183 messages
Posté le 23 mars 2026 - 20:55
Voroltinquo a écrit :
Bonjour,
Je te renvoies à la réponse de Boris dans le post https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/279044-factur-conformite-pdf-norme-pdf-279247/read.awp.
A priori pour lui ça fonctionne

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM


Bonsoir,

Pour du factur'x c'est pas plutôt du pdf/a-3b ?
Membre enregistré
4 357 messages
Posté le 24 mars 2026 - 06:21
BP a écrit :
Pour du factur'x c'est pas plutôt du pdf/a-3b ?

Dans la mesure où contrairement au PDF/A1 le PDF/A3 intègre les fichiers tels que les fichiers XML (obligatoire dans factur-x) la réponse est oui.
On peut utiliser indifféremment le PDF/A-3a ou b. Toutefois, les exigences d'accessibilité (balises sémantiques, structure logique du document,) sont inutiles dans Factur-x. On se contente donc souvent d'un PDF/A-3b, en aucun cas d'un PDF/A-1.
Quoiqu'il en soit, le problème d'espace insécable reste le même dans les 2 formats.
Enfin, il me semble plus logique d'appeler iParamètrePDF avant le iDestination, de même il est préférable d'utiliser iPDFGénérique à iPDF (cf doc Windev)

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Message modifié, 24 mars 2026 - 06:35
Membre enregistré
163 messages
Posté le 24 mars 2026 - 08:58
Bonjour à tous
je vous remercie de vos réponses et je vais suivre vos recommandations ainsi que les liens.
Pour la question du pdfa1 et pdf a3, en fait je fais d'abord un pdf a/1 puis c'est la commande combine de mustang qui me créera le pdf a/3 avec mon xml conforme CII.
Ce qui m'inquiète c'est cette réserve concernant les polices du valideur. Après je me demande aussi si mustang n'est pas plus exigeant que les plateformes PDP.

Merci encore pour vos aides
Membre enregistré
163 messages
Posté le 25 mars 2026 - 14:57
Roumeg a écrit :
Bonjour à tous
je vous remercie de vos réponses et je vais suivre vos recommandations ainsi que les liens.
Pour la question du pdfa1 et pdf a3, en fait je fais d'abord un pdf a/1 puis c'est la commande combine de mustang qui me créera le pdf a/3 avec mon xml conforme CII.
Ce qui m'inquiète c'est cette réserve concernant les polices du valideur. Après je me demande aussi si mustang n'est pas plus exigeant que les plateformes PDP.

Merci encore pour vos aides


Bonjour
après avoir perdu beaucoup de temps sur la validité des pdf et des essais avec ghostscript, mustang, pdf24. il me restait toujours des problèmes de fonts ou de pdf/A3.
En fait si on combine un pdf windev avec un xml en utilisant mustang, voire pdf24 on a des problèmes de font.
Donc il faut être en full windev mais tout est question d'ordre et cela ne s'improvise pas.

Voici le code qui a marché pour moi et qui peut être pourra servir à d'autres (profil EN 16931)

j'ai généré le xml "à l'os" sans utiliser la classe fournie par pcsoft
je lui rajoute les paramètres XMP et surtout le xml doit bien s'appeler factur-x.xml


soit sMeta = [

EN 16931
factur-x.xml
INVOICE
1.0


xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">




Factur-X PDFA Extension Schema
urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#
fx



DocumentFileName
Text
external
name of the embedded XML invoice file


DocumentType
Text
external
INVOICE


Version
Text
external
The actual version of the Factur-X XML schema


ConformanceLevel
Text
external
The conformance level of the embedded Factur-X data







]

// je génère la version PDF par Windev
iParamètrePDF(iPDFA3b)
iDestination(iPDFGénérique, wdPDF)
iDéfinitXMPSupplémentaire(sMeta)
iAjoutePièceJointe(ficXML,"factur-x.xml",typeMimeTexteXML)
iInitRequêteEtat("FACTUREX",IDPIECE)
iImprimeEtat(FACTUREX)


j'ai mis au point ce code en windev2024 mais je l'ai porté aussi sur un projet 26 et ça marche aussi.

encore merci à tous ceux qui m'ont mis sur la bonne voie
Membre enregistré
163 messages
Posté le 25 mars 2026 - 15:01
heu ...
ma zone meta à morflé lors de la copie de code ???? Toujours aussi pénible ce forum depuis l'abandon de usenet
je reessaie de copier le contenu

<rdf:Description rdf:about="" xmlns:fx="urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#">
<fx:ConformanceLevel>EN 16931</fx:ConformanceLevel>
<fx:DocumentFileName>factur-x.xml</fx:DocumentFileName>
<fx:DocumentType>INVOICE</fx:DocumentType>
<fx:Version>1.0</fx:Version>
</rdf:Description>

<rdf:Description rdf:about=""
xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">

<pdfaExtension:schemas>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
<pdfaSchema:schema>Factur-X PDFA Extension Schema</pdfaSchema:schema>
<pdfaSchema:namespaceURI>urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#</pdfaSchema:namespaceURI>
<pdfaSchema:prefix>fx</pdfaSchema:prefix>
<pdfaSchema:property>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>DocumentFileName</pdfaProperty:name>
<pdfaProperty:valueType>Text</pdfaProperty:valueType>
<pdfaProperty:category>external</pdfaProperty:category>
<pdfaProperty:description>name of the embedded XML invoice file</pdfaProperty:description>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>DocumentType</pdfaProperty:name>
<pdfaProperty:valueType>Text</pdfaProperty:valueType>
<pdfaProperty:category>external</pdfaProperty:category>
<pdfaProperty:description>INVOICE</pdfaProperty:description>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>Version</pdfaProperty:name>
<pdfaProperty:valueType>Text</pdfaProperty:valueType>
<pdfaProperty:category>external</pdfaProperty:category>
<pdfaProperty:description>The actual version of the Factur-X XML schema</pdfaProperty:description>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>ConformanceLevel</pdfaProperty:name>
<pdfaProperty:valueType>Text</pdfaProperty:valueType>
<pdfaProperty:category>external</pdfaProperty:category>
<pdfaProperty:description>The conformance level of the embedded Factur-X data</pdfaProperty:description>
</rdf:li>
</rdf:Seq>
</pdfaSchema:property>
</rdf:li>
</rdf:Bag>
</pdfaExtension:schemas>
</rdf:Description>