简体   繁体   English

如何从Base64编码图像在Word中插入图片

[英]How to insert picture in Word from Base64 encoded image

I have a Base64 encoded image that looks like the following: 我有一个Base64编码的图像,如下所示:

var base64SignatureImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAACJCAMAAAAR34S1AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAAA8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK/M6GAAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjb8jGPfAAALWklEQVR4Xu2da6Ojqg6GQVFREdb//7PdCSAXwUsLtp211/thH6fTaX0ghCTEHvL4n+gP9LfpD/S36Q/0t+kP9LfpDzSvhXcNQVHGF/vav6FnQFWPkJRpUUKYsH/xL+g6qGBAOUzK/vEhx4b09vof0FVQxSlpPaXRRP8d0ougM2La60BLM9irezWVL5JLoKoDo7XXsRb6DpfUk8Zeva4roEtL6Gyvtxo7e3GjJnAOxVN6AXShhG0Wp5cg0l7dJ0rGoXiJnIMC54HLEeVjfaYJlo1s7R9e1imoojvL02ig9uI+tRTsqXiRnoIyMtqrrJrbNxipB5qVOr0zUE6YvcqK379EzVfw0hVyAqoo2s2uFsrt1X1q9fK8G3Qke/sKaqb3by7KLB2eCVee0gloc2S4I2mPpruOJrM4eKnpHIPOBxMqWtLdz/nojL/lR5Z1Rcegw94KVTNEhaXWdEnUbG43r1GWXYNqBErC7w+JQGtAcjMoyayMpYOcm3Rvqi9wYmxquBk0CRYUFhna4W1lFGa94X60fVEnoKUuoFirTd0cAr4hHjiWsEMtbwZlny6VjNYXjcU3cgz6htzkWL0BVeWmdQy6fGqRKjFzrouqLdZWm8NU8ZKOQR9NebHmWcmZAx9lHDSYKjLuZ33hkJ+AYnb/Rqm5B6hmGG0wMtqv74G0MBA7AX00x3l3VWFYCZTB1HXEbNgNLNG5KYoZzkCXlrTviQ4gSSBNH8PYlbPokFsVed4zUAzCSH9/WCthNtl2GZoqCliu8bmixHjPQfEebg8cloZkLHMylquoHegSf3EBVFtVc+s+s1Nq7E2Rc1pzqBLbvQSKnuDW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";

Using the Word Automation API, how can I insert this as a picture in a Word document in memory? 使用Word Automation API,如何将其作为图片插入到内存中的Word文档中?

Preferably without use of system clipboard, or inserting from file. 最好不使用系统剪贴板或从文件插入。

The only possibility to insert a graphic from base64 is to use Word Open XML. 从base64插入图形的唯一可能性是使用Word Open XML。

In order to do this via the APIs you need to generate valid Word Open XML in the OPC flat-file format. 为了通过API进行此操作,您需要以OPC平面文件格式生成有效的Word Open XML。 This can be inserted into the document open in the Word application using the Range.InsertXML method. 可以使用Range.InsertXML方法将其插入Word应用程序中打开的文档中。

The easiest way to determine what the valid Word Open XML is, is to write it out to a string using the Range.WordOpenXML property. 确定有效的Word Open XML是最简单的方法是使用Range.WordOpenXML属性将其写出为字符串。 For example, insert the image as an InlineShape then Document.InlineShapes[index].Range.WordOpenXML; 例如,将图像插入为InlineShape,然后插入Document.InlineShapes[index].Range.WordOpenXML;

Or, using the the Immediate Window in the VBA editor and writing it to the current Selection in the document: 或者,使用VBA编辑器中的立即窗口并将其写入文档中的当前选择:

Selection.Text = ActiveDocument.InlineShapes(1).Range.WordOpenXML

then press Enter. 然后按Enter。

You should see the image as base64 in the XML. 您应该在XML中将图像视为base64。

This generates the full, complete Word Open XML and you can use it "as is", substituting the base64 (and possibly adjusting size properties). 这将生成完整的,完整的Word Open XML,您可以“按原样”使用它,替换base64(并可能调整大小属性)。 But you don't need all of that for InsertXML. 但是,InsertXML并不需要所有这些。 If you'd like to trim it down, or understand more about what's going on, this article explains what the minimum requirements are and provides more background information: 如果您想对其进行精简或了解更多有关最新情况的信息,本文将介绍最低要求,并提供更多背景信息:

https://msdn.microsoft.com/en-us/library/office/dn423225.aspx https://msdn.microsoft.com/zh-CN/library/office/dn423225.aspx

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM