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 相关文章推荐
mysql 字段类型说明
Apr 27 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
php GeoIP的使用教程
Mar 09 PHP
PHP输出XML到页面的3种方法详解
Jun 06 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python将文本转换成图片输出的方法
2015/04/28 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Python生成一个迭代器的实操方法
2019/06/18 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python 负数取模运算实例
2020/06/03 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
综合办公室个人的自我评价
2013/12/22 职场文书
竞职演讲稿范文
2014/01/11 职场文书
环保专项行动方案
2014/05/12 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
资金申请报告范文
2015/05/14 职场文书
外出学习心得体会范文
2016/01/18 职场文书
电频谱管理的原则是什么
2022/02/18 无线电
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android
python内置模块之上下文管理contextlib
2022/06/14 Python