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 相关文章推荐
Excel数据导入Mysql数据库的实现代码
Jun 05 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
PHP版微信公众平台红包API
Apr 02 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
php检查字符串中是否有外链的方法
Jul 29 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 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/11/06 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
浅谈django中的认证与登录
2016/10/31 Python
Python 文件操作的详解及实例
2017/09/18 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
Python构建图像分类识别器的方法
2019/01/12 Python
浅析Python3 pip换源问题
2020/01/06 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
奖学金自我鉴定范文
2013/10/03 职场文书
工商技校毕业生自荐信
2013/11/15 职场文书
电子信息专业自荐书
2014/02/04 职场文书
产品售后服务承诺书
2014/05/21 职场文书
2014年管理工作总结
2014/11/22 职场文书
如何写好活动总结
2019/06/21 职场文书
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL