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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
一段php加密解密的代码
Oct 09 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
PHP JWT初识及其简单示例
Oct 10 PHP
PDO::getAvailableDrivers讲解
Jan 28 PHP
php模式设计之观察者模式应用实例分析
Sep 25 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
Terran兵种介绍
2020/03/14 星际争霸
PHP中其实也可以用方法链
2011/11/10 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
PHP实现的简单日历类
2014/11/29 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
儿童学习python的一些小技巧
2018/05/27 Python
Django后台admin的使用详解
2019/07/08 Python
Django时区详解
2019/07/24 Python
python读取指定字节长度的文本方法
2019/08/27 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Python 代码调试技巧示例代码
2020/08/11 Python
python自动生成证件号的方法示例
2021/01/14 Python
中国电视购物:快乐购
2017/02/04 全球购物
教师校本培训方案
2014/02/26 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
大学生实习证明
2015/06/16 职场文书
新人入职感言
2015/07/31 职场文书
物资采购管理制度
2015/08/06 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL