php 上传word文件 Word文件转 PDF
说一下,之前的时候做上传word文档转pdf的项目时候, 通过安装open office 连接服务组件, 遇到种种问题, 例如上传的word文档版本,, word文档中编辑的样式复杂会出现转pdf失败抛出异常错误等等,
windows 服务器安装 Microsoft Office 2010 , 安装之后.
php开启dcom扩展
打开php.ini,查找php_com_dotnet和php_com_dotnet
把前面的分号去掉
extension=php_com_dotnet.dll
改为true
com.allow_dcom = true
注意:我先说一下,我Windows安装的是 Microsoft Office 2010哈
打开Windows 服务器按快捷键 win键+R, 输入 comexp.msc -32

打开之后

展开:组件服务->计算机->我的电脑->DCOM配置
寻找安装office办公的组件服务 Microfost Word 97 - 2003文档(如果找不到那就 win键+R输入:dcomcnfg)

找到之后点击属性打开窗口, 点击安全,设置成这样如图

启动和激活权限 和 访问权限 都使用自定义配置
第一:添加 Everyone 用户组,记得确认前先检查名称

第二:点击确定后给Everyone配置此权限

下面
访问权限也是如上面步骤配置权限
配置完成点击Microfost Office - 2003 文档属性顶部的标识菜单

如果是远程桌面连接的服务器你就点击单选: 下列用户然后输入用户名和密码 (为啥呢? 因为如果你单选交互式用户的话, 只有你远程连接服务器的时候才能使用此组件服务,断开远程桌面服务器就会抛出异常错误,所有远程桌面连接服务器的用户, 一定要单选[下列用户]:然后输入连接远程桌面的管理员账号和密码 )
如果是本地的就选择单选: 交互式用户
此时配置完成组件服务了,
接下来就是php代码
public function doword_pdf($source=""D:\www\demo.docx,$export="D:\www\demo.pdf")
{ //连接Microfoset Office服务组件
$word = new COM("Word.Application") or die ("Could not initialise Object.");
if(!$word ){
die ("Word.Application 服务已停止");
}
$word->Visible = 0;
// 建议设置为0,禁用警报,如“你想要MS Word是默认的…等"
$word->DisplayAlerts = 0;
// 打开Word文档,2007-2013 //要处理的word文件 , 这个是绝对文件路径
$word->Documents->Open($source); // save it as word 2003
// convert word 2007-2013 to PDF //要转出的pdf文件 绝对路径
$word->ActiveDocument->ExportAsFixedFormat($export, 17, false, 0, 0, 0, 0, 7, true, true, 2, true, true, false);
// quit the Word process
$word->Quit(false);
// clean up
unset($word);
return $export;
} 获取pdf页数 public function pdf_pagenum($path)
{
$stream = fopen($path, "r");
$content = fread ($stream, filesize($path)); if(!$stream || !$content)
return 0; $count = 0;
// Regular Expressions found by Googling (all linked to SO answers):
$regex = "/\/Count\s+(\d+)/";
$regex2 = "/\/Page\W*(\d+)/";
$regex3 = "/\/N\s+(\d+)/"; if(preg_match_all($regex, $content, $matches))
$count = max($matches); return $count;
}
php 上传word文件 Word文件转 PDF的更多相关文章
- .Net neatupload上传控件实现文件上传的进度条
1. 引入bin文件 (可以到neatupload官网下载,也可以到教育厅申报系统中找) 2. 将控件加入到工具栏,在工具栏中点鼠标右键,如图: 3. 加入neatuplaod这个文件夹(可以到nea ...
- input上传指定类型的文件
1. 谷歌–上传文件夹 添加属性webkitdirectory <input type = "file" webkitdirectory> 2. 上传文件–限制类型 添 ...
- PHP上传(单个)文件示例
通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: <html> <body> &l ...
- SharePoint 2010 ——自定义上传页面与多文件上传解决方案
最近项目遇到一个很麻烦的问题,原以为很容易解决,结果搞了那么久,先开个头,再慢慢写 SharePoint 2010 ——自定义上传页面与多文件上传解决方案 1.创建Sharepoint空白项目,创建应 ...
- echo "不允许上传该类型的文件
<?php教程 // 上传设置 $maxsize=10002400; //最大允许上传的文件大小 $alltype=array(".php"," ...
- php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特 色),学php的人都知道文件上传怎么做,但很多人在编程中 ...
- ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug
ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug 近日发现eWebEditor V2.8 asp 版本上传文件文件名不能包含中文双引号,发现eWebEditor使用ASP“无惧上 ...
- Python 一键上传下载&一键提交文件到SVN入基线工具
一键上传下载&一键提交文件到SVN入基线工具 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用说明 1 注: 根据我司项目规则订制的一套工具,集成以下功能,源码 ...
- django设置并获取cookie/session,文件上传,ajax接收文件,post/get请求及跨域请求等的方法
django设置并获取cookie/session,文件上传,ajax接收文件等的方法: views.py文件: from django.shortcuts import render,HttpRes ...
- phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法
phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法 实这个很简单的只要更改php.ini里三个配置即可.(见下面加粗部分,改成你自己的需求即可) ; Maximum allo ...
随机推荐
- coo ceo cfo cto cio 区别
常见的CEO(Chief executive officer)首席执行官类似总经理.总裁,是企业的法人代表. COO(Chief operating officer)首席运营官 类似常务总经理CFO( ...
- Spring学习之旅(七)--SpringMVC视图
在之前的实例中我们只是在 Controller 中返回了 home 字符类型的值,而没有直接生成可以在浏览器中直接渲染的 HTML,这是因为 SpringMVC 将请求处理的逻辑和视图渲染的实现进行了 ...
- 利用window对象下内置的子对象实现网页的刷新
这里我们用到的window对象下内置的子对象有: 1.history对象:包含浏览器访问过的url.我们可以利用它的history.go(num);属性实现页面的刷新: h ...
- java学习之String类
标签(空格分隔): String类 String 的概述 class StringDemo{ public static void main(String[] args){ String s1=&qu ...
- GO.数据库接口
Go没有内置的驱动支持任何的数据库,但是Go定义了database/sql接口,用户可以基于驱动接口开发相应数据库的驱动. 目前NOSQL已经成为Web开发的一个潮流,很多应用采用了NOSQL作为数据 ...
- [SNOI2019]字符串
名称:字符串 来源:2019年陕西省选 题目内容 传送门 洛谷(P5392) 题目描述 给出一个长度为$n$的由小写字母组成的字符串$a$,设其中第$i$个字符为$a_i(1≤i≤n)$. 设删掉第$ ...
- 骑士精神(IDA*)
题目描述 输入格式 第一行有一个正整数T(T<=10),表示一共有N组数据.接下来有T个5×5的矩阵,0表示白色骑士,1表示黑色骑士,*表示空位.两组数据之间没有空行. 输出格式 对于每组数据都 ...
- JIRA中的核心概念
转载自:http://blog.csdn.net/zhengxy2011/article/details/6940380 1.1.1 问题 JIRA跟踪问题(Issue),这些问题可以是bug,功 ...
- 牛客暑假多校第六场 I Team Rocket
题意: 现在有n条火车, 每条火车都有一个运行 [ Li, Ri ], 现在有m支火箭队, 每次火箭队都会破坏这整条铁路上的一个点, 如果一条火车的运行区间[Li, Ri] 被破坏了, 那么这条火车会 ...
- poj 1456 Supermarket(贪心+优先队列)
题目链接:http://poj.org/problem?id=1456 题意:有N件商品,分别给出商品的价值和销售的最后期限,只要在最后日期之前销售处,就能得到相应的利润,并且销售该商品需要1天时间. ...