本文目錄一覽:
- 1、如何使用PHP創建和修改PDF文檔
- 2、PHP如何實現ajax分頁總結
- 3、php另存網頁為PDF格式怎麼實現
- 4、有沒哪個大神知道怎麼用javascript或php實現從客戶端列印伺服器端PDF文件
- 5、PHP 如何用ajax做文件上傳
- 6、如何從php程序讀取pdf文檔中的文本信息
如何使用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);
// add a page
$pdf-AddPage();
// print a line using Cell()
$pdf-Cell(0, 10, ‘Example 002’, 1, 1, ‘C’);
// ———————————————————
//Close and output PDF document
$pdf-Output(‘example_002.pdf’, ‘I’);
?
使用PHP修改PDF文檔
下面我們討論如何使用PHP修改PDF文檔。假設我們需要將一張圖片通過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 009’);
$pdf-SetSubject(‘TCPDF Tutorial’);
$pdf-SetKeywords(‘TCPDF, PDF, example, test, guide’);
// set default header data
$pdf-SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
// set header and footer fonts
$pdf-setHeaderFont(Array(PDF_FONT_NAME_MAIN, ”, PDF_FONT_SIZE_MAIN));
$pdf-setFooterFont(Array(PDF_FONT_NAME_DATA, ”, PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf-SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf-SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf-SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf-SetFooterMargin(PDF_MARGIN_FOOTER);
//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);
// ———————————————————
// add a page
$pdf-AddPage();
// set JPEG quality
$pdf-setJPEGQuality(75);
// Image example
$pdf-Image(‘../images/image_demo.jpg’, 50, 50, 100, 150, ”, ”, ”, true, 150);
// ———————————————————
//Close and output PDF document
$pdf-Output(‘example_009.pdf’, ‘I’);
?
PHP如何實現ajax分頁總結
!DOCTYPE htmlhtml head meta charset=”UTF-8″ titleAjax做分頁/title script src=”bootstrap/js/jquery-1.11.2.min.js”/script script src=”Ajax_pag.js”/script script src=”bootstrap/js/bootstrap.min.js”/script link href=”bootstrap/css/bootstrap.min.css” rel=”stylesheet” type=”text/css”/ /head style .header{ margin-top: 20px; } /style body div style=”margin-top: 20px; margin-top: 20px;” 關鍵字: input id=”key” type=”text” name=”gjz”/ input type=”button” value=”查詢” id=”ck” / /div table class=”table table-bordered header” thead tr th地區代號/th th地區名稱/th th父級代號/th /tr /thead tbody id=”list” /tbody /table div style=”margin:0 auto; width:500px;” ul class=”pagination” id=”fenye” /ul /div /body/html
php另存網頁為PDF格式怎麼實現
有很多方法可以實現
谷歌瀏覽器頁面中右鍵選擇列印,然後就可以把網頁另存為PDF了。
調用第三方庫來完成,如html2pdf、tcpdf等。
有沒哪個大神知道怎麼用javascript或php實現從客戶端列印伺服器端PDF文件
使用springmvc 構造一個 rest風格的框架,然後配置一個pdf的視圖,然後就就可以把伺服器上的數據已pdf形式展現到瀏覽器了,php也可以使用rest的。
PHP 如何用ajax做文件上傳
通過傳統的form表單提交的方式上傳文件:
[html] view plain copy 在CODE上查看代碼片派生到我的代碼片form id= “uploadForm” action= “” method= “post” enctype =”multipart/form-data”
h1 測試通過Rest介面上傳文件 /h1
p 指定文件名: input type =”text” name=”filename” //p
p 上傳文件: input type =”file” name=”file” //p
p 關鍵字1: input type =”text” name=”keyword” //p
p 關鍵字2: input type =”text” name=”keyword” //p
p 關鍵字3: input type =”text” name=”keyword” //p
input type =”submit” value=”上傳”/
/form
不過傳統的form表單提交會導致頁面刷新,但是在有些情況下,我們不希望頁面被刷新,這種時候我們都是使用Ajax的方式進行請求的。
Ajax的方式進行請求:
[javascript] view plain copy 在CODE上查看代碼片派生到我的代碼片$.ajax({
url : “”,type : “POST”,
data : $( ‘#postForm’).serialize(),
success : function(data) {
$( ‘#serverResponse’).html(data);
},
error : function(data) {
$( ‘#serverResponse’).html(data.status + ” : ” + data.statusText + ” : ” + data.responseText);}
});
通常我們提交(使用submit button)時,會把form中的所有表格元素的name與value組成一個queryString,提交到後台。這用jQuery的方法來說,就是serialize。
通過$(‘#postForm’).serialize()可以對form表單進行序列化,從而將form表單中的所有參數傳遞到服務端。
但是上述方式,只能傳遞一般的參數,上傳文件的文件流是無法被序列化並傳遞的。
不過如今主流瀏覽器都開始支持一個叫做FormData的對象,有了這個FormData,我們就可以輕鬆地使用Ajax方式進行文件上傳了。
關於FormData及其用法
FormData是什麼呢?我們來看看Mozilla上的介紹。
XMLHttpRequest Level 2添加了一個新的介面FormData.利用FormData對象,我們可以通過JavaScript用一些鍵值對來模擬一系列表單控制項,我們還可以使用XMLHttpRequest的send()方法來非同步的提交這個”表單”.比起普通的ajax,使用FormData的最大優點就是我們可以非同步上傳一個二進位文件.
所有主流瀏覽器的較新版本都已經支持這個對象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。
參見:
FormData()
想得到一個FormData對象:
var formdata = new FormData();
W3c草案提供了三種方案來獲取或修改FormData。
方案1:創建一個空的FormData對象,然後再用append方法逐個添加鍵值對:
var formdata = new FormData();
formdata.append(“name”, “呵呵”);
formdata.append(“url”, “”);方案2:取得form元素對象,將它作為參數傳入FormData對象中!
var formobj = document.getElementById(“form”);var formdata = new FormData(formobj);
方案3:利用form元素對象的getFormData方法生成它!
var formobj = document.getElementById(“form”);var formdata = formobj.getFormData()
Method
FormData.append
本方法用於向已存在的鍵添加新的值,如該鍵不存在,新建之。
語法
formData.append(name, value);
formData.append(name, value, filename);
注: 通過 FormData.append()方法賦給欄位的值若是數字會被自動轉換為字元(欄位的值可以是一個Blob對象,一個File對象,或者一個字元串,剩下其他類型的值都會被自動轉換成字元串).
參數解釋
name
鍵 (key), 對應表單域
value
表單域的值
filename (optional)
The filename reported to the server (a USVString), when a Blob or File is passed as the second parameter. The default filename for Blob objects is “blob”.
FormData.delete
將一對鍵和值從 FormData 對象中刪除。
formData.delete(username);
FormData.get
返回給定鍵的第一個值
formData.append(‘username’, ‘Justin’);
formData.append(‘username’, ‘Chris’);
formData.get(username); // “Justin”
FormData.getAll
返回給定鍵的所有值
formData.append(‘username’, ‘Justin’);
formData.append(‘username’, ‘Chris’);
formData.getAll(username); // [“Justin”, “Chris”]
FormData.has
檢查是否包含給定鍵,返回 true 或 false
formData.has(username);
FormData.set
設置給定鍵的值
formData.set(name, value);
formData.set(name, value, filename);
瀏覽器兼容情況
來自 MDN:
Desktop
FeatureChromeFirfox(Gecko)Intenet ExplorerOperaSafariBasic support7+4.0(2.0)10+12+5+
append with filename(Yes)22.0(22.0)???
delete, get, getAll, has, setBehind FlagNot supportedNot supported(Yes)Not supportedMobile
FeatureAndroidChrome AndroidFirfox Mobile (Gecko)Firfox OS (Gecko)IE MobileOpera MobileSafari MobileBasic support3.0?4.0(2.0)1.0.1?12+?
append with filename??22.0(22.0)1.2???
delete, get, getAll, has, set(Yes)(Yes)Not supportedNot supportedNot supported(Yes)Not supported2015年06月04日發布
Ajax通過FormData上傳文件
1.使用form表單初始化FormData對象方式上傳文件HTML代碼
form id=”uploadForm” enctype=”multipart/form-data”
input id=”file” type=”file” name=”file”/
button id=”upload” type=”button”upload/button
/form
javascript代碼
$.ajax({
url: ‘/upload’,
type: ‘POST’,
cache: false,
data: new FormData($(‘#uploadForm’)[0]),
processData: false,
contentType: false
}).done(function(res) {
}).fail(function(res) {});
這裡要注意幾點:
processData設置為false。因為data值是FormData對象,不需要對數據做處理。
form標籤添加enctype=”multipart/form-data”屬性。
cache設置為false,上傳文件不需要緩存。
contentType設置為false,不設置contentType值,因為是由form表單構造的FormData對象,且已經聲明了屬性enctype=”multipart/form-data”,所以這裡設置為false。
上傳後,伺服器端代碼需要使用從查詢參數名為file獲取文件輸入流對象,因為input中聲明的是name=”file”。
如果不是用form表單構造FormData對象又該怎麼做呢?
2.使用FormData對象添加欄位方式上傳文件
HTML代碼
div id=”uploadForm”
input id=”file” type=”file”/
button id=”upload” type=”button”upload/button
/div
這裡沒有form標籤,也沒有enctype=”multipart/form-data”屬性。
javascript代碼
var formData = new FormData();
formData.append(‘file’, $(‘#file’)[0].files[0]);$.ajax({
url: ‘/upload’,
type: ‘POST’,
cache: false,
data: formData,
processData: false,
contentType: false
}).done(function(res) {
}).fail(function(res) {});
這裡有幾處不一樣:
append()的第二個參數應是文件對象,即$(‘#file’)[0].files[0]。
contentType也要設置為『false』。
從代碼$(‘#file’)[0].files[0]中可以看到一個input type=”file”標籤能夠上傳多個文件,只需要在input type=”file”里添加multiple或multiple=”multiple”屬性。
3.伺服器端讀文件
從Servlet 3.0 開始,可以通過 request.getPart() 或 request.getPars() 兩個介面獲取上傳的文件。
如何從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.php3finished/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_duration: 配置二頁的切換時間。
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: 加入注釋。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185317.html