Bonjour à tous,
je souhaite ajouter un fichier XML de données (fichier personnalisé) à mon fichier .docx
Je suis presque arrivé à faire ce que je voulais, mais je rencontre un dernier (enfin j'espère).
En parcourant plusieurs sites, j'ai fini par comprendre qu'il fallait ajouter (notamment) le fichier /customXml/item1.xml et le /customXml/itemProps1.xml
Pour ajouter le fichier /customXml/item1.xml qui contient mes données, j'ai procédé comme ceci
Le fichier /customXml/itemProps1.xml doit être de la forme suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private static void addCustomXmlPart(OPCPackage opcPackage, String xml) throws IOException, InvalidFormatException, org.apache.poi.openxml4j.exceptions.InvalidFormatException { PackagePartName partName = PackagingURIHelper.createPartName("/customXml/item1.xml"); opcPackage.getParts(); PackagePart part = opcPackage.createPart(partName, ContentTypes.CUSTOM_XML_PART); OutputStream outputStream = part.getOutputStream(); outputStream.write(xml.getBytes()); outputStream.close(); part.addRelationship(partName, TargetMode.INTERNAL, PackageRelationshipTypes.CUSTOM_XML); }
Le problème, c'est que je ne trouve pas de méthode dans POI pour générer la clé unique (datastoreItem)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <?xml version="1.0" encoding="UTF-8" standalone="true"?> <ns1:datastoreItem ns1:itemID="{43c3fce5-a408-416d-b13f-3a332456c532}" xmlns:ns1="http://schemas.openxmlformats.org/officeDocument/2006/customXml"/>
J'ai trouvé des sites qui expliquent comment faire avec doc4j
Mais avec POI, comment doit-on faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CustomXmlDataStoragePropertiesPart part = new CustomXmlDataStoragePropertiesPart(); org.docx4j.customXmlProperties.ObjectFactory of = new org.docx4j.customXmlProperties.ObjectFactory(); DatastoreItem dsi = of.createDatastoreItem();
D'avance merci.
Partager