4

我想创建一个可以在 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>

如果您有任何想法,请告诉我。

4

0 回答 0