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 相关文章推荐
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
在PHP中使用模板的方法
May 24 PHP
解析PHP提交后跳转
Jun 23 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
PHP浮点数精度问题汇总
May 13 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 PHP
php获取文件后缀的9种方法
Mar 22 PHP
PHP中header用法小结
May 23 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 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
ajax实现无刷新分页(php)
2010/07/18 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
php中session定期自动清理的方法
2015/11/12 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
详解Vue之父子组件传值
2019/04/01 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
Python登录注册验证功能实现
2018/06/18 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python 内置函数汇总详解
2019/09/16 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
自动一体化专业求职信
2014/03/15 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
大型会议策划方案
2014/05/17 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
个人廉洁自律总结
2015/03/06 职场文书
初中历史教学反思
2016/02/19 职场文书