您的位置 首页 > 职场江湖

【word中放入照片怎么弄】如何插入Word系列图片

.如何在Net word中插入图片

要使用代码将图片插入word,首先必须了解图片在word中以何种结构存在。让我们一起分析一下Word的图片结构。

图片如何存在于主文件中

在Document.xml中,文件以xml节点属性的形式显示下图1-1所示节点的图片。

图1-1

图片物理结构

Word的图片物理文件以什么结构存在?照片位于word/media路径下。换句话说,word本身存储Word的物理文件。如下图1-2所示。

图片如何与文档主题结构相关联?

加载Word时,不查找物理文件,而是查找与主文件相关联的关系文件(Document.xml.rels)(请参见下图1-3,其中Id=")

Target='/media/image.jpg '是需要关联的大象路径。

Id='R791d0621ac094c72 '是图片的唯一主键。也就是说,与主键相关联的主键。文件包含Id为“R791d0621ac094c72”的节点属性。主键节点属性如下:

a : blip xmlns : r='r : embed=' r 791d 0621 AC 094 c 72 ' c state=' print '

这使您可以将我的物理路径与主文件相关联。

图1-3

加载Word时,图片加载顺序为:document . XMLdocument . XML . relsmedia

首先加载document.xml中的段落属性,加载连续文本,加载w:drawing标签,查找drawing的唯一id,从document.xml.rels加载Relationship属性,然后查找word/。代码在word中插入图片

如果知道Word的图片结构,就可以根据word定义的规则插入图片。示例代码如下

string filename=@ ' hello word . docx '

using(wordprocessingdocument wd=word(文件名,word))

{

varmain docx=wd . addmaindocumentpart();

var docx=new Documen();

MainDocx。Document=docx

var body=main docx . document . appendchild(new documen());

var imgPathList=new Liststring();

ImgPa(@ ' Te;);//更改为自己的本地照片路径

ImgPa(@ ' Te;);//更改为自己的本地照片路径

ImgPa(@ ' Te;);//更改为自己的本地照片路径

foreach(var img filename in img path list)

{

image part image part=maindocx . addimagepar);

using(filestream stream=new filestream(img filename、filemode.open))

{

ImagePart。FeedData(流);

}

#region添加图片

Var element=

New Drawing(

New Documen(

Newdocumen () {CX=3672000,cy=2134800},

New Documen()

{

LeftEdge=0L,

TopEdge=0L,

RightEdge=0L,

BottomEdge=0L

},

New Documen()

{

Id=(UInt32Value)1U、

Name='Picture1 '

标题=“投标照片”

},

New Documen(

new documen(){ nochangeaspect=true })、

New Documen(

New DocumenData(

New Documen(

New Documen(

New Documen()

{

Id=(UInt32Value)0U,

Name='New Bitmap Image.jpg '

},

New Documen()、

New Documen(

New Documen(

New DocumenExtensionList(

New DocumenExtension()

{

Uri=

{ 28 a 0092 b-c 50 c-407 e-a 947-70 e 740481 c 1 c 1 c }’

})

)。

{

embed=maindocx . getidofpart(imagepart),

CompressionState=

DocumenCompressionValues。Print

},

New Documen(

New Documen())、

New Documen(

New Documen(

New Documen() {X=0L,Y=0L},

Newdocumen () {CX=3672000,cy=2134800})、

New Documen(

New Documen()

)。

{Preset=Documen})

)。

{ Uri='})

)。

{

distancefromtop=(uint 32 value)0u,

distancefrombottom=(uint 32 value)0 u,

distancefromleft=(uint 32 value)0 u,

distancefromright=(uint 32 value)0 u,

EditId='50D07946 '

});

body . appendchild(new paragraph(new run(element)));

#endregion

}

MainDocx。document . Save();

Proce(文件名);

}

结果如图1-4所示。

图1-4

注:您可以直接运行代码。

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐