一、配置环境

(1)配置php.ini

添加:extension=php_com_dotnet.dll

com.allow_dcom = true  // 去掉号,改为true

重启环境

(2) 安装:WPS 专业版,或者 microsoft  office 2010

(microsoft office 2007 需要安装加载项:Microsoft Save as PDF)

(3)配置office组件服务

按 win+R 快捷键进入运行菜单,输入 Dcomcnfg

找到:     [组件服务] —— [计算机]—— [我的电脑] —— [DCOM配置] ——【wps……】或[Microsoft Wrord 97-2003文档]

如果没找到【wps……】或(Microsoft Wrord 97-2003文档):

按 win+R 快捷键进入运行菜单

输入:mmc -32

[文件]——[添加或删除管理单元]——[组件服务](从可用管理单元,添加到所选管理单元,点击:确定)

添加完以后,在控制台根节点下,找到【wps……】或[Microsoft Wrord 97-2003文档],右键设置属性,设置“标识”为:交互式用户(还有安全里面的设置 可以看其他文章的设置)

注:我开始 选择交互式用户  : 会出现 我登录远程服务器一切正常,如果退出远程服务器实例化组件就报错,最后选择了 下列用户,填写了管理员用户和密码才正常可用.

二、编写程序

<?php

word2pdf();
function word2pdf()
{
$filenamedoc = dirname(__FILE__)."/index.docx";
$filenamepdf = dirname(__FILE__)."/index.pdf"; $dd = $word = new COM("KWPS.Application") or die ("Could not initialise Object.");
// 或者 $dd = $word = new COM("Word.Application") or die ("Could not initialise Object.");
// set it to 1 to see the MS Word window (the actual opening of the document)
$word->Visible = 0;
// recommend to set to 0, disables alerts like "Do you want MS Word to be the default .. etc"
$word->DisplayAlerts = 0;
// open the word 2007-2013 document $word->Documents->Open($filenamedoc);
// save it as word 2003
// convert word 2007-2013 to PDF //判断要生成的文件名是否存在
if(file_exists($filenamepdf)) {
//存在就删除
unlink ($filenamepdf);
}
$word->ActiveDocument->ExportAsFixedFormat($filenamepdf, 17, false, 0, 0, 0, 0, 7, true, true, 2, true, true, false);
// quit the Word process
$word->Quit(false);
// clean up
unset($word);
if(!function_exists('read_pdf')) {
header('Content-type: application/pdf');
header('filename='.$filenamepdf);
readfile($filenamepdf);
read_pdf('Python_study.pdf');
}
echo 'ok';
} ?>
if(!function_exists('read_pdf')) {
function read_pdf($file) {
if(strtolower(substr(strrchr($file,'.'),1)) != 'pdf') {
echo '文件格式不对.';
return;
}
if(!file_exists($file)) {
echo '文件不存在';
return;
}
header('Content-type: application/pdf');
header('filename='.$file);
readfile($file);
}
}

转: https://my.oschina.net/u/3567851/blog/2909656

https://blog.csdn.net/sangjinchao/article/details/78053545

https://blog.csdn.net/ken2999/article/details/82353747  (组件的权限)

https://www.cnblogs.com/zhuchenglin/p/7586170.html

https://stackoverflow.com/questions/5538584/convert-word-doc-docx-and-excel-xls-xlsx-to-pdf-with-php

https://blog.csdn.net/baidu_27474941/article/details/83268468

php 将office文件(word/excel/ppt)转化为pdf(windows和linux只要安装对应组件应该就行)的更多相关文章

  1. windows环境下 php 将office文件(word/excel/ppt)转化为pdf(转)

    将office文件转化为pdf的方法有 1.利用openoffice提供的服务 (比较简单,但是转化的效果不太好) 2.使用office提供的服务 (注:这在windows服务器上,并且服务器上面安装 ...

  2. Office系列---将Office文件(Word、PPT、Excel)转换为PDF文件,提取Office文件(Word、PPT)中的所有图片

    将Office文件转换为PDF文件,提取Office文件中的所有图片 1.Office系列---将Office文件(Word.PPT.Excel)转换为PDF文件 1.1 基于Office实现的解决方 ...

  3. java 如何将 word,excel,ppt如何转pdf --openoffice (1)

    承上启下,可折叠 上一篇说的是:服务器是windows server时,用jacob将msoffice(指的是word,excel,ppt)转换成pdf. 若被部署项目的服务器是centOS等linu ...

  4. Office系列(1)---将Office文件(Word、PPT、Excel)转换为PDF文件

    需求: 将Office文件作为文章并在网页上预览,主要为(Word.PPT.Excel)3种类型文件. 研究了一下,找到了两种解决方案 直接调用微软的在线预览功能实现(预览前提:预览资源必须可以直接通 ...

  5. Office系列(2)---提取Office文件(Word、PPT)中的所有图片

    回顾一下上文结尾的问题:如何给文档设置一个合适的封面图?其中一个解决方案就是,获取Office文件内部的图片作为封面.这里就详细介绍下获取图片的几种方式,以及他们各自的优缺点. PS:因为之前用VST ...

  6. word,excel,ppt,txt转换为 PDF

    /// <summary> /// 将word文档转换成PDF格式 /// </summary> /// <param name="sourcePath&quo ...

  7. PDF/WORD/EXCEL/PPT 文档在线阅读

    查资料看了2种解决方法: 1.通过办公软件dll转换,用flans去看 2.通过Aspose转换成pdf格式,在用js前台读pdf(我用的pdf.js) 今天我解决的就是WORD/EXCEL/PPT ...

  8. java 如何将 word,excel,ppt如何转pdf--jacob

    问题:java 如果将 word,excel,ppt如何转pdf 我个人的观点:windows server下用 jacob; linux server下 用openoffice.   PS:1.本文 ...

  9. 在线文档转换API word,excel,ppt等在线文件转pdf、png

    在线文档转换API提供word,excel,ppt等在线文件转pdf.png等,文档:https://www.juhe.cn/docs/api/id/259 接口地址:http://v.juhe.cn ...

随机推荐

  1. 【sqoop】安装配置测试sqoop1

    3.1.1 下载sqoop1:sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 3.1.2 解压并查看目录: [hadoop@hadoop01 ~]$ tar -zxvf sq ...

  2. vs2017 官方下载地址 和 官方建立脱机安装包的方法

    vs2017 官方下载地址: https://docs.microsoft.com/zh-cn/visualstudio/releasenotes/vs2017-relnotes VS2017 官方建 ...

  3. SQL SERVER-Extendevent捕获执行慢的语句

    USE MASTER; GO /* Conditionally drop the session if it already exists */ IF EXISTS (SELECT * FROM sy ...

  4. thinkphp概述2

    thinkphp概述,thinkphp项目构建流程,thinkphp项目结构,thinkphp配置,thinkphp控制器,thinkphp模型,thinkphp视图,thinkphp的内置模板引擎. ...

  5. 采用MySQL-MMM做DB高可用时,遇到的一个小坑

    一.服务器分布   二.MySQL-MMM 配置 (1).公共配置[所有DB节点:Master1.Master2.Slave1.Slave2   Monitor节点] # vim /etc/mysql ...

  6. k8s安装之eventrouter.yaml

    k8s的heapster项目中止以后, 事件收集的项目,就推荐使用https://github.com/heptiolabs/eventrouter项目了 Eventrouter This repos ...

  7. redis都有哪些数据类型?分别在哪些场景下使用比较合适?

    (1)string 这是最基本的类型了,没啥可说的,就是普通的set和get,做简单的kv缓存 (2)hash 这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象 ...

  8. HihoCoder1236 Scores

    Scores 求五维偏序(≤).强制在线. \(n,q\le 50000\) 烂大街的题解 考虑如果我们能用bitset找到每一维有哪些比询问点小,然后把每一维的结果取交集,得到的就是答案了. 然后对 ...

  9. json格式常用操作

    var data={"student":[ {"name":"zhangsan","age":11}, {"n ...

  10. Linux安装版本solr-5.3.0

    准备材料:solr-5.3.0.tgz 下载路径:http://mirrors.hust.edu.cn/apache/lucene/solr/ 安装solr 1.解压solr [root@svn-se ...