@@ -59,6 +59,7 @@ export class Image extends Shape implements IImage {
5959 targetSlideNumber : number ,
6060 ) : Promise < Image > {
6161 await this . prepare ( targetTemplate , targetSlideNumber ) ;
62+
6263 await this . setTargetElement ( ) ;
6364 await this . updateTargetElementRelId ( ) ;
6465
@@ -69,6 +70,19 @@ export class Image extends Shape implements IImage {
6970 return this ;
7071 }
7172
73+ async modifySvgRelation (
74+ targetTemplate : RootPresTemplate ,
75+ targetSlideNumber : number ,
76+ targetElement : XmlElement ,
77+ ) : Promise < Image > {
78+ await this . prepare ( targetTemplate , targetSlideNumber ) ;
79+
80+ this . targetElement = targetElement ;
81+ await this . updateTargetElementRelId ( ) ;
82+
83+ return this ;
84+ }
85+
7286 async append (
7387 targetTemplate : RootPresTemplate ,
7488 targetSlideNumber : number ,
@@ -81,7 +95,10 @@ export class Image extends Shape implements IImage {
8195
8296 this . applyImageCallbacks ( ) ;
8397
84- if ( this . hasSvgRelation ( ) ) {
98+ /*
99+ * SVG images require a corresponding PNG image.
100+ */
101+ if ( this . hasSvgBlipRelation ( ) ) {
85102 const relsPath = `ppt/slides/_rels/slide${ this . sourceSlideNumber } .xml.rels` ;
86103 const target = await XmlHelper . getTargetByRelId (
87104 this . sourceArchive ,
@@ -98,7 +115,11 @@ export class Image extends Shape implements IImage {
98115 type : ElementType . Image ,
99116 } ,
100117 this . targetType ,
101- ) . modify ( targetTemplate , targetSlideNumber ) ;
118+ ) . modifySvgRelation (
119+ targetTemplate ,
120+ targetSlideNumber ,
121+ this . targetElement ,
122+ ) ;
102123 }
103124
104125 return this ;
@@ -182,7 +203,7 @@ export class Image extends Shape implements IImage {
182203 ) ;
183204 }
184205
185- hasSvgRelation ( ) : boolean {
206+ hasSvgBlipRelation ( ) : boolean {
186207 return this . targetElement . getElementsByTagName ( 'asvg:svgBlip' ) . length > 0 ;
187208 }
188209
0 commit comments