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无刷新上传文件实现代码
Sep 19 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
PHP实现合并discuz用户
Aug 05 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
Dec 09 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
PHP count()函数讲解
Feb 03 PHP
laradock环境docker-compose操作详解
Jul 29 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导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
在Python下进行UDP网络编程的教程
2015/04/29 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
构建Python包的五个简单准则简介
2015/06/15 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
质量工程师岗位职责
2013/11/16 职场文书
商品陈列协议书
2014/09/29 职场文书
继承权公证书范本
2015/01/23 职场文书
英语导游词
2015/02/13 职场文书
防卫过当辩护词
2015/05/21 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL