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 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
PHP的SQL注入过程分析
Jan 06 PHP
解析csv数据导入mysql的方法
Jul 01 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 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中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
python分布式环境下的限流器的示例
2017/10/26 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
小学生放飞梦想演讲稿
2014/08/26 职场文书
给校长的一封检讨书
2014/09/20 职场文书
营业员岗位职责
2015/02/11 职场文书
总经理聘用协议书
2015/09/21 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电