2011-11-18 67 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') 
); 

} 
}