【发布时间】:2017-05-25 12:19:23
【问题描述】:
我正在尝试在 xml 文档中嵌入图像并将文档保存为单个文档,并且能够像 microsoft word 一样分发文件,其中文本和图像都保存在单个 docx 文件中。
它是如何在 Microsoft Word 中完成的。他们使用 base64 编码吗?
【问题讨论】:
-
一个 docx 其实是一个 zip 文件,把它重命名为 .zip 看看。它还包含 XML 内容。
我正在尝试在 xml 文档中嵌入图像并将文档保存为单个文档,并且能够像 microsoft word 一样分发文件,其中文本和图像都保存在单个 docx 文件中。
它是如何在 Microsoft Word 中完成的。他们使用 base64 编码吗?
【问题讨论】:
手工很难做到,看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:drawing>
<wp:inline distT="0" distB="0" distL="0" distR="0">
<wp:extent cx="5943600" cy="3717290"/>
<wp:docPr id="1" name="Picture 0" descr="vlcsnap-325726.png"/>
<a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="0" name="myImage.png"/>
<pic:cNvPicPr/>
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId4"/>
<a:stretch>
<a:fillRect/>
</a:stretch>
</pic:blipFill>
<pic:spPr>
<a:xfrm>
<a:off x="0" y="0"/>
<a:ext cx="5943600" cy="3717290"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</pic:spPr>
</pic:pic>
</a:graphicData>
</a:graphic>
</wp:inline>
</w:drawing>
</w:r>
</w:p>
</w:body>
</w:document>
你不想那样做。我建议使用像OpenXML SDK 2.0(微软)或OpenXML4J(尤其是Java)这样的外部库。它们将使您的生活更轻松
【讨论】: