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
简单采集了yahoo的一些数据
Feb 14 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
php 5.3.5安装memcache注意事项小结
Apr 12 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
php常用数学函数汇总
Nov 21 PHP
php微信开发之关注事件
Jun 14 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
如何判断微信付款码和支付宝付款码
Apr 01 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
一些关于PHP的知识
2006/11/17 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
javascript EXCEL 操作类代码
2009/07/30 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
移动节点的jquery代码
2014/01/13 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Python ldap实现登录实例代码
2016/09/30 Python
浅析Python中字符串的intern机制
2020/10/03 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
全球最大的游戏市场:G2A
2018/07/05 全球购物
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
不同意离婚答辩状
2015/05/22 职场文书
西游降魔篇观后感
2015/06/15 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript