Ms word 在Word中插入图像

Ms word 在Word中插入图像,ms-word,office-js,Ms Word,Office Js,我试图在word文档中插入生成的二维码图像,但图像显示不正确: 我的代码: 函数插入图像{ Word.runfunction上下文{ $'output'.qrcode{ text:$txtData.val, 渲染:画布, 背景:ffffff, 前景:000000, 宽度:150, 身高:150 }; 变量画布=$‘输出画布’; console.logcanvas; var img=canvas.get0.toDataURLimage/png; $output.attrsrc,img;//在任务窗

我试图在word文档中插入生成的二维码图像,但图像显示不正确:

我的代码:

函数插入图像{ Word.runfunction上下文{ $'output'.qrcode{ text:$txtData.val, 渲染:画布, 背景:ffffff, 前景:000000, 宽度:150, 身高:150 }; 变量画布=$‘输出画布’; console.logcanvas; var img=canvas.get0.toDataURLimage/png; $output.attrsrc,img;//在任务窗格上生成二维码图像 var imgHtml=; //在文档中插入QR图像的代码 Office.context.document.setSelectedDataAsyncimgHtml{ 强制类型:html }, 函数异步结果{ 如果asyncResult.status==失败{ writeError'Error:'+asyncResult.Error.message; } }; }; }
这里混合了两种不同的API约定。使用时不使用运行上下文,它仅在调用时使用。一般来说,我建议使用Word API,因为它更新了,而且总体上提供了更多的功能

也就是说,对于这个操作,您可以使用Word或共享API。我将提供这两方面的例子

还要注意.toDataURL返回一个包含base64映像的字符串。它不是一个纯粹的base64表示。您需要删除数据:image/png;base64,Word之前的前缀将能够呈现它

共享API:

因为您只是插入一个图像,所以我将使用Office.impressionType.image而不是Office.impressionType.Html:

Office.context.document.setSelectedDataAsyncimgHtml{ 强制类型:映像 }, 函数异步结果{ 如果asyncResult.status==失败{ writeError'Error:'+asyncResult.Error.message; } }; Word API:

API这个词包括一个方法。与setSelectedDataAsync一样,它将图像作为Base 64编码字符串传入:

Word.runfunction上下文{ context.document.body.insertFileFromBase64base64String,结束; 返回context.sync; }.catchfunction myError{ //处理错误 }
尝试将图像转换为base 64并将其添加为string@JohnHogan该图像已在中base64@KimBrandl完成了,现在成功了,你不知道我有多感激你,马克先生。