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 Smarty生成EXCEL文档的代码
Aug 23 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
php的debug相关函数用法示例
Jul 11 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 PHP
laravel withCount 统计关联数量的方法
Oct 10 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 变量未定义等错误的解决方法
2011/01/12 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
Python中的字符串替换操作示例
2016/06/27 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
详解python中eval函数的作用
2019/10/22 Python
彻底解决Python包下载慢问题
2020/11/15 Python
旅游管理实习自我鉴定
2013/09/29 职场文书
六查六看自查材料
2014/02/17 职场文书
腾讯广告词
2014/03/19 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
慰问信格式规范
2015/03/23 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
教师节领导致辞
2015/07/29 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
mysql主从复制的实现步骤
2021/10/24 MySQL
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
java开发双人五子棋游戏
2022/05/06 Java/Android
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server