pdfphp
本文給大家介紹的是如何使用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文檔的時候就會要求輸入訪問密碼
『貳』 php怎麼在頁面中直接打開pdf文件
首先,在網上下載第三方轉換軟體。將該軟體解壓至瀏覽PHP文件的同名目錄下。應用exec()執行該可執行文件。並將打開的文件保存至PHP可讀的文件類型(最好以時間戳命名),並將文件賦到一個變數中。
然後通過PHP 的header函數讀取該文件內容。並將讀取的內容在如SDK編輯器上打開。待用戶編輯完成後,保存至該文件中。並重新執行其他格式的文件->PDF軟體轉換。重新生成PDF文件,並將原來可以被PHP 打開的文件刪除。
這樣即可實現用PHP 來打開PDF文件。希望能幫到你。
『叄』 怎樣用thinkphp5來獲取pdf文件頁數
<?php
/**
* 獲取PDF文件頁數的函數獲取
* 文件應當對當前用戶可讀(linux下)
* @param [string] $path [文件路徑]
* @return [array] [數組第一位表示成功與否,第二位表示提示信息]
*/
function getPdfPages($path){
if(!file_exists($path)) return array(false,"文件\"{$path}\"不存在!");
if(!is_readable($path)) return array(false,"文件\"{$path}\"不可讀!");
// 打開文件
$fp=@fopen($path,"r");
if (!$fp) {
return array(false,"打開文件\"{$path}\"失敗");
}else {
$max=0;
while(!feof($fp)) {
$line = fgets($fp,255);
if (preg_match('/\/Count [0-9]+/', $line, $matches)){
preg_match('/[0-9]+/',$matches[0], $matches2);
if ($max<$matches2[0]) $max=$matches2[0];
}
}
fclose($fp);
// 返回頁數
return array(true,$max);
}
}
/**
* 測試代碼
*/
$results=getPdfPages("demo.pdf");
if($results[0]){
// 在這里放置成功讀取後的處理代碼
}else{
// 在這里放置失敗的處理代碼
}
?>
『肆』 為什麼我下載的PDF文件是PHP格式
PHP是網頁,你的PDF文件在PHP做的網頁中,但是下載的時候沒有跳轉,或者本身下載出錯,就會出現你的這種情況。
解決:換個別的網站。或者再次點擊下載。
PS:這種鏈接只能用滑鼠左鍵點擊了等跳轉,不能右鍵(迅雷、QQ旋風)等下載。
『伍』 如何從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: 加入注釋。
『陸』 php將pdf文件格式轉換成圖片,並壓縮
有一份pdf文件,需要將其轉換成圖片, 如果圖片過大,同時還需要將其壓縮。
1、安裝插件
因為不同版本的用法略有區別,我這里用的是2.1版, 最近文檔還需要看官方文檔。
2、簡單使用
3、常用方法
4、其他
1、說明
2、安裝
不同版本的使用略有區別,我這用的是2.5版本的
3、簡單使用
其中resize,可以指定壓縮的寬度和高度,如
如果是指定寬度,智適應高度就是這樣
save的三個參數是,
4、更多
更多使用,看 說明文檔
壓縮圖片的時候,報不能讀取問題
這個可能是遇到最多的問題。可能原因如下:
1、文件讀取許可權
查看文件的許可權,看是否有讀取的許可權(r), 沒有的話直接把文件改為 777
2、插件不支持該格式文件
輸入 php --ri imagick , 在支持列表看是否支持該文件的格式。沒有的話,自己網路啦。
3、內存或緩存不夠
進入插件的 /vendor/intervention/image/src/Intervention/Image/Imagick/Decoder.php , 在24行斷點
可能會得到消息:
然後,在網路下,原來是壓縮的文件過大,插件使用的緩存不夠,這里直接將配置改大即可
將配置文件改成如下
『柒』 請問通過介面返回的pdf的文件流,怎麼用php把這些文件流轉為pdf文件
直接將文件流內容寫入文件,而文件的後綴名設為 pdf 格式就可以了;PHP 不管保存文件流還是文本,都是用這種方式;
$path="demo.pdf";
$ret=file_put_contents($path,$arr['data']);
if($ret){
echo'保存成功';//然後可以取查看文件
}
『捌』 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屬性。