2011-11-18 68 views
0

我正在使用CakePHP来实现自动生成凭证到PDF文件的应用程序。但他们通过用户点击工作。现在我希望自动创建它并将文件写入服务器硬盘。之后,这些文件将被压缩并发送到我选择的电子邮件。CakePHP生成并保存PDF

对于PDF,我使用CakePHP中的Html2ps/Html2pdf组件。你可以在这里查看http://bakery.cakephp.org/articles/Casmo/2010/06/26/creating-pdf-files-with-html2ps-html2pdf

我遇到的一个问题是格式不正确。如果我有链接,看起来像这样:

http://www.mydomain.com/this-is-my-perma-link

他们将使这种方式生成的PDF:

http://www.mydomain.com/this-是 - 我 - perma-链接

这将是一个破碎链接。我试图用其他字符替换短划线,但它不起作用。我不知道为什么。

另一个问题是,如何将生成的PDF文件写入我的服务器硬盘?我有没有这样做的选择,以及如何定义目的地。任何例子?

也许在此先感谢!

+0

你可以发布您的代码,你生成的链接? – api55

+0

我使用Html Helper。这里没有什么特别的$ linkURL = $ this-> Html-> url($ this-> data ['DocumentTemplate'] ['permalink']); – darnpunk

回答

0

嗨,你可以使用FPDF库。您可以将文件保存在服务器中,然后重定向到其他功能。

检查下一个代码。

///呼吁库

<?php 
App::uses('AppController', 'Controller'); 

require_once APP . 'Vendor' . DS . 'fpdf17' . DS . 'fpdf.php'; 

class TestController extends AppController { 
public function test(){ 

--Create fpdf. 
$pdf = new FPDF(); 
$pdf->AddPage(); 


$pdf->Output('files/Report.pdf'); 
$pdf->text($x,$y,'Txt'); 
return $this->redirect(
array('controller' => 'Test', 'action' => 'test_new') 
); 

} 
}