Bonjour à tous,

Je réalise actuellement un export automatique en powerpoint.

J'ouvre mon template "template2.pptx", le duplique, le modifie et l'enregistre en "result.pptx". En fonction d'une textbox que le template contient, je détermine une action à réaliser comme insérer une image dans le slide.

Malheureusement, j'ai l'erreur "There was an error accessing "E:\TEST_EXPORT\PPTX\result.pptx" ". Impossible d'ouvrir le doc avec Powerpoint.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
 
Dim relationShipId As String = ""
relationShipId = "rId" + (s.Elements(Of DocumentFormat.OpenXml.Presentation.Picture)().Count + 12).ToString
 
Dim imgPart As ImagePart = slp.AddImagePart(ImagePartType.Png, relationShipId)
Dim fs As FileStream = New FileStream("E:\TEST_EXPORT\PPTX\image1.png", FileMode.Open)
imgPart.FeedData(fs)
fs.Close()
 
 
'<p:pic>
Dim pic As DocumentFormat.OpenXml.Presentation.Picture = _
	New DocumentFormat.OpenXml.Presentation.Picture()
 
s.Save(slp)
 
'<p:pic><p:BlipFill>
Dim bf As DocumentFormat.OpenXml.Presentation.BlipFill = _
	New DocumentFormat.OpenXml.Presentation.BlipFill()
 
Dim blip As Blip = New Blip()
blip.Embed = relationShipId
 
Dim srcRect As SourceRectangle
srcRect = New SourceRectangle()
bf.Append(srcRect)
 
Dim stretch As Stretch = New Stretch()
 
Dim fillRect As FillRectangle = New FillRectangle()
 
stretch.Append(fillRect)
 
bf.Append(blip)
bf.Append(stretch)
 
 
'BLIP EXTENSION LIST ???
 
pic.Append(bf)
 
 
'Shape Properties
 
'Noeud ShapeProperties
 
Dim spPr As DocumentFormat.OpenXml.Presentation.ShapeProperties = _
	New DocumentFormat.OpenXml.Presentation.ShapeProperties()
 
'Noeud ShapeProperties > Transform2D
Dim aXfrm As DocumentFormat.OpenXml.Drawing.Transform2D = _
	New DocumentFormat.OpenXml.Drawing.Transform2D()
 
Dim off As DocumentFormat.OpenXml.Drawing.Offset = _
	New DocumentFormat.OpenXml.Drawing.Offset()
off.X = 1485900 '1554691
off.Y = 1385888 '1600200
 
Dim ext As DocumentFormat.OpenXml.Drawing.Extents = _
	New DocumentFormat.OpenXml.Drawing.Extents()
 
ext.Cx = 6172200 '6034617 '(img.Width / img.HorizontalResolution) * 914400L
ext.Cy = 4086225 '4525963 '(img.Height / img.VerticalResolution) * 914400L
 
aXfrm.Append(off)
aXfrm.Append(ext)
 
'Noeud ShapeProperties > PresetGeometry
Dim prstGeom As DocumentFormat.OpenXml.Drawing.PresetGeometry = _
	New DocumentFormat.OpenXml.Drawing.PresetGeometry()
prstGeom.Preset = ShapeTypeValues.Rectangle
 
Dim avLst As DocumentFormat.OpenXml.Drawing.AdjustValueList = _
	New DocumentFormat.OpenXml.Drawing.AdjustValueList()
 
 
prstGeom.Append(avLst)
 
 
Dim nofill As NoFill
nofill = New NoFill()
 
spPr.Append(nofill)
 
spPr.Append(aXfrm)
 
spPr.Append(prstGeom)
 
pic.Append(spPr)
 
'Fin Noeud ShapeProperties
 
 
'Noeud(NonVisualPictureProperties)
Dim nvPicPr As DocumentFormat.OpenXml.Presentation.NonVisualPictureProperties = _
	New DocumentFormat.OpenXml.Presentation.NonVisualPictureProperties()
 
Dim nvDraPr As DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties = _
	New DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties()
nvDraPr.Id = "3074"
nvDraPr.Name = "Picture 2"
nvDraPr.Description = objectId
 
Dim nvPicDraPr As DocumentFormat.OpenXml.Presentation.NonVisualPictureDrawingProperties = _
	New DocumentFormat.OpenXml.Presentation.NonVisualPictureDrawingProperties()
 
Dim picLocks As DocumentFormat.OpenXml.Drawing.PictureLocks
picLocks = New DocumentFormat.OpenXml.Drawing.PictureLocks()
picLocks.NoChangeAspect = True
picLocks.NoChangeArrowheads = True
 
nvPicDraPr.Append(picLocks)
 
Dim appNvDraPr As DocumentFormat.OpenXml.Presentation.ApplicationNonVisualDrawingProperties = _
	New DocumentFormat.OpenXml.Presentation.ApplicationNonVisualDrawingProperties
 
nvPicPr.Append(nvDraPr)
nvPicPr.Append(nvPicDraPr)
nvPicPr.Append(appNvDraPr)
 
pic.Append(nvPicPr)
 
 
'Fin Noeud NonVisualPictureProperties
 
'Ajout de la picture au shapetree
spt.Append(pic)
 
'suppression du slide part contenant la textbox
sp.Remove()
Mon OpenXmlValidator, lui, ne me détecte pas d'erreur ???