save('php://output');
```
5. 若有用到長度,其單位為twip,1twip=1/1440英吋,1 cm=0.4 in=576 twip
6. 一些預設及建立頁面設定功能 ```
$PHPWord->setDefaultFontName('微軟正黑體'); //設定預設字型
$PHPWord->setDefaultFontSize(10); //設定預設字型大小
$sectionStyle = array('orientation' => null, 'marginLeft' => 900); //頁面設定
$section = $PHPWord->createSection($sectionStyle); //建立一個頁面
```
- (1) orientation 的值可以是橫向landscape或直向portrait。設定項目有:orientation、 marginTop、marginLeft、marginRight、marginBottom、borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor
7. 新增標題($titleCount 是指標題N,$depth會對應$titleCount) ```
$fontStyle = array('color'=>'006699', 'size'=>18, 'bold'=>true); //文字樣式設定
$PHPWord->addTitleStyle( $titleCount, $fontStyle, $styleParagraph); //設定標題樣式
$section->addTitle( '通訊錄', $depth ); //新增標題
```
- (1) 可用的文字設定:size(文字大小)、name(字型)、bold(粗體)、italic(斜體)、superScript(上標)、subScript(下標)、 underline(底線)、strikethrough(刪除線)、Color(文字顏色)、fgColor(背景色)
8. underline 底線可用的常數: ```
PHPWord_Style_Font::UNDERLINE_NONE = 'none';
PHPWord_Style_Font::UNDERLINE_DASH = 'dash';
PHPWord_Style_Font::UNDERLINE_DASHHEAVY = 'dashHeavy';
PHPWord_Style_Font::UNDERLINE_DASHLONG = 'dashLong';
PHPWord_Style_Font::UNDERLINE_DASHLONGHEAVY = 'dashLongHeavy';
PHPWord_Style_Font::UNDERLINE_DOUBLE = 'dbl';
PHPWord_Style_Font::UNDERLINE_DOTHASH = 'dotDash';
PHPWord_Style_Font::UNDERLINE_DOTHASHHEAVY = 'dotDashHeavy';
PHPWord_Style_Font::UNDERLINE_DOTDOTDASH = 'dotDotDash';
PHPWord_Style_Font::UNDERLINE_DOTDOTDASHHEAVY = 'dotDotDashHeavy';
PHPWord_Style_Font::UNDERLINE_DOTTED = 'dotted';
PHPWord_Style_Font::UNDERLINE_DOTTEDHEAVY = 'dottedHeavy';
PHPWord_Style_Font::UNDERLINE_HEAVY = 'heavy';
PHPWord_Style_Font::UNDERLINE_SINGLE = 'single';
PHPWord_Style_Font::UNDERLINE_WAVY = 'wavy';
PHPWord_Style_Font::UNDERLINE_WAVYDOUBLE = 'wavyDbl';
PHPWord_Style_Font::UNDERLINE_WAVYHEAVY = 'wavyHeavy';
PHPWord_Style_Font::UNDERLINE_WORDS = 'words';
```
9. fgColor 背景色可用的常數 ```
PHPWord_Style_Font::FGCOLOR_YELLOW = 'yellow';
PHPWord_Style_Font::FGCOLOR_LIGHTGREEN = 'green';
PHPWord_Style_Font::FGCOLOR_CYAN = 'cyan';
PHPWord_Style_Font::FGCOLOR_MAGENTA = 'magenta';
PHPWord_Style_Font::FGCOLOR_BLUE = 'blue';
PHPWord_Style_Font::FGCOLOR_RED = 'red';
PHPWord_Style_Font::FGCOLOR_DARKBLUE = 'darkBlue';
PHPWord_Style_Font::FGCOLOR_DARKCYAN = 'darkCyan';
PHPWord_Style_Font::FGCOLOR_DARKGREEN = 'darkGreen';
PHPWord_Style_Font::FGCOLOR_DARKMAGENTA = 'darkMagenta';
PHPWord_Style_Font::FGCOLOR_DARKRED = 'darkRed';
PHPWord_Style_Font::FGCOLOR_DARKYELLOW = 'darkYellow';
PHPWord_Style_Font::FGCOLOR_DARKGRAY = 'darkGray';
PHPWord_Style_Font::FGCOLOR_LIGHTGRAY = 'lightGray';
PHPWord_Style_Font::FGCOLOR_BLACK = 'black';
```
10. 新增文字及相關文字設定 ```
$paragraphStyle=array('align' => 'both', 'spaceAfter'=>300); //段落設定
$section->addText('內容', $fontStyle, $paragraphStyle); //新增文字段落
```
- (1) 可用段落設定:align、spaceBefore、spaceAfter、spacing
11. 換行及換頁 ```
$section->addTextBreak(2); //換行,可指定換幾行
$section->addPageBreak(); //換頁
```
12. 插入連結和圖片,$style 可用設定:width、height、align,單位為px ```
$section->addLink( $linkSrc, $linkName, $fontStyle, $paragraphStyle); //加入連結
$section->addImage( $src, $style ); //插入圖片
```
13. 插入有序或無序清單, 設定有序(TYPE\_NUMBER)或無序(TYPE\_BULLET\_FILLED)清單,$depth為階層,從0開始。 ```
$listStyle = array('listType' => PHPWord_Style_ListItem::TYPE_NUMBER);
$section->addListItem( $text, $depth, $fontStyle, $listStyle, $paragraphStyle ); //新增清單項目
```
14. 插入表格 ```
$styleTable=array('borderColor' => '006699', 'borderSize' => 6, 'cellMargin' => 50); //表格樣式
$styleFirstRow = array('bgColor' => '66BBFF'); //首行樣式
$PHPWord->addTableStyle('myTable', $styleTable, $styleFirstRow); //建立表格樣式
$table = $section->addTable('myTable'); //建立表格
$cellStyle = array('textDirection' => PHPWord_Style_Cell::TEXT_DIR_BTLR, 'bgColor' => 'C0C0C0'); //儲存格樣式
$table->addRow(); //新增一列
$table->addCell(2000, [$cellStyle])->addText('內容'); //新增一格
```
- (1) 表格可用設定:cellMarginTop、cellMarginLeft、cellMarginRight、cellMarginBottom、cellMargin、bgColor、borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor、borderInsideHSize、borderInsideHColor、borderInsideVSize、borderInsideVColor、borderSize、borderColor
- (2) 儲存格可用設定:valign、textDirection、bgColor、borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor
15. 垂直合併除存格 ```
$table = $section->addTable();
$table->addRow();
$table->addCell(100,array('vMerge' => 'restart'))->addText('1');
$table->addCell(100)->addText('2');
$table->addRow();
$table->addCell(100,array('vMerge' => 'fusion'));
$table->addCell(100)->addText('3');
```
看起來會像這樣:
2. 基本產生圖檔方法: ```
header("Content-type: image/png");
$im = @imagecreatetruecolor(400, 100) or die("無法建立GD圖片");
imagepng($im, XOOPS_ROOT_PATH . "/uploads/{$sn}.png");
imagedestroy($im);
```
- (1) resource imagecreatetruecolor(int $寬 , int $高) //建立全彩畫布
- (2) bool imagepng(resource $im \[, string $檔名 \[, int $品質 \[, int $濾鏡\]\]\])//產生png
- (3) bool imagedestroy(resource $im) //釋放記憶體
3. 產生透明背景 ```
imagesavealpha($im, true);
$trans_colour = imagecolorallocatealpha($im, 255, 255, 255, 127);
imagefill($im, 0, 0, $trans_colour);
```
- (1) bool imagesavealpha ( resource $im , bool $是否保存alpha channel ) //透明色版
- (2) int imagecolorallocatealpha ( resource $ im , int $紅 , int $綠 , int $ 藍 , int $透明 )//設定含透明度的顏色,顏色值從1~255,透明值從0(不透明)~127(透明)
- (3) bool imagefill ( resource $im , int $x , int $y , int $顏色設定 )//填滿顏色
4. 產生文字(各式字體練習素材:)[範例字型](http://www.tad0616.net/uploads/tad_book3/file/39/font.zip) ```
$text_color = imagecolorallocatealpha($im, 0, 0, 0, 50);
$gd = gd_info();
if ($gd['JIS-mapped Japanese Font Support']) {
$name = iconv("UTF-8", "shift_jis", $name);
}
imagettftext($im, 20, 0, 0, 60, $text_color, "font.ttf", $name);
```
- (1) array gd\_info ( void ) //用來取得GD函式庫的各種支援情形,若伺服器設定成支援日文編碼,那就必須進行文字的轉碼,以避免中文變成亂碼。
- (2) array imagettftext(resource $im , float $大小 , float $角度 , int $x , int $y , xint $顏色 , string $字型檔 , string $文字) //若要置中x大約是「(圖寬-字數x字尺寸x1.5)/2」,而y則是「(圖高-字尺寸)/2+字尺寸」
5. 製作縮圖(或加入為背景圖): ```
$bg_im = imagecreatefromjpeg("images/bg.jpg");
imagecopyresampled($im, $bg_im, 0, 0, 0, 0, 400, 100, 1024, 768);
```
- (1) resource imagecreatefromjpeg ( string $jpg圖檔來源 ) //讀入某張圖
- (2) bool imagecopyresampled(resource $目的 , resource $來源 , int $目的\_x , int $目的\_y , int $來源\_x , int $來源\_y , int $目的寬 , int $目的高 , int $來源寬 , int $來源高) //縮放圖檔並產生新圖,若是不想讓底圖變形,來源寬和來源高可以指定成和目的寬、目的高一致,這樣就只會擷取局部,而不會使之變形。