示例一:使用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);
B. 如何從php程序讀取pdf文檔中的文本信息
PHP程序pdf格式文件函數庫
本函數庫共有65個函數
PDF是Adobe所發展的可攜式文件格式,它的文件可以在網路上傳輸、瀏覽,甚至使用印表機印出,或使用其它輸出裝置輸出,都可以保存原來的文字及圖片的編排。詳細的信息可以參考 Adobe 的網站。參考其中有關 PDF 或 Acrobat 的部份。
在 UNIX 系統中,可以使用 Thomas Merz 開發的 PDF 函數庫。將它編譯安裝完成後,再編譯 PHP 程序方可供 PHP 使用 pdflib。編譯時可能要 JPEG library 及 TIFF library。
除了用這個函數庫可以建立 PDF 文件外,FastIO 公司發展的產品 ClibPDF 也可以處理 PDF 文件。
以下為處理 PDF 文件的範例,本例對 test.pdf 加工後等待用戶讀取。
<?php
$fp = fopen("test.pdf", "w");
$pdf = PDF_open($fp);
pdf_set_info_author($pdf, "Uwe Steinmann");
PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");
PDF_set_info_author($pdf, "Name of Author");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");
PDF_begin_page($pdf, 595, 842);
PDF_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, 4);
pdf_set_text_rendering($pdf, 1);
PDF_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
PDF_end_page($pdf);
PDF_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php3>finished</A>";
?>
上例中的 gettest.php3 可能像下面的樣子
<?php
$fp = fopen("test.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>
PDF_get_info: 返迴文件信息。
PDF_set_info_creator: 配置建檔者字元串。
PDF_set_info_title: 配置文件標題。
PDF_set_info_subject: 配置文件主題。
PDF_set_info_keywords: 配置文件的關鍵字。
PDF_set_info_author: 配置文件作者。
PDF_open: 建立新的 PDF 檔。
PDF_close: 關閉 PDF 檔。
PDF_begin_page: 啟始 PDF 文件頁面。
PDF_end_page: 關閉 PDF 文件頁面。
PDF_show: 輸出字元串到 PDF 文件。
PDF_show_xy: 輸出字元串到指定坐標。
PDF_set_font: 配置使用的字型及大小。
PDF_set_leading: 配置行距。
PDF_set_text_rendering: 配置文字表現方式。
PDF_set_horiz_scaling: 配置文字水平間距。
PDF_set_text_rise: 配置文字高度。
PDF_set_text_matrix: 配置文字矩陣。
PDF_set_text_pos: 配置文字位置。
PDF_set_char_spacing: 配置字元間距。
PDF_set_word_spacing: 配置字間距。
PDF_continue_text: 輸出文字。
PDF_stringwidth: 計算字元串的寬度。
PDF_save: 儲存環境變數。
PDF_restore: 還原環境變數。
PDF_translate: 移動原點。
PDF_scale: 縮放類。
PDF_rotate: 旋轉類。
PDF_setflat: 配置平滑值。
PDF_setlinejoin: 配置連接參數。
PDF_setlinecap: 配置 linecap 參數。
PDF_setmiterlimit: 配置斜邊界限。
PDF_setlinewidth: 配置線寬。
PDF_setdash: 配置虛線樣式。
PDF_moveto: 配置處理的坐標點。
PDF_curveto: 繪貝氏曲線。
PDF_lineto: 繪直線。
PDF_circle: 繪圓。
PDF_arc: 繪弧。
PDF_rect: 繪長方形。
PDF_closepath: 形成封閉的向量形狀。
PDF_stroke: 沿向量繪線。
PDF_closepath_stroke: 形成封閉的向量形狀並沿向量繪線。
PDF_fill: 填滿目前的向量。
PDF_fill_stroke: 填滿目前的向量並沿向量繪線。
PDF_closepath_fill_stroke: 形成封閉的向量形狀沿向量繪線並填滿。
PDF_endpath: 關閉目前向量。
PDF_clip: 組合所有向量。
PDF_setgray_fill: 指定填入的顏色為灰階。
PDF_setgray_stroke: 指定繪圖的顏色為灰階。
PDF_setgray: 指定繪圖的顏色為灰階並填入。
PDF_setrgbcolor_fill: 指定填入的顏色為彩色。
PDF_setrgbcolor_stroke: 指定繪圖的顏色為彩色。
PDF_setrgbcolor: 指定繪圖的顏色為彩色並填入。
PDF_add_outline: 目前頁面加入書簽。
PDF_set_transition: 配置頁的轉換。
PDF_set_ration: 配置二頁的切換時間。
PDF_open_gif: 打開 GIF 圖檔。
PDF_open_memory_image: 打開內存圖檔。
PDF_open_jpeg: 打開 JPEG 圖檔。
PDF_close_image: 關閉圖檔。
PDF_place_image: 放置圖片到 PDF 檔指定位置。
PDF_put_image: 放置圖片到 PDF 檔。
PDF_execute_image: 放置 PDF 檔中圖片到指定位置。
PDF_add_annotation: 加入注釋。
C. 怎麼用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、自動管理頁眉和頁腳
D. php怎麼實現在線閱讀pdf文件
為了更好地用戶體驗,建議你前端採用 FlexPaper在線顯示文檔組件來顯示你的文檔,先用PDF2SWF工具將你的pdf轉成flash文件,然後用 FlexPaper來顯示轉換後的swf文件,這樣用戶瀏覽速度會很快,就像網路文庫那樣!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript" src="pdfobject.js"></script>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//第一種方式
// var myPDF = new PDFObject({ url: "1.pdf" }).embed();
//第二種方式
var variablename = new PDFObject({ url: "1.pdf" }).embed("pdfobj");
//第三種方式
// var myembedparams = {
// url: "1.pdf"
// };
// var myPDF = new PDFObject(myembedparams).embed();
});
</script>
</head>
<body>asdfadsfasdf
<div id="pdfobj"></div>
</body>
</html>