本文給大家介紹的是如何使用php生成pdf文件,並且把該文件加密或設置訪問密碼的方法,有需要的小夥伴可以參考下。
項目需求:php生成pdf文件,並且把該文件加密或設置訪問密碼
開源的TCPDF是基於PHP的一套類庫,它能夠很好的生成PDF格式的文檔。並且支持文件加密,在目前的開源PHP框架、系統、應用中也使用得很廣。這里是設置PDF文檔的相關屬性的方法原型,其中就可以設置密碼
?
1
2
3
4
5
6
7
8
TCPDF::SetProtection
(
$permissions
=
array('print',
'modify',
'',
'annot-forms',
'fill-forms',
'extract',
'assemble',
'print-high'),
$user_pass
=
'',
$owner_pass
=
null,
$mode
=
0,
$pubkeys
=
null
)
通過SetProtection()方法設置後,生成的PDF文檔就是加密過的,在用戶打開PDF文檔的時候就會要求輸入訪問密碼
⑵ 許昌鯉魚IT電腦計算機軟體編程培訓中心教你如何利用PHP生成PDF文件
在PHP代碼中生成PDF文件是一項非常耗時的工作,早期的程序員通常是在PHP代碼中利用FPDF生成PDF文件。但在如今,有很多的函數庫可以使用,藉助它們你可以從你提供的HTML文檔生成PDF文件,從而讓工作變得簡單方便起來。
FPDF是一個PHP類,它允許用純PHP代碼生成PDF文件,這也就是說我們不用使用PDFlib庫。FPDF中的F就代表著自由:你可以以各種方式使用它,並根據你的需求調整它。下面我們來看看FPDF的特徵:
1. 自由選擇單元格,頁面格式和邊距;
2. 管理頁眉和頁腳;
3. 自動分頁;
4. 自動換行和文本對齊;
5. 支持圖片(JPEG,PNG,GIF);
6. 顏色管理;
7. 支持鏈接;
接下來再介紹一下可以直接從HTML生成PDF的函數庫。
DomPDF
DomPDF是一個從HTML到PDF的轉換器,它遵循CSS2.1的HTML布局,還有是用PHP編寫的渲染引擎。DomPDF以樣式為主導:它可以下載和讀取外鏈樣式表,內鏈樣式標簽和HTML元素的屬性。它的特點包括:
1. 處理CSS屬性,包括了@import,@media和@page規則;
2. 支持HTML的可見屬性;
3. 支持外部樣式表,通過本地或http/ftp;
4. 支持復雜的表結構;
8. 支持圖片(JPEG,BMP,PNG,GIF);
5. 不依賴於其他PDF庫;
TCPDF
TCPDF是一個用於生成PDF文件的開源PHP類,該項目起源於2002年,現在已經有全世界成千上萬的人在使用。它的提點包括:
1. 基本功能不需要外部函數庫;
2. 支持標准頁面格式,自定義頁面格式;
3. 支持UTF-8編碼和從右向左的語言;
4. 支持各種字體;
5. 支持圖片和圖形的轉換;
6. 支持頁面壓縮;
7. 支持頁眉和頁腳管理;
⑶ 如何使用PHP創建和修改PDF文檔
示例一:使用PHP生成一個簡單的PDF文檔
以下為引用的內容:
require_once('../config/lang/eng.php');
require_once('../tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 002');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set font
$pdf->SetFont('times', 'BI', 20);
⑷ php wkhtmltopdf怎麼實現
安裝wkhtmltopdf
# apt-get install wkhtmltopdf
從HTML生成PDF文件的基本語法如下:
# wkhtmltopdf input-file output-file
我們可以從任何網頁生成PDF:
# wkhtmltopdf example.com example.pdf
或從本地html文件:
# wkhtmltopdf example.html example.pdf
以上命令只能在Linux box 圖形環境中使用。如果我們在一個VPS或專用伺服器上生成PDF,如果我們執行該命令,我們將得到從下錯誤:
wkhtmltopdf: cannot connect to X server
為了解決這個問題,我們需要使用一個名為 xvfb 的工具。
Xvfb是一個 X 伺服器,能夠運行在沒有顯示硬體和沒有物理輸入設備的機器上。它使用虛擬內存來模擬一個mb framebuffer。
回到頂部
安裝 xvfb
# apt-get install xvfb
接下來,我們需要創建一個shell腳本:
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf $*
然後將它保存在 /usr/bin/wkhtmltopdf.sh 下
下一步,我們將創建一個 symbolic 鏈接,這樣我們就可以執行腳本而不用編寫的完整路徑:
# ln -s /usr/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf2
讓我們嘗試執行shell腳本,並看看會發生什麼。
# wkhtmltopdf2 example.com example.pdf
Loading page (1/2)
Printing pages (2/2)
Done
好,如果能夠正確運行。就可以用以下自定義PHP腳本來生成一個PDF文件。
//Turn on output buffering
ob_start();
echo "<html>";
echo "<head>";
echo "<link href='http://example.com/style.css' rel='stylesheet' type='text/css'>";
echo "</head>";
你試試吧,我還要在後盾網學習呢,有不會的可以問我
⑸ PHP生成PDF,用什麼類庫好
FPDF
FPDF
這個PHP
Class允許你採用純PHP(更確切地說就是不需要使用PDFlib)來生成PDF文件。它所具有的特點包括:可選擇的unit大小,頁面格式和頁邊
距;頁眉和頁腳管理;自動分頁;自動換行與文本自動對齊;支持JPEG與PNG圖片格式;支持著色和文件超鏈接;支持TrueType,Type1與
encoding;支持頁面壓縮。
HTML2PDF
HTML2PDF能夠把一個HTML文本轉換成一個列印機友好的PDF文件。這個PHP腳本構建在FPDF
PHP腳本之上。
TCPDF
TCPDF是一個用於快速生成PDF文件的PHP5函數包。TCPDF基於FPDF進行擴展和改進。支持UTF-8,Unicode,HTML和
XHTML。
html2ps
html2ps
能夠把帶有圖片,復雜表格(包含rowspan/colspan)
,layer/div和css樣式的HTML轉換成Postscript與PDF。
html2ps對CSS2.1支持非常好,並且很好地兼容不正確的HMTL。它甚至能夠轉換幾乎是採用CSS設計的網站如msn.com。
HTML_ToPDF
HTML_ToPDF能夠把任何HTML文檔轉換成在任何平台和列印機下界面格式都一樣的PDF文檔。它包括支持圖片轉換,使用樣式表來定製PDF
文件和錯誤處理。
cPdfWriter
cPdfWriter是一個能夠輸出PDF文檔的PHP5
class。基於TCPDF,FPDF和其它相關腳本。
dompdf
dompdf是一個HTML到PDF的轉換工具。它的核心是一個遵循大部份CSS2.1樣式的Rendering引擎。dompdf採用樣式驅動,
它能夠下載並讀取外部樣式,整個樣式標簽和單個HTML元素的樣式屬性。它同樣支持目當大部份HTML屬性。
⑹ 怎麼用PHP在HTML中生成PDF文件
FPDF是一個允許使用純PHP生成PDF文檔的PHP類,換句話說,沒有使用PDFlib 函數庫。FPDF中的F代表免費和自由:你可以在任何情況下使用,並且支持自定義,來滿足你特定的需求,特點:
1、可以選擇單元、頁面格式和邊距
2、可以管理頁眉和頁腳
3、自動分頁
4、自動換行和文本對齊
5、支持圖片(JPEG,PNG,gif)
6、色彩豐富,支持鏈接
順便也介紹一些可以直接從HTML生成PDF的函數庫。
DomPDF
domPDF將HTML轉換為PDF。DomPDF遵循CSS2.1的HTML布局,它是用PHP編寫的渲染引擎。DomPDF以樣式為主導:它會下載並讀取外鏈樣式表,內聯樣式和HTML元素的style屬性值。並且還支持大部分的HTML可見屬性。
特點:
1、處理大部分CSS2.1和少許CSS3屬性,包括@import, @media & @page 規則
2、支持大部分HTML 4.1的可見屬性
3、支持外部樣式表,包括本地或者http/ftp鏈接的(通過fopen-wrappers)
4、支持復雜的表結構,包括行和列的span,separate & collapsed border models和獨立的cell樣式
5、支持圖片(gif, png, bmp & jpeg)
6、不依賴於其他的PDF函數庫
TCPDF
TCPDF也可以用於生成PDF文檔,並且它是一個開源的PHP類庫。
TCPDF項目開始於2002年,現在已經被成千上萬的人自由使用。TCPDF is a Free Libre Open Source Software (FLOSS).
特點:
1、基本功能不依賴於其他PDF函數庫
2、標准頁面格式、支持頁面格式自定義、邊距自定義和單元計量
3、支持UTF-8編碼和文字方向從右到左的語言。
4、支持TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0等字體
5、支持字體子集,並提供方法發布一些XHTML + CSS code, Javascript and Forms
6、支持圖片和圖形的轉換
7、支持頁面壓縮(需要php-zlib擴展)
8、自動管理頁眉和頁腳
⑺ php生成pdf 下載 同步還是非同步
同步
首先需要安裝wkhtmltopdf這個軟體 需要執行shell_exec函數的php文件和安裝的wkhtmltopdf.exe可執行文件在同一目錄下,不然php找不到這個執行文件
shell_exec("wkhtmltopdf.exe --page-size A4 --outline 網頁地址 pdf文件名");
--page-size 以A4紙的尺寸顯示pdf內容
--outline 顯示目錄(網頁中h1,h2來定)
網頁地址 需要轉成pdf的網頁地址
pdf文件名 生成pdf的文件名,可以使用絕對路徑
⑻ php怎麼把含有圖片的html頁面 轉換為pdf 文件
1.FPDF: PDF生成器
FPDF是一個純粹的通過PHP類來生成PDF文檔的方法,需要生成的內容直接在PHP代碼中來指定,生成文字,圖片,線條等等,都有自己的方法。下面介紹一個用FPDF來生成」Hello World」的PDF文檔:
1.<?php
2.require(『fpdf.php』);
3.
4.$pdf=new FPDF();
5.$pdf->AddPage();
6.$pdf->SetFont(『Arial』,'B』,16);
7.$pdf->Cell(40,10,』Hello World!』);
8.$pdf->Output();
9.?>
要生成PDF文檔,首先我們需要包括庫文件fpdf.php。
然後,我們需要建立一個FPDF對象使用默認構造FPDF(),這種構造可以通過三個值即頁面方向(縱向或橫向),計量單位,和頁面大小( A4,A5……),默認情況下,頁面大小為A4,計量單位是毫米。
它也可以被明確地指明:
1.$pdf=new FPDF(『P』,'mm』,'A4′);
然後用AddPage()函數來增加一個頁面,左上角和頁面的內容在默認情況下邊距為1厘米,當然我們可以使用SetMargins()來改變。要生成一段文本,首先我們要使用SetFont()來選擇一種字體和字型大小。
1.$pdf->SetFont(『Arial』,'B』,16);
我們使用Cell()函數來輸出一個文本。一個Cell()是一個載有文字的矩形區域。
最後,我們要關閉這個文件並且把它輸出,這就是用到了$pdf->Output();,我們還可以在這里指定我們想要使用的文件名,如$pdf->Output(』sample.pdf』);
⑼ 怎麼用PHP在HTML中生成PDF文件
php有很多開源的生成PDF的類庫你直接搜下就能找到
類似這樣的插件基本都輸出同樣格式就可以;
這下邊是個案列:
require_once('tcpdf.php');
//實例化
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
// 設置文檔信息
$pdf->SetCreator('Helloweba');
$pdf->SetAuthor('yueguangguang');
$pdf->SetTitle('Welcome to helloweba.com!');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, PHP');
// 設置頁眉和頁腳信息
$pdf->SetHeaderData('logo.png', 30, 'Helloweba.com', '致力於WEB前端技術在中國的應用',
array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));
// 設置頁眉和頁腳字體
$pdf->setHeaderFont(Array('stsongstdlight', '', '10'));
$pdf->setFooterFont(Array('helvetica', '', '8'));
// 設置默認等寬字體
$pdf->SetDefaultMonospacedFont('courier');
// 設置間距
$pdf->SetMargins(15, 27, 15);
$pdf->SetHeaderMargin(5);
$pdf->SetFooterMargin(10);
// 設置分頁
$pdf->SetAutoPageBreak(TRUE, 25);
// set image scale factor
$pdf->setImageScale(1.25);
// set default font subsetting mode
$pdf->setFontSubsetting(true);
//設置字體
$pdf->SetFont('stsongstdlight', '', 14);
$pdf->AddPage();
$str1 = '歡迎來到Helloweba.com';
$pdf->Write(0,$str1,'', 0, 'L', true, 0, false, false, 0);
//輸出PDF
$pdf->Output('t.pdf', 'I');