C#保存image到word

qemng 2019-05-21 11:10:49
功能前提:做纸质的优惠券功能,自动生成一个二维码,把这个二维码保存到word文档中,然后给商家打印出来,用户需要的时候,商家就给用户一张。每张优惠券上的二维码是不一样的,只能用一次,由软件自动生成。
现在的问题是:图片的保存问题,功能是可以实现的,就是生成word的时候太慢了。现在的操作是先把word文档做成模板,然后往里面插入对应的图片和文字,图片插入的方式是软件将随机生成的字符串保存成一个image,然后存储的本地磁盘,再从本地磁盘里面将这个二维码图片导入到word里面,导入后,把本地保存的图片删除。如果是一个图片还好说,关键是有上千张图片需要这样做,每张都是不一样的,太占用时间了。有没有什么方式可以直接将image保存到word中去呢
...全文
219 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qemng 2019-05-22
  • 打赏
  • 举报
回复
找到原因了,一个</tr>写成/<tr>了
qemng 2019-05-22
  • 打赏
  • 举报
回复
应该所有的文字都在右侧,但是后面两行跑到下面去了
qemng 2019-05-22
  • 打赏
  • 举报
回复
引用 2 楼 by_封爱 的回复:
在这个需求中 doc扮演了什么角色? 也就是 预定义一堆文字+图片 扔到doc里面? 最终给客户,然后可以打印word 是吧? 那么我觉得你没必要用Word.. 因为你保存成为html或者doc对客户为了打印来说 ,没任何区别. 客户打开html或者是doc 最终都是查看一下 然后打印.. 所以我觉得这地方用html比doc合适.. 甚至 你可以在生成二维码的时候 把图片加工一下. 把文字都打到图片上. 最终给客户一个图片也即可... 当然如果你执意要使用Word.. 那么我推荐你使用aspose.words.. 我测试过插入图片(doc.insertimage("")) 好像没有你说的那么慢....
我现在改成生成html了,生成的时候出现一个样式的问题,html没怎么搞过,能帮看下什么情况吗? html代码如下: <head> <title>优惠券</title> <style type="text/css"> .style1{width: 132px;} .style2{width: 132px;} .style3{width: 132px;} </style> </head> <body> <script type="text/javascript" src="jquery.min.js" ></script> <script type="text/javascript" src="jquery.qrcode.js" ></script> <script type="text/javascript" src="qrcode.js" ></script> <table style="width:100%;" border="1"> <tr> <td class="style1" rowspan="5"> <div id='img1' style="height: 200px; width: 200px" /></td> <td> 折扣车辆</td> <td class="style1" rowspan="5"> <div id='img2' style="height: 200px; width: 200px" /></td> <td> 折扣车辆</td> <td class="style1" rowspan="5"> <div id='img3' style="height: 200px; width: 200px" /></td> <td> 折扣车辆</td> </tr> <tr> <td>  系统商家</td> <td> 系统商家</td> <td>  系统商家</td> /<tr> <tr> <td>  此车一券一车,多车无效</td> <td> 此车一券一车,多车无效</td> <td>  此车一券一车,多车无效</td> /<tr> <tr> <td>  请在有效期内使用</td> <td> 请在有效期内使用</td> <td>  请在有效期内使用</td> /<tr> <tr> <td>  编号:1</td> <td> 编号:2</td> <td>  编号:3</td> </tr> </table> <table style="width:100%;" border="1"> <tr> <td class="style1" rowspan="5"> <div id='img4' style="height: 200px; width: 200px" /></td> <td> 折扣车辆</td> <td class="style1" rowspan="5"> <div id='img5' style="height: 200px; width: 200px" /></td> <td> 折扣车辆</td> <td class="style1" rowspan="5"> <div id='img6' style="height: 200px; width: 200px" /></td> <td> 折扣车辆</td> </tr> <tr> <td>  系统商家</td> <td> 系统商家</td> <td>  系统商家</td> /<tr> <tr> <td>  此车一券一车,多车无效</td> <td> 此车一券一车,多车无效</td> <td>  此车一券一车,多车无效</td> /<tr> <tr> <td>  请在有效期内使用</td> <td> 请在有效期内使用</td> <td>  请在有效期内使用</td> /<tr> <tr> <td>  编号:4</td> <td> 编号:5</td> <td>  编号:6</td> </tr> </table> <script type="text/javascript"> var qrcode = new QRCode(document.getElementById("img1"), { width: 200, height: 200, useSVG: true }); qrcode.makeCode("e6b78f89-9efe-401f-b101-3702725edbd6"); var qrcode = new QRCode(document.getElementById("img2"), { width: 200, height: 200, useSVG: true }); qrcode.makeCode("7d313098-5262-4782-8af3-671861989c8e"); var qrcode = new QRCode(document.getElementById("img3"), { width: 200, height: 200, useSVG: true }); </script> </body> </html>
wanghui0380 2019-05-21
  • 打赏
  • 举报
回复
这个就直接往里面写呗,现在的docx实际是openxml文件,所以可以直接将信息写到xml里面 https://stackoverflow.com/questions/2810138/replace-image-in-word-doc-using-openxml
by_封爱 版主 2019-05-21
  • 打赏
  • 举报
回复
在这个需求中 doc扮演了什么角色? 也就是 预定义一堆文字+图片 扔到doc里面? 最终给客户,然后可以打印word 是吧? 那么我觉得你没必要用Word.. 因为你保存成为html或者doc对客户为了打印来说 ,没任何区别. 客户打开html或者是doc 最终都是查看一下 然后打印.. 所以我觉得这地方用html比doc合适.. 甚至 你可以在生成二维码的时候 把图片加工一下. 把文字都打到图片上. 最终给客户一个图片也即可... 当然如果你执意要使用Word.. 那么我推荐你使用aspose.words.. 我测试过插入图片(doc.insertimage("")) 好像没有你说的那么慢....

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧