【原】php自动生成带图片附件的word文档类
2011-09-28 20:31
519 查看
由于某度众所周知的举动,让我搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了。这些都是文章备份。勿怪。。
注意:生成的带图片word文档会自动带一个拖油瓶:" .files " 文件夹 ,里面存放着各种图片,ole文件。如果对这种实现方式感觉不适,请不要下载此程序。
9-18 更新:
1.如有出现压缩文件打不开,把class文件夹的Ydoc.php中
header( "Content-Length: " . filesize( $this->tmp_path ) );这一句注释掉。可能filesize出的字节数不正确造成的。
2.如出现ie系列中不能下载的情况,请增加一句
header('Cache-Control: max-age=0');
详情看这里这里:解决开启session时IE下载报错
3.自动下载的压缩包,必须解压后点击word文档才能看到图。因为压缩包里直接点击word文档打开时,没有预读图片
==========================
功能:生成带图片的doc文档。
详细描述:选择服务器上任意一个或一组图片或者文件,与doc一起打包下载。图片和附件可以在和doc文档显示。
环境要求:php需要开启ZipArchive组件支持。一个tmp文件夹的写权限。 程序默认在utf8编码下执行。(gbk网站可以简单修改后适应)
优点:无需windows环境或com或office支持。占用服务器内存较小。打包50M文件约为5秒。可指定任意文件夹内文件打包至doc文档关联。doc文档插入图片容易编写。
缺点:时间比直接输出慢30%。由于不占用服务器内存,势必要开辟一个文件夹暂存压缩包。(另有一种方法不需要先生成再读取下载,但是使用内存保存整个文件。。)
原理解释:doc文件保存插入图片的原理是新增一个 .files文件夹(用word程序打开修改doc文档后,添加的ole文件也是自动会将资源保存在.files文件夹中。)
注意:强烈建议路径文件夹表示采用linux系的/而非windows系的\。因为在开启magic_quote_gpc的网站会将\转化成\\导致文件生成失败。
使用:见下列代码。或者见源码包中use文件夹下index.php
<?php
include_once("../class/Ydoc.php");
//图片路径列表
$Ypic_path_arr = array (
"../img/left.gif",
"../img/right.gif"
);
//文件名列表
$Ypic_name_arr = array ();
foreach ($Ypic_path_arr as $v) {
$Ypic_name_arr[] = basename($v);
}
//文档名
$Ydoc_name_path="../tmp/测试文档";
//windows下要转码文件名字为gb2312
$Ydoc_name=basename($Ydoc_name_path);
//doc文档的内容
$doc_content = 'hello world你好';
//图片路径。只要修改$Ypic_name_arr[0]。插入图片跟html一样写。你懂的。
$doc_content .= '<img src="' . $Ydoc_name . '.files/' . $Ypic_name_arr[0] . '">';
$doc_content .= '<img src="' . $Ydoc_name . '.files/' . $Ypic_name_arr[1] . '">';
$zip_doc = new Ydoc();
//服务器图片源地址、word文件名、word文档内容
$zip_doc->create_doc($Ypic_path_arr, $Ydoc_name_path, $doc_content);
$zip_doc->download();
?>
==============================
下载源码 评论返回分数
===============================
注意:生成的带图片word文档会自动带一个拖油瓶:" .files " 文件夹 ,里面存放着各种图片,ole文件。如果对这种实现方式感觉不适,请不要下载此程序。
9-18 更新:
1.如有出现压缩文件打不开,把class文件夹的Ydoc.php中
header( "Content-Length: " . filesize( $this->tmp_path ) );这一句注释掉。可能filesize出的字节数不正确造成的。
2.如出现ie系列中不能下载的情况,请增加一句
header('Cache-Control: max-age=0');
详情看这里这里:解决开启session时IE下载报错
3.自动下载的压缩包,必须解压后点击word文档才能看到图。因为压缩包里直接点击word文档打开时,没有预读图片
==========================
功能:生成带图片的doc文档。
详细描述:选择服务器上任意一个或一组图片或者文件,与doc一起打包下载。图片和附件可以在和doc文档显示。
环境要求:php需要开启ZipArchive组件支持。一个tmp文件夹的写权限。 程序默认在utf8编码下执行。(gbk网站可以简单修改后适应)
优点:无需windows环境或com或office支持。占用服务器内存较小。打包50M文件约为5秒。可指定任意文件夹内文件打包至doc文档关联。doc文档插入图片容易编写。
缺点:时间比直接输出慢30%。由于不占用服务器内存,势必要开辟一个文件夹暂存压缩包。(另有一种方法不需要先生成再读取下载,但是使用内存保存整个文件。。)
原理解释:doc文件保存插入图片的原理是新增一个 .files文件夹(用word程序打开修改doc文档后,添加的ole文件也是自动会将资源保存在.files文件夹中。)
注意:强烈建议路径文件夹表示采用linux系的/而非windows系的\。因为在开启magic_quote_gpc的网站会将\转化成\\导致文件生成失败。
使用:见下列代码。或者见源码包中use文件夹下index.php
<?php
include_once("../class/Ydoc.php");
//图片路径列表
$Ypic_path_arr = array (
"../img/left.gif",
"../img/right.gif"
);
//文件名列表
$Ypic_name_arr = array ();
foreach ($Ypic_path_arr as $v) {
$Ypic_name_arr[] = basename($v);
}
//文档名
$Ydoc_name_path="../tmp/测试文档";
//windows下要转码文件名字为gb2312
$Ydoc_name=basename($Ydoc_name_path);
//doc文档的内容
$doc_content = 'hello world你好';
//图片路径。只要修改$Ypic_name_arr[0]。插入图片跟html一样写。你懂的。
$doc_content .= '<img src="' . $Ydoc_name . '.files/' . $Ypic_name_arr[0] . '">';
$doc_content .= '<img src="' . $Ydoc_name . '.files/' . $Ypic_name_arr[1] . '">';
$zip_doc = new Ydoc();
//服务器图片源地址、word文件名、word文档内容
$zip_doc->create_doc($Ypic_path_arr, $Ydoc_name_path, $doc_content);
$zip_doc->download();
?>
==============================
下载源码 评论返回分数
===============================
相关文章推荐
- php通过mht文件方式生成带图片的word文档
- 利用PHP生成QQ空间个人中心自动变换图片
- Aspose.Words for .NET动态生成word文档中的图片或水印
- 软工写文档熟练使用word很重要——自动生成编号
- PHP导出word文档的简单实现方法(可导出图片)
- echarts 生成统计图时,自动保存图片到服务器,并使用freemarker生成word
- php图片文件上传类 (附自动生成缩略图)
- php 生成水印图片 完整过程 NFS自动同步刷新varnish缓存
- php通过注释自动生成文档插件
- Java Web项目中使用freemarker操作flt生成带图片(base64)的Word文档
- python爬虫抓取新华网新闻并自动生成word文档
- PHP文档中怎样自动生成版本信息
- php 生成 word 文档
- php 生成word文档并下载代码
- 在asp.net生成的word文档中插入图片
- php 利用gd库及tcpdf 自动多图片生成pdf
- word文档添加多级目录,自动生成目录
- 通过java代码生成图片、word文档、pdf文档
- 在asp.net生成的word文档中插入图片(转)
- 向Docx4j生成的word文档添加图片和布局--第一部分