在php中将PPTX或PPT文件转换为PDF

在php中将PPTX或PPT文件转换为PDF,php,wordpress,Php,Wordpress,用于将PPTX或PPT文件转换为PHP格式的任何库或API,或用于将PPTX或PPT转换为PDF文件的wordpress中的任何插件。假设您在*nix系统上安装了libreoffice,您可以运行命令将文件转换为PDF: <?php shell_exec('libreoffice --headless -convert-to pdf --outdir /tmp/converts/ /tmp/phpNWUB82bdw8'); ?> 如果要直接将所有文件路径插入命令以防止命令注

用于将PPTX或PPT文件转换为PHP格式的任何库或API,或用于将PPTX或PPT转换为PDF文件的wordpress中的任何插件。

假设您在*nix系统上安装了
libreoffice
,您可以运行命令将文件转换为PDF:

<?php
  shell_exec('libreoffice --headless -convert-to pdf --outdir /tmp/converts/ /tmp/phpNWUB82bdw8');
?>


如果要直接将所有文件路径插入命令以防止命令注入,请确保创建转换输出目录并清理所有文件路径。

我在搜索相同的内容时没有使用任何第三方API。 为此,您需要在服务器/系统上安装libreoffice和unoconv

注意:我正在为CentOS编写步骤,但您可以在谷歌上搜索其他系统的备用命令

以下是步骤:

  • 首先使用shell/terminal在系统上安装libreoffice和unoconv

    yum install libreoffice-headless unoconv
    
  • 如果yum未找到unoconv,请直接从rpmfind.net下载并安装:

    rpm -ivh unoconv*
    
  • 如果unoconv需要libreoffice writer/calc/etc,请首先执行以下操作:

    yum install libreoffice
    
  • 最后,重新启动服务器:

    reboot
    
  • 这是一个将PPT文件转换为PDF的示例,您可以替换:

    unoconv -f pdf slide.pptx
    
  • 如果要通过PHP运行该命令,请使用:phpseclib

    $command = "unoconv -f pdf /home/username/public_html/slide.pptx";
    
    $ssh->exec($command);
    
  • 或者,您可以使用libreoffice从shell为您执行转换:

    libreoffice –headless –invisible –convert-to pdf sample.doc
    
  • 在服务器上安装libreoffice后,您可以使用它轻松地将文件转换为pdf/html。我已经测试过了,效果很好

  • 最后,如果您想将pdf转换为jpg,您可以使用


  • 感谢:

    请告诉我,通过PHP代码不依赖软件,也不依赖任何PHP库或API。Quick google展示了这一点:您可以尝试将代码与应用程序一起部署,而不是执行shell命令或导入其他库。这一点只适用于HTML到PDF非PPTX文件到PDF文件的转换:(