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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
有关php运算符的知识大全
Nov 03 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
php正则修正符用法实例详解
Dec 29 PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP图片加水印实现方法
2016/05/06 PHP
php单链表实现代码分享
2016/07/04 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
党员创先争优承诺书
2014/03/26 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
如何使用pdb进行Python调试
2021/06/30 Python
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
MySQL深分页问题解决思路
2022/12/24 MySQL