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里得到前天和昨天的日期的代码
Aug 16 PHP
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
php实现paypal 授权登录
May 28 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 PHP
PHP APP微信提现接口代码
Sep 30 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 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传输数据的代码
2007/11/13 PHP
PDO::commit讲解
2019/01/27 PHP
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
网络工程专业毕业生推荐信
2013/10/28 职场文书
小区门卫值班制度
2014/01/24 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
小学生寒假家长评语
2014/04/16 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
投资入股合作协议书
2014/10/28 职场文书
小学运动会入场词
2015/07/18 职场文书
大队委员竞选演讲稿
2015/11/20 职场文书
《我是什么》教学反思
2016/02/16 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL