php - html轉pdf - tcpdf




使用PHP將HTML+CSS轉換為PDF? (20)

1)使用MPDF

a)在您的文件yourfolder提取

b)在你的文件yourfolder創建file.php並插入這樣的代碼:

<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style="color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output();   exit;
 ?>

c)從瀏覽器打開file.php




2)使用pdfToHtml

1)將pdftohtml.exe解壓到根文件夾中:

2)在這個文件夾裡,在anyfile.php文件中,把這個代碼(假設,也有一個source example.pdf):

<?php
$source="example.pdf";
$output_fold="FinalFolder";

    if (!file_exists($output_fold)) { mkdir($output_fold, 0777, true);}
$result= passthru("pdftohtml $source $output_fold/new_filename",$log);
//var_dump($result); var_dump($log);
?>

3)輸入FinalFolder ,將會有轉換後的文件(盡可能多的頁面,PDF格式的源文件)

好的,我現在正在用這個磚頭撞牆。

我有一個在Firefox 3和IE 7中呈現良好的HTML(不是XHTML)文檔。它使用相當基本的CSS來設置它的樣式,並且在HTML中渲染得很好。

我現在正在將它轉換為PDF。 我努力了:

  • DOMPDF :它有很多表格問題。 我分解了我的大型嵌套表,並且它有所幫助(在它耗盡高達128M的內存然後死去之前 - 這是我在php.ini中對內存的限制),但它使得表格變得非常混亂,似乎並沒有得到圖片。 這些表只是基本的東西,有些邊框樣式可以在不同的點添加一些線條;
  • HTML2PDF和HTML2PS :我其實有更好的運氣。 它呈現了一些圖像(所有的圖像都是谷歌圖表網址),表格格式更好,但它似乎有一些複雜性問題,我還沒有想出來,並一直與未知的node_type()錯誤死亡。 不知道該從哪裡出發; 和
  • Htmldoc :這對於基本的HTML似乎工作得很好,但幾乎不支持CSS,所以你必須用HTML做所有事情(我沒有意識到它仍然是2001年在Htmldoc-land中),所以對我來說是沒用的。

我嘗試了一款名為Html2Pdf Pilot的Windows應用程序,它實際上做了一件相當不錯的工作,但我需要的東西至少在Linux上運行,理想情況下通過Web服務器上的PHP按需運行。

我真的不敢相信我會陷入困境。 我錯過了什麼嗎?


Web API

如果有人總是搜索這種東西,有一個免費的網站,允許您將HTML代碼和網頁轉換為PDF。 還有一個(很小)的api,它允許你從url獲得pdf文件。

在這裡檢查


HTML to PDF轉換是否真的需要使用PHP在服務器端進行?

我剛剛遇到了jsPDF ,這是一個使用HTML5 / JavaScript的客戶端解決方案。 麻省理工學院許可的代碼也在GitHub上


TCPDF工作正常,沒有依賴關係,是免費的並且不斷修復。 如果提供的HTML / CSS內容格式合理,它的速度合理。 我通常生成50 - 300 kB的HTML輸入(包括CSS),並在1-3秒內以10 - 15個PDF頁面獲得PDF輸出。

我強烈建議在將任何內容髮送到TCPDF之前,使用整潔的庫作為HTML格式化程序。


重要提示:請注意,這個答案是在2009年編寫的,它可能不是當今2018年最具成本效益的解決方案。瀏覽器和其他開源渲染器在這方面比現在好得多。

看看PrinceXML

這絕對是最好的HTML / CSS到PDF轉換器,雖然它不是免費的(但是,嘿,你的編程也可能不是免費的,所以如果它節省了你10個小時的工作,你可以免費回家(因為你也需要考慮到替代解決方案將要求您使用正確的軟件設置專用服務器)

哦,是的,我提到這是第一個(也可能是唯一的)完整ACID2 HTML2PDF解決方案嗎?

PrinceXML示例


不是PHP ,而是一個Java ,它執行以下任務:

Flying Saucer採用XML或XHTML並將CSS 2.1兼容的樣式表應用於其中,以渲染為PDF

它可以從PHP通過system()或類似的調用使用。 儘管它需要input XML格式良好。


你為什麼不嘗試mPDF 2.0版 ? 我用它來創建PDF文檔。 它工作正常。

與此同時,mPDF版本為5.7,與HTML2PS / HTML2PDF相比,它得到了積極維護

但請記住,文檔確實很難處理。 例如,看看這個頁面: https://mpdf.github.io/https://mpdf.github.io/

基於html到pdf的非常基本的任務可以通過這個庫來完成,但是更複雜的任務需要一些時間來閱讀和理解文檔。


只是碰到線程,我試過DOMPDF,它的工作完美。 我已經使用DIV和其他塊級元素來定位所有東西,嚴格保持CSS 2.1,並且它發揮出色。


在成本方面,使用網絡服務(API)在許多情況下可能是更明智的做法。 此外,通過將此流程外包,您可以減輕自己的基礎架構/後端負擔,並且 - 只要您使用的是有信譽的服務 - 確保與調整Web標準,正常運行時間,縮短處理時間和快速交付內容的兼容性。

我已經對目前市場上的大多數Web服務進行了一些研究,請根據價格/價值比例的順序,在以下線索中找到我認為值得一提的API。 他們都提供預先編寫的PHP類和包。

  1. pdflayer.com - 費用:$ - 質量:☆☆☆☆
  2. docraptor.com - 費用:$$$ - 質量:☆☆☆☆☆
  3. pdfcrowd.com - 成本:$$ - 質量:☆☆☆

質量:

擁有高質量的引擎PrinceXML作為骨幹, DocRaptor明顯提供了最好的PDF質量,返回了高度精練和良好轉換的PDF文檔。 但是,這裡的pdflayer API服務非常接近。 Pdfcrowd並不一定以質量得分,而是以處理速度。

成本:

pdflayer.com - 如上所述,這裡最具成本效益的選擇是pdflayer.com,為100個月的PDF和高級訂閱提供完全免費的訂閱計劃,範圍介於9.99美元到119.99美元之間。 每月10,000份PDF文檔的價格為39.99美元。

docraptor.com - 提供7天免費試用期。 高級訂閱計劃的範圍從15美元到2250美元不等。 每月10,000份PDF文檔的價格約為300美元。

pdfcrowd.com - 免費提供100份PDF文件。 高級訂閱計劃的範圍從9美元到89美元不等。 每月10,000份PDF文件的價格為49.00美元。

我已經使用了他們全部三個,並且這個文本應該可以幫助任何人決定而不必為所有人付費。 本文沒有被寫入認可任何一種產品,我也沒有與任何產品有關聯。



我不認為一個PHP類將是用CSS呈現xHtml頁面的最佳選擇。

當新的css規則出來時會發生什麼? (很快css 3.0 ...)

顯而易見,呈現html頁面的最佳方式是瀏覽器。 Firefox 3.0可以本地“打印”為pdf格式,torisugary開發了一個擴展(命令行打印)來使用它。 在這裡你會找到它。

無論如何,仍然有許多問題runninr firefox 只是作為一個PDF轉換器...

目前,我認為wkhtmltopdf是最好的(這是Safari瀏覽器使用的),快速,快速,真棒。 是的,開源,以及... wkhtmltopdf


我已經嘗試了很多PHP的不同庫。 所有列出的我都試過了。 在我看來, TCPDF庫是最好的折中性能/可用性。 安裝和使用非常簡單,在小型媒體應用中也有很好的性能。 如果您需要高性能和非常大的PDF文檔,請使用Zend_PDF模塊,但要準備好編碼!


我推薦TCPDF或DOMPDF,是這樣的順序


我正在使用fpdf來使用php生成pdf文件。 到目前為止,它對我來說工作良好,可以生成簡單的輸出。


最初在開篇中提到的HTML2PDF和HTML2PS正在談論2009年的一個包裹,這個包裹現在已經斷開

但是有一個更好的HTML2PDF

它基於TCPDF,儘管它部分用法語。

您可以在頁面上重複使用表格頁眉或頁腳,並具有頁碼和總頁數。 看看它的例子 。 我已經使用了三年多,並推薦它。


沒有任何外部庫,Zend的devzone有一個關於從php生成pdf的教程( 第1 部分第2部分 )。 我從來沒有實現這種解決方案,但因為它都是PHP,所以您可能會發現它更加靈活,可以實現和調試。


精細的渲染並不意味著什麼。 它是否驗證?

無論輸入有多糟糕,所有瀏覽器都盡可能在屏幕上顯示某些內容。 當然,他們不會做同樣的事情。 如果你想和FireFox一樣的渲染,你可以使用它的渲染引擎。 有它的pdf生成器。 雖然這是一項非常多的工作。


結帳TCPDF 。 它具有一些HTML到PDF的功能,可能足以滿足您的需求。 它也是免費的!


這個問題已經很老了,但沒有看到任何人提到CutyCapt所以我會:)

CutyCapt

CutyCapt是一個小型的跨平台命令行工具,用於捕獲WebKit將網頁呈現為各種矢量和位圖格式,包括SVG,PDF,PS,PNG,JPEG,TIFF,GIF和BMP


那麼如果你想找到一個完美的XHTML + CSS到PDF轉換器庫,忘記它。 這遠非可能。 因為它就像找到一個完美的瀏覽器(XHTML + CSS渲染引擎)。 我們有嗎? IE還是FF?

我在DOMPDF方面取得了一些成功。 問題是你必須修改你的HTML + CSS代碼才能使用圖書館的工作方式。 除此之外,我有很好的結果。

見下文:

原始HTML

將HTML轉換為PDF





pdf-generation