Toggle main menu visibility
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
:::
登入
登入
帳號
密碼
登入
重整畫面
:::
所有書籍
「[1042] XOOPS模組開發進階」目錄
MarkDown
7-8 /templates/phone_book_index_b3.html
1. jquery入門及連動選單
1-1 /templates/phone_book_index_b3.html
1-2 /index.php
1-3 /ajax.php
2. 表單驗證及點擊編輯
2-1 /admin/main.php
2-2 /templates/phone_book_adm_main_b3.html
2-3 /index.php
2-4 /templates/phone_book_index_b3.html
2-5 /save_phone_book.php
2-6 /get_name.php
3. 自適應表格及拉動排序
3-1 /index.php
3-2 /templates/phone_book_index_b3.html
3-3 /admin/cate.php
3-4 /templates/phone_book_adm_cate_b3.html
3-5 /admin/main.php
3-6 /templates/phone_book_adm_main_b3.html
3-7 (利用FooTable的分頁+json功能)/index.php
3-8 (利用FooTable的分頁+json功能)/templates/phone_book_index_b3.html
3-9 (利用FooTable的分頁+json功能)/columns.json
3-10 (利用FooTable的分頁+json功能)/rows.json
3-11 (舊版FooTable)/index.php
3-12 (舊版FooTable)/templates/phone_book_index_b3.html
3-13 (舊版FooTable)tadtools/FooTable.php
4. 大小月曆應用
4-1 /templates/phone_book_adm_main_b3.html
4-2 /interface_menu.php
4-3 /birthday.php
4-4 /templates/phone_book_birthday_b3.html
4-5 /xoops_version.php
4-5 /get_event.php
5. Google圖表應用及頁籤
5-1 /interface_menu.php
5-2 /chart.php
5-3 /templates/phone_book_chart_b3.html
5-4 /xoops_version.php
5-5 /ajax.php
5-6 /templates/phone_book_index_b3.html
5-7 /index.php
5-8 /templates/phone_book_adm_main_b3.html
6. 各種文字檔的匯出匯入
6-1 /interface_menu.php
6-2 /html.php
6-3 /index.php
6-4 /function.php
6-5 /csv.php
6-6 /templates/phone_book_adm_main_b3.html
6-7 /admin/main.php
6-8 /json.php
6-9 /get_json.php
6-10 資料庫語法
7. Excel的匯出與匯入
7-1 /header.php
7-2 /excel.php
7-3 /test.php
7-4 /excel_one.php
7-5 /templates/phone_book_adm_main_b3.html
7-6 /admin/main.php
7-7 /index.php
7-8 /templates/phone_book_index_b3.html
8. 產生PDF檔
8-1 /header.php
8-2 /pdf.php
8-3 /pdf.php (多檔下載版)
9. 輸出Word檔及圖片檔
9-1 /header.php
9-2 /word.php
9-3 /index.php
9-4 /templates/phone_book_index_b3.html
8-1 /header.php
\[1042\] XOOPS模組開發進階 ==================== [](http://www.tad0616.net/uploads/tad_book3/file/39/8.pdf) ### 一、 快速匯出PDF 1. 完整手冊:
2. HTML標籤索引:[http://www.w3school.com.cn/tags/tag\_table.asp](http://www.w3school.com.cn/tags/tag_table.asp) 3. 線上製作logo:
4. 建立空白PDF文件 ``` include_once "header.php"; require_once(TADTOOLS_PATH.'/tcpdf/tcpdf.php'); $pdf = new TCPDF("P", "mm", "A4", true, 'UTF-8', false); //PDF內容設定 $pdf->Output('通訊錄.pdf', 'D'); ``` 5. 「$orientation」頁面方向,預設為P(直式),橫向為L,空值則自動判斷 6. 「$unit」度量單位,pt、mm(預設)、cm、in 7. 「$format」紙張大小,預設為A4 8. 「$unicode」是否使用unicode,預設為true 9. 「$encoding」文件編碼,預設為UTF-8 10. 「$diskcache」使用磁碟快取,true會減少記憶體用量,但效能會變差,預設為false 11. 「$pdfa」使用PDF/A模式(長期保存的電子文件格式),預設為false。 12. Output的參數如下: - (1) 「$name」檔名 - (2) 「$dest」輸出模式:「I: 在瀏覽器中呈現 (預設);D: 強制下載;F: 存在主機空間裡;S: 以文字方式傳回文件;FI: 等同F+I :FD: 等同F+D;E: 以郵件附件方式傳回文件。 ### 二、 常用語法 1. 常用基本架構: ``` $pdf->setPrintHeader(false); //不要頁首 $pdf->setPrintFooter(false); //不要頁尾 $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //設定自動分頁 $pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中) $pdf->SetFont('droidsansfallback', '', 12, '', true); //設定字型 $pdf->AddPage(); //新增頁面 ``` 2. SetFont 的參數: - (1) 「$family」字型名稱 - (2) 「$style」樣式:B粗、I斜、U底線、D刪除線、O上方線 - (3) 「$size」字型大小(預設為12pt) - (4) 「$fontfile」字型檔 - (5) 「$subset」使用文字子集 3. 將HTML轉為PDF ``` $pdf->writeHTML($html, $ln=1, $fill=0, $reseth=true, $cell =true, $align=''); ``` 4. writeHTML的參數如下(有支援的網頁標籤:a, b, blockquote, br, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, ol, p, pre, small, span, strong, sub, sup, table, tcpdf, td, th, thead, tr, tt, u, ul): - (1) 「$html」內容(屬性一定要用雙引號) - (2) 「$ln」下一個元件的位置:「0(預設)右邊;1下行最左邊;2目前元件下方」 - (3) 「$fill」是否填色:「true為不透明;false透明」 - (4) 「$reseth」若true會重設並統一同一排格子的高度 - (5) 「$cell」自動增加內距 - (6) 「$align」對齊方向:「L;C;R」。 5. HTML的表格可利用cellpadding來增加儲存格內距,用border來設定邊框。 6. A4=210 x 297mm = 595 X 842 px (72 dpi),1mm=2.83px,1px=0.35mm 7. 左右合併 colspan=3,上下合併rowspan=4 8. 以網頁方式插入圖片:有支援「http://網址/圖檔」的方式,但若網址是localhost,圖片路徑需改用相對路徑。 ```
``` ### 三、 設定頁首頁尾邊界 1. 設定頁面邊界,預設$right的值會等於$left,$ keepmargins為true會覆蓋頁面預設邊界 ``` $pdf->SetMargins(20, 25); $pdf->setHeaderMargin(10); //頁首上方與頁面頂端的距離 $pdf->setFooterMargin(20); //頁尾上方與頁面尾端的距離 ``` ### 四、 設定頁首頁尾 1. 設定頁首: ``` $pdf->setHeaderData($ln='', $lw=0, $ht='', $hs='', $tc=array(0, 0, 0), $lc=array(0, 0, 0)); $pdf->setFooterData($tc=array(0, 0, 0), $lc=array(0, 0, 0)); ``` - (1) $ln:頁首圖片檔名(圖片目錄預設在tcpdf/images,可修改tcpdf\_config.php的K\_PATH\_IMAGES設定重設圖片目錄) - (2) $lw:頁首圖片寬度,單位mm - (3) $ht:頁首文字標題 - (4) $hs:頁首小字說明 - (5) $tc:文字顏色,RGB以陣列呈現,如:array(0,64,255) - (6) $lc:頁首橫線顏色 2. 頁首字型: ``` $pdf->setHeaderFont(array('droidsansfallback', '', 12)); $pdf->setFooterFont(array('droidsansfallback', '', 12)); ``` - (1) $font為一個陣列,如:array('字型名稱','字型樣式','字型大小') ### 五、 精雕細琢產出PDF 1. 1. 插入文字的三種方法: ``` $pdf->Cell($w, $h, $txt, $border, $ln, $align, $fill, $link, $stretch, $ignore_min_height, $calign, $valign); $pdf->MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml, $autopadding, $maxh, $valign, $fitcell); $pdf->writeHTMLCell($w, $h, $x, $y, $html, $border, $ln, $fill, $reseth, $align, autopadding); ``` 2. 其中Cell()最常用,想像任何一段文字都放在一個可以指定寬高的格子中,但文字不會隨著格子寬度自動換行,而且文字可已設定隨格子大小來自動放大縮小。 3. 若需要讓文字可以自動換行,請使用MultiCell(),一樣需指定格子寬高。 4. writeHTMLCell()則是用座標來放文字,可以放在頁面的任何一個位置。 - (1) 「$w」寬、「$h」最小高度、「$border」框線:「0,1,T,R,B,L」 - (2) 「$ln」下一個元件的位置:「0(預設)右邊;1下行最左邊;2目前元件下方」 - (3) 「$align」對齊方向:「L,C,R,J」 - (4) 「$fill」是否填色:「true為不透明;false透明」 - (5) 「$link」加入連結 - (6) 「$stretch」延伸:0不延伸;1字大於格寬才縮放文字;2一律縮放文字到格寬;3字大於格寬才縮放字距;4一律縮放字距到格寬、「$ignore\_min\_height」自動忽略最小高度 - (7) 「$calign」格內對齊:「T格上,C格中,B格下,A字上,L字底,D字下」 - (8) 「$valign」垂直對齊:「T,C,B」 - (9) 「$reseth」若true會重設最後一格的高度 - (10) 「$autopadding」自動調整內距 - (11) 「$x、$y」左上角起始位置 - (12) 「$ishtml」請設為false - (13) 「$maxh」高度上限(需>$h) - (14) 「$fitcell」自動縮放字大小到格內 - (15) 「$html」內容(屬性一定要用雙引號) 5. 設定文字陰影 ``` $pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal')); ``` ### 六、 插入圖片 1. 以物件方式插入圖片: ``` $pdf->Image($file, $x='', $y='', $w=0, $h=0, $type='', $link='', $align='', $resize=false, $dpi=300, $palign='', $ismask=false, $imgmask=false, $border=0, $fitbox=false, $hidden=false, $fitonpage=false, $alt=false, $altimgs=array()); ``` - (1) $file:檔名或圖檔路徑 - (2) $x、$y:以左上角為起點的x,y座標位置 - (3) $w、$h:寬度、高度,若設0會自動偵測 - (4) $type:圖檔格式(大小寫不拘),支援GIF, JPEG, PNG, BMP, XBM, XPM等格式 - (5) $link:連結網址,或用AddLink()來新增連結 - (6) $align:對齊方向,T(上)、M(中)、B(下)、N(下一行) - (7) $resize:若為true,會縮放原圖到$w 及 $h 指定的大小。 - (8) $dpi:縮放時用的解析度 - (9) $palign:水平對齊方向,L(左)、C(中)、R(右) - (10) $ismask:若為true,則視該圖為遮罩 - (11) $imgmask:由此函數傳回圖片物件,或設為 false - (12) $border:0(無邊框,預設)、1(加框)、L(左)、T(上)、R(右)、B(下),亦可用陣列來設定樣式,如:array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - (13) $fitbox:若不為false,則縮放圖片至外層容器中,亦可用字元來指定縮放方式,如水平方向縮放 (L = 左, C = 中, R = 右) 或上下縮放(T =上, M =中, B =下) - (14) $hidden:若為true,則不顯示圖片。 - (15) $fitonpage:如果為true,圖片大小調整為不超過頁面尺寸。 - (16) $alt:若為true,圖片將不會直接秀出,而是傳回圖片的ID。 - (17) $altimgs:交替顯示圖像的ID的數組。每個的替代圖像必須是一個數組,它有兩個值:一個整數,表示圖像ID(對圖像的方法的返回值)和一個布爾值,表示如果圖像是默認的打印。 ### 七、 加入壓縮檔 1. 請下載[ pclzip.lib.zip](http://www.tad0616.net/uploads/tad_book3/file/39/pclzip.lib.zip),並解壓上傳到模組的class目錄下。 2. 建立 dl.php,內容如下,並修改 $dir\_name 及 $filename 的預設值即可。 ``` create($zip_dir , PCLZIP_OPT_REMOVE_PATH, $zip_dir); if ($v_list == 0) { die("Error : " . $zipfile->errorInfo(true)); } else { header("location: {$file_url}"); } } delete_directory($zip_dir); mk_dir($zip_dir); exit; function delete_directory($dirname) { if (is_dir($dirname)) { $dir_handle = opendir($dirname); } if (!$dir_handle) { return false; } while ($file = readdir($dir_handle)) { if ($file != "." && $file != "..") { if (!is_dir($dirname . "/" . $file)) { unlink($dirname . "/" . $file); } else { delete_directory($dirname . '/' . $file); } } } closedir($dir_handle); rmdir($dirname); return true; } ```
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
130
人線上 (
80
人在瀏覽
線上書籍
)
會員: 0
訪客: 130
更多…