include_once "header.php"; require_once(TADTOOLS_PATH.'/tcpdf/tcpdf.php'); $pdf = new TCPDF("P", "mm", "A4", true, 'UTF-8', false); //PDF內容設定 $pdf->Output('snews.pdf', 'D');
$orientation
頁面方向,預設為P(直式),橫向為L,空值則自動判斷$unit
度量單位,pt、mm(預設)、cm、in$format
紙張大小,預設為 A4(210 x 297mm)$unicode
是否使用unicode,預設為true$encoding
文件編碼,預設為 UTF-8$diskcache
使用磁碟快取,true 會減少記憶體用量,但效能會變差,預設為false$pdfa
使用PDF/A模式(長期保存的電子文件格式),預設為false。$name
檔名;$dest
輸出模式:
I
: 在瀏覽器中呈現 (預設,測試期間建議用此值);D
: 強制下載;F
: 存在主機空間裡;S
: 以文字方式傳回文件;FI
: 等同F+I :FD
: 等同F+D;E
: 以郵件附件方式傳回文件。$pdf->setPrintHeader(false); //不要頁首 $pdf->setPrintFooter(false); //不要頁尾 $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //設定自動分頁 $pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中) $pdf->SetFont('droidsansfallback', '', 12, '', true); //設定字型 $pdf->SetMargins(15, 15); //設定頁面邊界, $pdf->AddPage(); //新增頁面,一定要有,否則內容出不來
$family
字型(droidsansfallback
是自加的,msungstdlight
細明體是內建)$style
樣式:B
粗、I
斜、U
底線、D
刪除線、O
上方線$size
字型大小(預設為12pt)$fontfile
字型檔$subset
使用文字子集$pdf->Text( $x, $y, $txt, $fstroke = false, $fclip = false, $ffill = true, $border = 0, $ln = 0, $align = '', $fill = false, $link = '', $stretch = 0, $ignore_min_height = false, $calign = 'T', $valign = 'M', $rtloff = false );
$x
、$y
左上角起始位置;常搭配GetX()
、SetX()
或GetY()
、SetY()
使用。$txt
是呈現內容;$fstroke
則是外框寬度;$fclip
是否使用裁剪模式;$ffill
是否填色;$border
:0
(無邊框,預設)、1
(加框)、L
(左)、T
(上)、R
(右)、B
(下),亦可用陣列來設定樣式,如:
array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)))
$ln
下一個元件的位置:0
(預設)右邊;1
下行最左邊;2
目前元件下方$align
對齊方向:L
、C
、R
、J
。$fill
儲存格背景是否填色(1)或透明(0)。$link
可加上連結$stretch
延伸:0
不延伸;1字
大於格寬才縮放文字;2
一律縮放文字到格寬;3
字大於格寬才縮放字距;4
一律縮放字距到格寬$ignore_min_height
是否自動忽略最小高度$calign
儲存格中的垂直對齊:T
頂部、A
字體頂部、L
字體基線、 D
字體底部、B
底部$valign
文字本身的垂直對齊:T
頂部、M
中間、B
底部$rtloff
是否使用頁面左上角作為原點(x和:y初始位置)。strip_word_html()
來過濾。
function strip_word_html($text, $allowed_tags = '<a><b><blockquote><br><dd><del><div><dl><dt><em><h1><h2><h3><h4><h5><h6><hr><i><img><li><ol><p><pre><small><strong><sub><sup><table><tcpdf><td><th><thead><tr><tt><u><ul>') { mb_regex_encoding('UTF-8'); //replace MS special characters first $search = array('/‘/u', '/’/u', '/“/u', '/”/u', '/—/u'); $replace = array('\'', '\'', '"', '"', '-'); $text = preg_replace($search, $replace, $text); if (mb_stripos($text, '/*') !== false) { $text = mb_eregi_replace('#/\*.*?\*/#s', '', $text, 'm'); } $text = preg_replace(array('/<([0-9]+)/'), array('< $1'), $text); $text = strip_tags($text, $allowed_tags); $text = preg_replace(array('/^\s\s+/', '/\s\s+$/', '/\s\s+/u'), array('', '', ' '), $text); $search = array('#<(strong|b)[^>]*>(.*?)</(strong|b)>#isu', '#<(em|i)[^>]*>(.*?)</(em|i)>#isu', '#<u[^>]*>(.*?)</u>#isu'); $replace = array('<b>$2</b>', '<i>$2</i>', '<u>$1</u>'); $text = preg_replace($search, $replace, $text); $num_matches = preg_match_all("/\<!--/u", $text, $matches); if ($num_matches) { $text = preg_replace('/\<!--(.)*--\>/isu', '', $text); } $text = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $text); return $text; }
$html = new Tidy(); $tidy_options = array('clean' => true, 'indent' => true); $html->parseString($snews['content'], $tidy_options, 'utf8'); $html->cleanRepair();
$pdf->writeHTML($html, $ln=1, $fill=0, $reseth=true, $cell =true, $align='');
$html
內容(屬性一定要用雙引號)$reseth
若true
會重設最後一格的高度$cell
自動增加內距cellpadding
來增加儲存格內距,用border來設定邊框。colspan
,上下合併rowspan
<img src="images/xx.png" border="0">
$pdf->Cell($w, $h = 0, $txt = '', $border = 0, $ln = 0, $align = '', $fill = 0, $link = nil, $stretch = 0, $ignore_min_height = false, $calign = 'T', $valign = 'M')
Text()
簡易故最常用,想像任何一段文字都放在一個可以指定寬高的格子中,但注意文字不會隨著格子寬度自動換行,文字可設定隨格子自動放大縮小。$pdf->MultiCell( $w, $h, $txt, $border = 0, $align = 'J', $fill = false, $ln = 1, $x = '', $y = '', $reseth = true, $stretch = 0, $ishtml = false, $autopadding = true, $maxh = 0, $valign = 'T', $fitcell = false );
$reseth
若true
會重設最後一格的高度$maxh
高度上限(需>$h
)$fitcell
自動縮放字大小到格內 writeHTMLCell()
來繪製之
$pdf->writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=false, $reseth=true, $align='', $autopadding=true);
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.3, 'depth_h'=>0.3, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));
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())
$file
:檔名或圖檔路徑$x
、$y
:以左上角為起點的x,y座標位置$w
、$h
:寬度、高度,若設0會自動偵測$type
:圖檔格式(大小寫不拘),支援GIF, JPEG, PNG, BMP, XBM, XPM等格式$link
:連結網址,或用AddLink()
來新增連結$resize
:若為true
,會縮放原圖到$w 及 $h 指定的大小。$dpi
:縮放時用的解析度$palign
:水平對齊方向,L
(左)、C
(中)、R
(右)$ismask
:若為true
,則視該圖為遮罩$imgmask
:由此函數傳回圖片物件,或設為 false
$fitbox
:若不為false
,則縮放圖片至外層容器中,亦可用字元來指定縮放方式,如水平方向縮放 (L = 左, C = 中, R = 右) 或上下縮放(T =上, M =中, B =下)$hidden
:若為true
,則不顯示圖片。$fitonpage
:如果為true
,圖片大小調整為不超過頁面尺寸。$alt
:若為true
,圖片將不會直接秀出,而是傳回圖片的ID。$altimgs
:交替顯示圖像的ID的數組。每個的替代圖像必須是一個數組,它有兩個值:一個整數,表示圖像ID(對圖像的方法的返回值)和一個布爾值,表示如果圖像是默認的打印。sortable
功能來做的,需用 get_jquery(true);
來載入jquery uitad_function.php
語系才能顯示)
<img src="<{$xoops_url}>/modules/tadtools/treeTable/images/updown_s.png" style="cursor: s-resize;margin:0px 4px;" alt="<{$smarty.const._TAD_SORTABLE}>" title="<{$smarty.const._TAD_SORTABLE}>">
style="cursor: move;"
<div class="col-sm-4" id="sn_<{$snews.sn}>">
<div class="row" id="sort">
<div id="save_msg"></div>
<script type="text/javascript"> $(document).ready(function(){ $('#sort').sortable({ opacity: 0.6, cursor: 'move', update: function() { var order = $(this).sortable('serialize'); $.post('save_sort.php', order, function(theResponse){ $('#save_msg').html(theResponse); }); } }); }); </script>
save_sort.php
,用來儲存排序。
<?php include_once "../../mainfile.php"; include_once "function.php"; $sort = 1; foreach ($_POST['sn'] as $sn) { $sql = "update " . $xoopsDB->prefix("snews") . " set `sort`='{$sort}' where `sn`='{$sn}'"; $xoopsDB->queryF($sql) or die(_TAD_SORT_FAIL . " (" . date("Y-m-d H:i:s") . ")" . $sql); $sort++; } echo _TAD_SORTED . "(" . date("Y-m-d H:i:s") . ")";