【问题标题】:libre office convert to pdf is not working in symfony 1.4 with IIS 8libre office 转换为 pdf 在 symfony 1.4 和 IIS 8 中不起作用
【发布时间】:2018-03-19 10:17:05
【问题描述】:

我使用下面的 PHP 脚本使用 libre office 将 docx 文件转换为 pdf。

<?php
$command = 'soffice --headless --invisible --convert-to pdf C:\Users\Administrator\Desktop\php\test.docx --outdir C:\inetpub\myapp\pdffiles';
exec($command);
?>

我在 IIS 服务器上托管的 symfony 1.4 应用程序中运行此命令。但它不会创建任何pdf(也不会给出任何错误)。但这在 Linux 中运行良好。

注意: 我尝试通过以下方式检查输出。

  1. 从命令提示符运行相同的命令 - 工作
  2. 使用 PHP 脚本(不是通过 Symfony 应用程序)运行相同的命令 - 工作
  3. 通过 IIS 服务器托管网站运行相同的命令(而不是通过 Symfony 应用程序)- 工作
  4. 通过托管在 IIS 服务器上的 Symfony 1.4 应用程序运行相同的命令 - 不工作

我的测试环境是 Windows Server 2012,安装了 PHP7 和 IIS 8。

【问题讨论】:

  • 我在 IIS 上遇到了同样的问题,本地工作正常。你搞定了吗?
  • 我使用了一个额外的标志-env。我的最终命令是 soffice -env:UserInstallation= &lt;sofficeTmpDirUrl&gt; --headless --invisible --convert-to pdf C:\Users\Administrator\Desktop\php\test.docx --outdir C:\inetpub\myapp\pdffiles 。它对我有用。将 sofficeTmpDirUrl 替换为您的(例如:- file://tmp/soffice/loaction)。
  • 临时位置的内容是什么? file://tmp/soffice/loaction,我需要添加任何文件吗?
  • 无需添加任何内容。 libreoffice 将使用 tmp 位置作为当前进程的临时位置。

标签: symfony-1.4 php-7 iis-8 windows-server-2012-r2 libreoffice


【解决方案1】:

This works 显然需要指定-env:UserInstallation=file:///C:\some\path

另外,查看相同的解决方案here

【讨论】:

    猜你喜欢
    • 2018-02-14
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多