4D Write Pro : Export au format PDF avec pièces jointes !

Comme vous le savez déjà, depuis 4D V20 R3, 4D Write Pro peut exporter au format PDF/A2 et PDF/A3 (BLOG). Outre la signature, la principale différence entre ces deux formats est que le format PDF/A3 peut inclure des pièces jointes. La bonne nouvelle, c’est que grâce à une nouvelle option d’exportation dans 4D Write Pro, il est possible, avec 4D V20 R4, d’inclure ces pièces jointes lors de l’exportation !

L’archivage à la puissance 10

La signature PDF/A signifie et garantit qu’un document de ce type sera lisible pendant des décennies, comme expliqué dans ce BLOG.
Le format PDF/A3 permet d’insérer des pièces jointes de tout type (Word, Excel, PDF, Photoshop, etc.) à l’intérieur du PDF/A3.
L’avantage est que vous pouvez stocker toutes les informations dont vous avez besoin sur un sujet spécifique dans un seul document.

Que votre domaine d’intérêt soit juridique, technique, médical, comptable, sécuritaire, bâtiment, travaux publics ou autre, si vous avez besoin d’archiver des documents contenant des pièces jointes, le format PDF/A3 est celui qu’il vous faut !

une ou plusieurs pièces jointes

La norme PDF/A3 permet d’insérer autant de pièces jointes que nécessaire. C’est pourquoi la nouvelle option d’exportation, .files, est de type collection.

Chaque élément de cette collection est un objet doté de quelques propriétés simples, dont certaines sont optionnelles.

La première et la plus évidente est la propriété .file de type 4D.File qui indique le fichier physique à inclure dans le PDF. Elle peut cependant être remplacée par la propriété .data de type text ou BLOB. Ces deux propriétés sont exclusives: si la propriété .data est présente, la propriété .file sera ignorée.

La propriété .description est facultative, tout comme la propriété .mimeType, qui peut généralement être déduite du contenu de .file ou de .data.

Enfin, .name est le nom du fichier qui sera extrait du PDF. Celui-ci n’est obligatoire que si la propriété .data a été utilisée et non la propriété .file. Sinon, par défaut, il portera le même nom que le fichier original défini dans .file!

un exemple de code simple

Le code ci-dessous montre comment insérer deux fichiers physiques ainsi qu’un simple texte envoyé comme données.

$options:={}  // empty object
$options[wk files]:=[]  // empty collection

// 1st file (based on .file)
$fileInfo:={}
$fileInfo.description:="RTF formated text"
$fileInfo.file:=File(Folder(fk data folder).path+"Alpha.rtf")
$options[wk files].push($fileInfo)

// 2nd file  (based on .file)
$fileInfo:={}
$fileInfo.description:="Png picture"
$fileInfo.file:=File(Folder(fk data folder).path+"Bravo.png")
$options[wk files].push($fileInfo)

// 3rd file (based on .data)
$fileInfo:={}
$fileInfo.name:="Charlie.txt"  // will be used for extraction
$fileInfo.description:="raw text sent as data"
$fileInfo.data:="This is some raw text to be included as enclosure in the PDF and to be extracted as 'Charlie.txt'"
$options[wk files].push($fileInfo)

WP EXPORT DOCUMENT($document; "exportWithEnclosures.pdf"; wk pdf; $options)

Remarque: Lorsque vous utilisez l’attribut wk files, la version du document PDF généré sera automatiquement PDF/A3 et l’option wk pdfa version, si elle est présente, sera ignorée.

Une fois exécuté, le document PDF se présentera comme suit (avec Adobe Acrobat Reader™)

Conclusion (et à suivre !)

Le fait de joindre des documents dans un seul fichier PDF/A3 vous permet de tirer pleinement parti des possibilités offertes par cette norme. Mais ce n’est pas tout ! Comme vous le verrez bientôt, elle permettra également de générer des factures électroniques en insérant un document XML en tant que premier fichier des pièces jointes ! Restez à l’écoute !

Roland Lannuzel
- Product Owner & 4D Expert - Après avoir étudié l'électronique, Roland s'est lancé dans l'informatique industrielle en tant que développeur et consultant, créant des solutions pour les clients avec une variété de bases de données et de technologies. À la fin des années 80, il est tombé amoureux de 4D et l'a utilisé pour écrire des applications commerciales, notamment des systèmes de comptabilité, de facturation et de messagerie électronique. Il a rejoint la société en 1997 et a contribué à la conception de spécifications, d'outils de test et de démonstrations, ainsi qu'à la formation et à la présentation de la communauté 4D lors de nombreuses conférences. Il continue à façonner activement l'avenir de 4D en définissant de nouvelles fonctionnalités et des outils de développement de bases de données.