【原】php自动生成带图片附件的word文档类

来源:互联网 发布:低价位耳机推荐知乎 编辑:程序博客网 时间:2024/05/01 09:25

由于某度众所周知的举动,让我搬离写了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();
?>

==============================

下载源码 评论返回分数

===============================


原创粉丝点击