Zend LiveDocx - 无法从磁盘读取本地模板

时间:2013-09-16 09:44:33

标签: php templates zend-framework docx livedocx

我正在尝试在我的zend框架项目中创建一个word文档,但它无效!

这是我的行动代码:

public function createwordAction(){
    $this->_helper->layout->disableLayout();
    $this->_helper->viewRenderer->setNoRender();

    require_once 'Zend/Service/LiveDocx/MailMerge.php';

    try{
        $mailMerge = new Zend_Service_LiveDocx_MailMerge();

        $mailMerge->setUsername('***********')
                  ->setPassword('******');

        $mailMerge->setLocalTemplate('/license-agreement-template.docx');

        $mailMerge->assign('software', 'Magic Graphical Compression Suite v1.9')
            ->assign('licensee', 'Henry Döner-Meyer')
            ->assign('company',  'Co-Operation')
            ->assign('date',     'January 11, 2010')
            ->assign('time',     'January 11, 2010')
            ->assign('city',     'Berlin')
            ->assign('country',  'Germany');

        $mailMerge->createDocument();

        $document = $mailMerge->retrieveDocument('pdf');

        file_put_contents('document.pdf', $document);
    }
    catch (Exception $e) {
        die ('Application error: ' . $e->getMessage());
    }
}

我的模板位于项目的根目录(公用文件夹)中。该模板是从this教程下载的,我没有编辑或打开它......

catch异常显示此错误:

  

应用程序错误:无法从磁盘读取本地模板。

我也尝试将模板的路径更改为:

$templatepath = APPLICATION_PATH + "../public/license-agreement-template.docx";
$mailMerge->setLocalTemplate($templatepath);

但结果相同......

然后我尝试用chmod更改文件权限,如下所示:

chmod("/license-agreement-template.docx",0755);

然后我收到了这个错误:

  

警告:chmod():没有这样的文件或目录

有没有人遇到过同样的问题?或者有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

我从未听说过LiveDocx,但这就是我所做的:

  • 针对您的特定错误搜索了LiveDocx的来源:

And here it is

抛出异常if (!is_readable($filename))

您的文件可能存在一些正确的问题(或者您的文件名不正确)Change permissions of file uploaded by PHP