眾所周知,TCPDF庫是一個開源的PHP庫,用于生成PDF文檔,支持各種語言字符集。TCPDF可以在HTML到PDF文件之間立即轉(zhuǎn)換,而且直接在服務(wù)器上生成PDF文件。它提供的樣式和字體處理機制允許用戶創(chuàng)建一種自定義的PDF文件,該文件可以用于在線復印和打印。
使用PHP Tcpdf庫生成PDF文件后,我們可以使用TCPDF庫的其他功能,通過PHP將它們直接下載。這篇文章介紹如何使用TCPDF庫中的getPDFData()函數(shù)和header()函數(shù)來讓用戶下載生成的PDF文件。
我們先下載并安裝TCPDF庫。TCPDF下載鏈接為:http://www.tcpdf.org/。安裝方法可以參考官網(wǎng),這里不再詳述。
<?php require_once('tcpdf/tcpdf.php'); // 將新建的文章內(nèi)容生成為PDF文件并返回字符串 // 自動生成PDF對象 $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // 設(shè)置文件信息 $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('John Doe'); $pdf->SetTitle('Sample PDF Document'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); // 設(shè)置頁眉和頁腳 $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE . ' 001', PDF_HEADER_STRING); $pdf->setFooterData(array(0, 64, 0), array(0, 0, 0)); $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // 設(shè)置默認等寬字體 $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // 設(shè)置字體subsetting功能 $pdf->setFontSubsetting(true); // 設(shè)置margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // 設(shè)置自動分頁 $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); // 設(shè)置圖片比例因素 $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // 設(shè)置中文字體 // include chinese font $fontname = $pdf->addTTFfont('/path/to/simkai.ttf', 'TrueTypeUnicode', '', 96); $pdf->SetFont($fontname, '', 14, '', true); // 添加一頁 $pdf->AddPage(); // 輸出內(nèi)容,使用writeHTML()函數(shù) $html = 'some text'; $pdf->writeHTML($html, true, false, true, false, ''); // 獲取PDF整個字符串,包含文件頭信息 $pdf_data = $pdf->Output('example.pdf', 'S'); ?>
代碼輸出的“$pdf_data”變量是一個下載該PDF文件的字符串。接下來我們可以使用header()函數(shù)將字符串發(fā)送到用戶的瀏覽器,讓其直接下載生成的PDF文件:
<?php // 輸出處理HTTP頭方法 header("Content-type:application/pdf"); header("Content-Disposition:attachment;filename='example.pdf'"); echo $pdf_data; ?>
在上述代碼中,“Content-type:application/pdf”和“Content-Disposition:attachment;filename='example.pdf'”告訴瀏覽器以下載模式顯示字節(jié)數(shù)組。最后,echo語句將我們剛剛用TCPDF生成的PDF內(nèi)容輸出到HTTP響應(yīng)中。在訪問上述代碼所在的PHP文件時,就會以下載文件的形式顯示生成的PDF文件。
總之,使用TCPDF庫制作PDF文件并直接下載它們非常方便快捷。希望本篇文章能為你的項目帶來幫助。