我想创建一个可以在 Word 中打开的 XML 文件(使用 Word 2003 XML)。我正在尝试将单个图像嵌入到文档中,如下所示:
![在此处输入图像描述][1]
http://shrani.najdi.si/?3J/Sm/2YDPWrKn/win.png
我在外部网站上发布了图像,因为我不被允许在这里上传。
问题是,如果我使用类似以下的内容(带有相应的参考),这将起作用:
<pkg:part pkg:name="/word/media/image1.png" pkg:contentType="image/png" pkg:compression="store">
<pkg:binaryData>iVBORw0KGgoAAAANSUhEUgAAAdoAAAECCAIAAADW64G6AAAAAXNSR0IArs4c6QAAPu1JREFUeF7t</pkg:binaryData>
</pkg:part>
但是由于我正在从以下位置解析数据:自定义数据 --> XML --> XSLT --> Word,所以我不想使用这种方法,因为它需要我更改 XML 文档中各个位置的引用,这是做不到的。
我想使用以下方法,但它不起作用:
<w:p>
<w:r>
<w:pict>
<w:binData w:name="02000001.jpg">iVBORw0KGgoAAAANSUhEUgAAAdoAAAECCAIAAADW64G6AAAAAXNSR0IArs4c6QAAPu1JREFUeF7t</w:binData>
<v:shape id="_x0000_i1025" style="width:100%;height:auto" type="#_x0000_t75">
<v:imagedata src="02000001.jpg"></v:imagedata>
</v:shape>
</w:pict>
</w:r>
</w:p>
这里有问题的行是“”行,这导致了混乱。尝试使用 Word/Oxygen 打开该文档时,出现以下错误:
There is no schema or DTD associated with the document. You can create an association either with the Associate Schema action or configuring in the Options the Preferences/Document Type Association list, or by creating a Validation Scenario.
如果我删除该行,文档将正常打开,但图片未显示。如您所见,我正在尝试在 binData 中使用图像的 base64 表示。
我实际上想要做的是处理 Dradis 文档,它看起来像这样:
#[Red]#
This is my new vulnerability.
!http://www.google.com/.../test.png!
我直接将它输入到 Dradis 中,所以上面实际上是文本的明文表示。我在 Dradis 中编写了一些进一步的代码,为我执行以下操作(在将数据发送到 XSLT 转换之前):
#[Red]#
This is my new vulnerability.
#[Picture]#
iVBORw0KGgoAAAANSUhEUgAAAdoAAAECCAIAAADW64G6AAAAAXNSR0IArs4c6QAAPu1JREFUeF7t
您可以看到在该链接上可访问的实际图片已下载,并且图片的 base64 表示已插入明文而不是链接中。
接下来发生的事情是将此数据发送到 XSLT,该 XSLT 必须创建可以用 Word 成功打开的 XML 文档。在这里,我必须找到 #[Picture]# 元素,解析它们,然后插入我正在尝试使用的 XML(我发布此消息的实际问题)。
所以我的问题是:如何将上述 XML 代码(不起作用的代码)更改为将在 Word 中成功打开并显示内部黑色图像的表示形式?
Ps:我不确定为什么架构错误,我正在使用以下架构:
<pkg:part pkg:name="/word/document.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml">
<pkg:xmlData>
<w:document mc:Ignorable="w14 wp14"
xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing"
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"
xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"
xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk"
xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"
xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"
>
<w:body>
如果您有任何想法,请告诉我。