资讯专栏INFORMATION COLUMN

word/excel/ppt 2 PDF

Seay / 1053人阅读

摘要:实现转换为一般最常见的就是利用来转换,来看看实现的核心代码更多详细细节可以关注公众号,并回复获取相关的资料。

PHP 实现 word/excel/ppt 转换为 PDF

一般最常见的就是利用OpenOffice来转换,来看看实现的核心代码:

class PDFConverter
{
    private $com;
 
    /**
     * need to install openoffice and run in the background
     * soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
     */
    public function __construct()
    {
        try {
            $this->com = new COM("com.sun.star.ServiceManager");
        } catch (Exception $e) {
            die("Please be sure that OpenOffice.org is installed.");
        }
    }
 
    /**
     * Execute PDF file(absolute path) conversion
     * @param $source [source file]
     * @param $export [export file]
     */
    public function execute($source, $export)
    {
        $source = "file:///" . str_replace("", "/", $source);
        $export = "file:///" . str_replace("", "/", $export);
        $this->convertProcess($source, $export);
    }
 
    /**
     * Get the PDF pages
     * @param $pdf_path [absolute path]
     * @return int
     */
    public function getPages($pdf_path)
    {
        if (!file_exists($pdf_path)) return 0;
        if (!is_readable($pdf_path)) return 0;
        if ($fp = fopen($pdf_path, "r")) {
            $page = 0;
            while (!feof($fp)) {
                $line = fgets($fp, 255);
                if (preg_match("//Count [0-9]+/", $line, $matches)) {
                    preg_match("/[0-9]+/", $matches[0], $matches2);
                    $page = ($page < $matches2[0]) ? $matches2[0] : $page;
                }
            }
            fclose($fp);
            return $page;
        }
        return 0;
    }
 
    private function setProperty($name, $value)
    {
        $struct = $this->com->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
        $struct->Name = $name;
        $struct->Value = $value;
        return $struct;
    }
 
    private function convertProcess($source, $export)
    {
        $desktop_args = array($this->setProperty("Hidden", true));
        $desktop = $this->com->createInstance("com.sun.star.frame.Desktop");
        $export_args = array($this->setProperty("FilterName", "writer_pdf_Export"));
        $program = $desktop->loadComponentFromURL($source, "_blank", 0, $desktop_args);
        $program->storeToURL($export, $export_args);
        $program->close(true);
    }
}

更多详细细节可以关注公众号,并回复 word 获取word相关的资料。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29577.html

相关文章

  • 真实体验迅捷PDF转换器 PDF Word Excel PPT等格式转换工具

    摘要:文章目录隐藏第一迅捷转换器的版本介绍第二迅捷转换器的功能体验第一迅捷转换器的版本介绍老蒋有看到,迅捷转换器的版本有多个版本。而且老蒋有在体验这款迅捷转换软件的时候,速度确实提高不少,那种在线转换的时候速度特别慢。由于工作的需要,我们很多网友朋友可能会希望将PDF文件格式转换成Word、PPT、TXT 或者 Excel等格式。我们一般是用什么软件操作的呢?比如老蒋每次遇到这样的需求,就会找网上...

    wuyangchun 评论0 收藏0
  • MongoDB ( 一 )初识

    摘要:价格目前的非关系型数据库基本都是免费的功能实际开发中,很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。目的是为应用提供扩展的高性能的数据存储方案。我们平时大多还是使用修改器来修改下一节我们来认识修改器 我们先来了解一下非关系型数据库和关系型数据库,首先需要了解一下关系型数据库,比如,我们所熟知的 Oracle、mysql等。 关系型数据库和非关系型数...

    NotFound 评论0 收藏0
  • nodejs(officegen)+vue(axios)在客户端导出word文档

    摘要:方式请求的数据只能存放在内存空间,可以通过访问,但是无法保存到硬盘,因为不能直接和硬盘交互,否则将是一个安全问题。是第一个第三方的库,所以同理。这里是返回的对象这里表示类型创建下载的链接下载后文件名点击下载下载完成移除元素释放掉对象 前言 我的项目中有一个需求:点击按钮生成可编辑的word文档订单详情的信息我使用的前端框架是Vue.js、后台使用的是node.jsnode.js生成和导...

    Julylovin 评论0 收藏0
  • 4月份前端资源分享

    摘要:更多资源请文章转自月份前端资源分享关于的思考一款有趣的动画效果跨站资源共享之二最流行的编程语言能做什么到底什么是闭包的第三个参数跨域资源共享详解阮一峰前端要给力之语句在中的值周爱民中国第二届视频花絮编码规范前端工程师手册奇舞周刊被忽视的 更多资源请Star:https://github.com/maidishike... 文章转自:https://github.com/jsfron...

    jsdt 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<