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 相关文章推荐
很实用的一个完整email发送程序
Oct 09 PHP
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 PHP
php对数组排序的简单实例
Dec 25 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
php使用PDO方法详解
Dec 27 PHP
PHP的自定义模板引擎
Mar 24 PHP
PHP7下协程的实现方法详解
Dec 17 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数组去重复数据示例
2014/02/25 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
巧用canvas
2017/01/21 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
Python堆排序原理与实现方法详解
2018/05/11 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python顺序执行多个py文件的方法
2019/06/29 Python
PHP统计代码行数的小代码
2019/09/19 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
基于python 凸包问题的解决
2020/04/16 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
strstr()的简单实现
2013/09/26 面试题
创建索引时需要注意的事项
2013/05/13 面试题
学生干部的自我评价分享
2014/01/18 职场文书
工程专业应届生求职信
2014/02/19 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
老兵退伍感言
2015/08/03 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL
HttpClient实现文件上传功能
2022/08/14 Java/Android