2010-09-21 59 views
3

我目前正在編寫一個代碼,使用PDFlib從http://www.pdflib.com/在PHP中輸出PDF文件。問題是所有的html標籤也寫在輸出文件中。如何能夠取消所有這些標籤?使用PHP編寫PDF(PDFLib)

這是我的示例代碼。

$postVariable = $_POST; 

$contentData = ""; 
foreach($postVariable as $key => $value){ 
    if(is_array($key)){ 
     foreach($key as $key1 => $value1){ 
      $contentData.= $key1 .": ". $value1."<nextline>"; 
     } 
    }else{ 
     $contentData.= $key .": ". $value."<nextline>"; 
    } 
} 

$testdata = nl2br($contentData); 
$pdf = pdf_new(); 
// open a file 
pdf_open_file($pdf, $_SERVER['DOCUMENT_ROOT']."cas".DIRECTORY_SEPARATOR."$filename.pdf"); 
// start a new page (A4) 
pdf_begin_page($pdf, 595, 842); 

// Locate Font Directory 
$fontdir = "C:\WINDOWS\Fonts"; 
// Font Name Parameters 
pdf_set_parameter($pdf, "FontOutline", "arialMyName=$fontdir\arial.ttf"); 
// Find Font 
$arial = PDF_findfont($pdf,"arialMyName","host",0); 
// Set font size and font name 
pdf_setfont($pdf, $arial, 10); 

//$arial = pdf_findfont($pdf, "Arial", "host", 1); 
//pdf_setfont($pdf, $arial, 10); 
// print text 
pdf_show_xy($pdf, "TO THE UNIT OWNER",50, 750); 
pdf_show_xy($pdf, "Test ext", 50,730); 
pdf_show_xy($pdf, "test test", 50,715); 
pdf_show_xy($pdf, $contentData, 50,700); 
// end page 
pdf_end_page($pdf); 
// close and save file 
pdf_close($pdf); 

和樣本輸出是: 到單元OWNER 測試文字 測試測試 類型:公寓**** VAR_NAME:**** var_company:**** var_date:****提交:保存和下載<

它忽略了html標籤並將其包含在內容中。

是否有任何其他方法如何使用我正在使用的庫(PDFlib)將HTML打印到PDF。

謝謝。

問候, Resty

+0

[將HTML + CSS轉換爲PDF格式的PDF?](http://stackoverflow.com/questions/391005/convert-html-css-to-pdf-with-php) – markus 2010-09-21 12:29:28

回答

2

您無法使用PDFLib來生成與HTML PDF內容。好的,你可以寫轉換器,但這是一項巨大的工作。

我推薦使用支持HTML輸入的TCPDF

2

男人......我試圖做同樣的事情一次。直接使用pdflib是非常困難的。

我發現這個項目,託管在谷歌代碼網站上。該項目當之無愧地得到了10星。

它被稱爲DOM PDF,you can download it here。您可以使用CSS支持從HTML頁面生成PDF。您可以使用少於10行的代碼生成PDF!

Look at samples看到它在行動。

+0

float,絕對位置。 .. 不支持。任何選擇? – enloz 2011-10-31 06:53:31

+2

該項目功能更強大,它基於Webkik(Safari和Chrome等人使用的瀏覽器渲染引擎)... http://代碼。google.com/p/wkhtmltopdf/。我確信它會解決你所有的問題。 – Alex 2011-10-31 15:13:57

3

我會推薦TCPDF庫。它可以將您的HTML轉換爲PDF文件,包括CSS代碼。它支持相當多的HTML標籤,並且做了一份體面的工作。但是,從個人經驗來看,雖然很可能用它生成高質量的PDF文件,但結果並不總是如預期的那樣是100%。它可能需要一些調整和擺弄來獲得你想要的結果。

如果你只想刪除HTML標籤,我想你可能想看看strip_tags。但我想這不是你真正想要的。

最後,這個塊上有一個非常酷的新孩子 - 一個使用WebKit HTML和渲染引擎生成PDF的PHP擴展。它被稱爲the libwkhtmltox extension and can be found here。它產生驚人的結果。例如,看看它從紐約時報的主頁製作的PDF - 請參閱(http://www.2shared.com/document/kYuS_G7p/nytimes.html - 點擊下面的「保存到我的電腦」)。該輸出是在未指定任何其他選項的情況下生成例外的。但是,您需要將它作爲PHP擴展運行,這可能是一項不重要的任務。所以我會說:現在堅持使用TCPDF庫。

+0

謝謝你們分享你的知識。我會嘗試TCPDF。 – 2010-09-22 03:14:19

+0

我希望我能給更多的投票選票。非常感謝。 – Cesar 2010-10-16 06:41:46