php在程序中将网页生成word文档并提供下载的代码


Posted in PHP onOctober 09, 2012

在这篇文章中主要解决两个问题:

1:在php中如何把html中的内容生成到word文档中
2:php把html中的内容生成到word文档中时,不居中显示问题,即会默认按照web视图进行显示。
3:php把html中的内容生成到word文档中时,相关样式不兼容问题

正文:

echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<xml><w:WordDocument><w:View>Print</w:View></xml> 
<script src="includes/js/ztree/js/jquery-1.4.4.min.js" type="text/javascript"></script> 
</head>'; 
echo '<body><table class="table_dayin"> 
<caption class="table_caption">'; 
echo "数字化教学系统电子备课稿<br> 
<span>学科 <em style="border-bottom: 1px solid #545454;">语文</em>学校 <em style="border-bottom: 1px solid #545454;">实验中学</em></span> 
</caption>"; 
echo '</table></body></html>'; 
ob_start(); //打开缓冲区 
header("Cache-Control: public"); 
Header("Content-type: application/octet-stream"); 
Header("Accept-Ranges: bytes"); 
if (strpos($_SERVER["HTTP_USER_AGENT"],'MSIE')) { 
header('Content-Disposition: attachment; filename=test.doc'); 
}else if (strpos($_SERVER["HTTP_USER_AGENT"],'Firefox')) { 
Header('Content-Disposition: attachment; filename=test.doc'); 
} else { 
header('Content-Disposition: attachment; filename=test.doc'); 
} 
header("Pragma:no-cache"); 
header("Expires:0"); 
ob_end_flush();//输出全部内容到浏览器

注:以上代码部分提供了在php程序文件中生成内容到word文档中并提供下载功能。
针对第2个问题,下载到本地的word文档打开后显示默认按照web视图进行显示的问题:如下图:
按照默认web视图显示:

 php在程序中将网页生成word文档并提供下载的代码

如果按照正常的页面视图进行显示的话,需要在头部添加一行xml标示进行设置(蓝色代码部分):<xml><w:WordDocument><w:View>Print</w:View></xml>,添加后下载到本地的word文档打开后显示如下图:

 php在程序中将网页生成word文档并提供下载的代码

针对第三个问题就是有一些样式不兼容问题,比如顶部的大标题下面的相关属性的下划线标注显示:

  我们在html中的样式中添加了border-bottom: 1px solid #545454;这个样式(蓝色代码部分),即:<em style="border-bottom: 1px solid #545454;">,但是下划线还是没有显示,因为在word中不识别。如下图:

 php在程序中将网页生成word文档并提供下载的代码

解决方法就是按照word识别的下标样式进行更改,即:<em style="text-decoration: underline;">,更改为这个样式后,即在下载到本地的word文档打开后就有下划线标示显示了。

 php在程序中将网页生成word文档并提供下载的代码

授之于鱼,不如授之于渔,我把我的关于这个解决样式不兼容的解决方法给大家分享一下:

   一:找个web版在线编辑器,然后在里面随便输入几个文字,然后添加下划线标示

   二:然后点击编辑器上面的查看源代码按钮,可以看到刚才添加的那个下划线标示的属性即为text-decoration: underline;而不是html中的样式标示:border-bottom: 1px solid #545454;

   好了,针对以上相关问题就到这里,如有问题请大家提出来,我们共同讨论解决哈。

PHP 相关文章推荐
PHP中实现图片的锐化
Oct 09 PHP
Zend公司全球首推PHP认证
Oct 09 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
Dec 16 PHP
php array_walk() 数组函数
Jul 12 PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 PHP
php去除HTML标签实例
Nov 06 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
php实现网站文件批量压缩下载功能
Oct 28 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
php模拟实现斗地主发牌
Apr 22 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 #PHP
php全排列递归算法代码
Oct 09 #PHP
php列出一个目录下的所有文件的代码
Oct 09 #PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 #PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 #PHP
php随机输出名人名言的代码
Oct 07 #PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 #PHP
You might like
php文本转图片自动换行的方法
2013/03/13 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
js 操作符汇总
2014/11/08 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
python实现挑选出来100以内的质数
2015/03/24 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python读取Kafka实例
2019/12/23 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
为什么group by 和order by会使查询变慢
2014/05/16 面试题
《唯一的听众》教学反思
2014/02/20 职场文书
2014年度个人总结范文
2015/03/09 职场文书
学习与创新自我评价
2015/03/09 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android