word文档组织结构图里面的照片怎么导出来

spring mvc 下 word 文档(含图片)导出
最近在处理 word 文档导出工作,整理并总结下。
经过一番百度和亲测,大部分人使用的都是iText,iReport等...当我去尝试用这几种方法的时候,要实现我的需求可以,但是代码量太大了~~~因为我的 word 文档结构比较复杂,内容较多,有点懒得去写。于是我寻求通过jsp 或 javascript 页面的方式导出,这样子格式都直接在web页面上已经编辑好了,不许通过代码再转成word的形式。
javascript 方式的话需要使用到ActiveXObject,这样子对浏览器是有要求的~~直接放弃
通过jsp方式的话,技术难点关键在图片的导出。百度可以知道,把图片转为base64编码直接输出至页面即可,后面就一直往这个方向走,最后结合FreeMarker,实现了需求。
下面给出步骤
建立 word 文档模板
word 文档另存为 xml 格式
& 在这一步,我尝试直接把xml文件放到后台,把图片base64编码通过el表达式直接替换,发现导出word文档打开会发生错误,因此,我再绕一下,把它另存为.ftl freeMarker模板
3. 编辑xml,把变量替换,改为el表达式,如这里把某图片改为el表达式
&pkg:part pkg:name=&/word/media/image4.jpeg& pkg:contentType=&image/jpeg& pkg:compression=&store&&
& & &pkg:binaryData&${dataPic}&/pkg:binaryData&
&/pkg:part&
4. 把模板放到项目下,我这里以 /WEB-INF/templates
& 因为我结合了spring mvc 去实现,功能,因此我在 applicationContext.xml 中做好freeMarkerConfig配置如:
&!-- Freemarker 配置 --&
& & &bean id=&freemarkerConfig& class=&org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer&&
& & & & &property name=&templateLoaderPath& value=&/WEB-INF/templates/& /&
& & & & &property name=&defaultEncoding& & &value=&UTF-8& /&
& & & & &property name=&freemarkerSettings&&
& & & & & & &props&
& & & & & & & & &prop key=&template_update_delay&&10&/prop&
& & & & & & & & &prop key=&locale&&zh_CN&/prop&
& & & & & & & & &prop key=&number_format&&0.##########&/prop&
& & & & & & & & &prop key=&datetime_format&&yyyy-MM-dd HH:mm:ss&/prop&
& & & & & & & & &prop key=&classic_compatible&&true&/prop&
& & & & & & & & &prop key=&template_exception_handler&&ignore&/prop&
& & & & & & &/props&
& & & & &/property&
& & &/bean&
5. 添加解析 freeMarker 的 ViewResolver
&bean id=&ftlViewResolver& class=&org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver&&
& & & & &property name=&viewClass& value=&org.springframework.web.servlet.view.freemarker.FreeMarkerView& /&
& & & & &property name=&suffix& value=&.ftl& /&
& & & & &property name=&exposeRequestAttributes& value=&true& /&
& & & & &property name=&exposeSessionAttributes& value=&true& /&
& & & & &property name=&exposeSpringMacroHelpers& value=&true& /&
& & & & &property name=&order& value=&0& /&
& & &/bean&
6. 编写 controller
&@RequestMapping(value = &/report&)
& & public String word(Model model) {
& & & & getResponse().setCharacterEncoding(&UTF-8&);
& & & & getResponse().setContentType(&application/msword&);
& & & & getResponse().addHeader(&Content-Disposition&, &filename=report.doc&);
& & & & // JFreeChart 图片
& & & & model.addAttribute(&dataPic&, Base64Utils.image2Str(ChartUtils.createLineChart(prepareDataset(), &最近7天血压数据&, &时间&, &mmHg&), ));
& & & & return &report&;
这里还提供一下图片转base64的一个工具类
public class Base64Utils {
& & private static BASE64Encoder encoder = new BASE64Encoder();
& & private Base64Utils() {
& & &* 本地图片转 base64 编码输出
& & public static String localImage2Str(String imagePath) {
& & & & File imageFile = new File(imagePath);
& & & & if (imageFile.exists() && imageFile.isFile()) {
& & & & & & try {
& & & & & & & & return image2Str(new FileInputStream(imageFile));
& & & & & & } catch (FileNotFoundException e) {
& & & & & & & & // ignore
& & & & & & }
& & & & return &&;
& & &* JFreeChart 图表转 base64 编码
& & public static String chartImage2Str(JFreeChart chart, int width, int height) {
& & & & ByteArrayOutputStream out = new ByteArrayOutputStream();
& & & & try {
& & & & & & ChartUtilities.writeChartAsJPEG(out, 1.0f, chart, width, height, null);
& & & & & & out.flush();
& & & & & & byte[] data = out.toByteArray();
& & & & & & return image2Str(new ByteArrayInputStream(data));
& & & & } catch (IOException e) {
& & & & & & // ignore
& & & & } finally {
& & & & & & try {
& & & & & & & & out.close();
& & & & & & } catch (IOException e) {
& & & & & & & & // ignore
& & & & & & }
& & & & return &&;
& & &* 网络图片转 base64 编码输出
& & public static String webImage2Str(String urlPath) {
& & & & InputStream in =
& & & & try {
& & & & & & URL url = new URL(urlPath);
& & & & & & URLConnection connection = url.openConnection();
& & & & & & connection.connect();
& & & & & & in = connection.getInputStream();
& & & & & & return image2Str(in);
& & & & } catch (IOException e) {
& & & & & & // ignore
& & & & } finally {
& & & & & & if (in != null) {
& & & & & & & & try {
& & & & & & & & & & in.close();
& & & & & & & & } catch (IOException e) {
& & & & & & & & & & // ignore
& & & & & & & & }
& & & & & & }
& & & & return &&;
& & &* 图片输入流转 base 64 编码
& & public static String image2Str(InputStream stream) {
& & & & if (stream != null) {
& & & & & & try {
& & & & & & & & byte[] data = new byte[stream.available()];
& & & & & & & & int length = stream.read(data);
& & & & & & & & if (length & 0) {
& & & & & & & & & & return encoder.encode(data);
& & & & & & & & }
& & & & & & } catch (IOException e) {
& & & & & & & & // ignore
& & & & & & }
& & & & return &&;
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'如何复制WORD文档里的图片?
如何复制WORD文档里的图片?
09-05-14 &
两种方法:从Word中提取图片是一件很容易的事,先打开文档,选定要提取的图片,复制,然后在附件中的画图工具或Photoshop中粘贴,再保存成图片.不过这样图片质量出现很大的差别: 打开“文件”,发现有一“另存为Web页”选项,联系自己平时上网时经常将网页另存为Web文件,网页中的图片等常存储于***.files文件夹下(***为所取存储的文件名),且可单独使用。于是选择“另存为Web页”,取名为AA,果然生成有一AA.files文件夹,其中存有一名为image001.jpg的图片文件。打开一看,正是我需要的那张图片,精度与在Word中的毫无二致。
请登录后再发表评论!
把鼠标移到图片上面,点右键选择 “复制”打开画板 (小画家), 在编辑里选择 “粘贴”选择 “另存为。。。” 在输入文件名的下面一栏选 .jpg 存盘大功告成了
请登录后再发表评论!常用教程:
您现在的位置: > 教程 >
WORD中插入图片 提示导入此文件出错
10:53:01 | 浏览次数 | 12321 | 标签
  在WORD中插入的图片,有两种类型的图片,一类是自选图形,一类是来自文件的图片。
  当插入来自文件的图片时,常规格式的图片插入是没有问题的,比如插入gif,jpg,bmp等图片,没有任何问题。
  如果你试题插入TIF,PSD等这些图片,那么,问题就来了,兴许会提示有错误。
  如果插入TIF图片提示错误,那么,解决的办法首先就是要转换格式了,你可以使用PS这种图片处理软件,将TIF转换成为gif,jpg,bmp这些常规格式其中的一种后再插入就没有了。
  当然,如果还有问题,说明可能就是word模板的问题了,应该使用下面的办法来解决:
  可能是你的通用模板出问题了,建议重命名一下,通用模板的具体路径为:C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates,这个路径下有个normal.dot文件,把这个文件重命名一下,名字还是取得一样就可以。
  最后,实在没办法,估计就是组件或系统的问题了,要么重新安装word,要么重新安装系统才能解决问题了。
问题未解决:
写得太好了,总结得相当精辟,辛苦了,非常有用。
有问题请扫描右侧二维码获取求助方式
扫码获取求助查看: 回复:13
如何把WORD文档里面的照片复制到论坛里?
您好,精华帖至少要有15张图片,文字不少200个字!并且是原创内容,布局合理。
自动加载图片
楼主 电梯直达 楼
会的TX教教我啊,先谢谢了
居,善地;心,善渊;与,善仁;言,善信;政,善治;事,善能;动,善时。
官方价:9.98-17.99万
申请精华帖
您的申请已经提交,请耐心等待审核
1、审核通常是1-3个工作日
2、审核结果我们会通过系统消息给您答复
申请精华帖
您已经超过申请限制,不可再申请
您的申请连续三次被驳回,已经无法再申请精华帖,谢谢你对我们的支持!如有疑问,可以
申请精华帖
您有发现精华的慧眼,赞一个!
1、我们会在1-3个工作日内完成审核
申请精华帖
此贴已经申请精华中,谢谢您的支持!
1、我们会在1-3个工作日内完成审核
申请精华帖
您好,该帖子经过审核后,发现内容不符合精华要求,无法申请成为精华,谢谢你的支持!
申请精华帖
抱歉,帖子还没达到精华标准
精华帖至少要有15张图片,文字不少于200个字!您的帖子未达到要求,不能申请精华。
论坛只接受文件和联接.会了么?
很简单啊,把word的照片另存到桌面,然后再添加到论坛来啊
很多人知道在word里插入图片,但不知道如何从word里取出来。真是“请神容易,送神难”。现在告诉大家一种方法可以很快的从word里提取图片。操作如下:将带有图片的word文档“另存为”,在跳出对话框的“保存类型”里选择“网页”,命名好“文件名”后按“保存”。然后你就可以在与文件名同名的文件夹里找到你想要的图片了。  经测试使用,发现还生成一大一小两张图片。方法一。HTM法,此方法适用于多图保存法。Word文档图片巧妙保存  我们经常都会收到一些含有图片的Word文档,这些图片都不能用简单复制的办法单独保存或者直接取出来使用,有没有什么办法把这些图片保存下来?    解决方案:  这个问题是最多人遇到的了,但是相信绝大多数的人都一筹莫展。  其实处理起来也很简单。你可以直接利用Word“文件”菜单里的“另存为网页”选项,并在弹出的窗口中选择“保存类型”为“网页(*.htm ;*html)”。随后,你很快会获得一个网页文件,并自动生成一个与网页文件名相同的文件夹,其扩展名“.files”。在这个文件夹里,Word文档中所有的图片都一张张地自动保存为图片文件了。这样,你就可以随心所欲保存、处理这些图片了。方法二。软件保存法,此方法适用于经常性需要保存WORD图片。条件:需拥有OFFICE安装盘,在安装时就知道此法。&&要将插入word000/XP文档中的图片另外保存起来,相信多数朋友采用的是将该文档另存为Web页的方法,但如果文档中的图片很多,而我们又只需要保存其中一幅的话,这种方法就不太适合了。其实word000/XP中提供了一个专门用于图片处理的工具——Microsoft&Photo&Editor,借助这个工具我们可以轻松地将插入word文档中的图片单独保存,并可指定图片的格式。  在office&XP的“典型”安装方式下,Photo&Editor并没有随office工具一起安装,所以我们必须另外添加。插入office安装光盘,自动运行后进入“office&维护模式”,选择“添加或删除功能”,并在“更新功能”向导步骤中展开“office&工具”列表,将Photo&Editor设置成“从本机上运行”。安装完成后,重新打开word,依次单击“工具→选项→”,从下拉列表中选择Photo&Editor,将它作为默认的图片处理工具。  我们将Photo&Editor设置成默认的图片器,在word文档中选定需要保存或转换的图片(以前没有使用“Microsoft&word”过),从右键菜单中选择“图片”,这时word会自动调用Photo&Editor将图片打开,从“文件”菜单下选择“另存为”命令,在弹出的对话框中我们可以选择保存图片的格式为GIF、JPG、BMP、TIF或者PNG,同时下方还有一个“高级”按钮,可以对图像转换时一些参数进行设置。方法三&移花接木法,此方法适用于单幅或者几幅图片保存,我推荐初级者用此法。巧将word中的图片保存POWERPOINT可以将里面的图片保存。那么就可以把word中的图像,先拷贝到幻灯片中,然后点右键另存为就行了。
楼上的说的详细可以直接复制选用的图片,再打开WINDOWS中画图粘贴保存
谢谢!!!
Re:[柯利,3楼]&同意,100分
可以把图片另存了上传到论坛
偶路过学习
潇潇真够耐心,不过还是另存再上传简单
用户被封,内容屏蔽
我的办法就是-----不行就放弃
您需要登录后才可以发帖
明锐更多相关问题
回复成功!积分+2
请输入内容

我要回帖

更多关于 word2007去除页眉横线 的文章

 

随机推荐