国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHPWord中文手冊整理

wangdai / 3403人閱讀

摘要:修正中文支持的問題,使用前如果發現亂碼,需要進行一些修正解決編碼問題,會對輸入的文字進行編碼轉化,如果你使用或者編碼的話就會出現亂碼,如果你用編碼,就查找類庫中所有方法中的轉碼將其刪除,如果你采用或者編碼,使用進行編碼轉換。

修正

中文支持的問題,使用前如果發現亂碼,需要進行一些修正:

解決編碼問題,PHPword?會對輸入的文字進行utf8_encode編碼轉化,如果你使用GBK、GB2312或者utf8編碼的話就會出現亂碼,如果你用utf8編碼,就查找類庫中所有方法中的?utf8_encode?轉碼將其刪除,如果你采用GBK或者GB2312編碼,使用iconv進行編碼轉換。

解決中文字體支持,在writer/word2007/base.php中?312行添加?$objWriter->writeAttribute("w:eastAsia",$font)

啟動php zip支持,windows環境下在php配置文件php.ini中,將extension=php_zip.dll前面的分號“;”去除;(如果沒有,請添加extension=php_zip.dll此行并確保php_zip.dll文件存在相應的目錄),然后同樣在php.ini文件中,將?zlib.output_compression = Off?改為zlib.output_compression = On?;?

計量單位:緹(twips)

PHPWord最基本的計量單位:“緹”(twips),我們常常在文件中看到或使用計量單位“緹”,它是開源辦公軟件中最基本的計量單位,“緹”是"TWentieth of an Inch Point"的簡寫,意思 1/20磅,與其他常用劑量單位的換算是1緹=1/1,440英寸
1緹=1/567厘米
1緹=1/15像素

字體設置

文檔默認字體是Arial,字號10號,我們可以通過以下方法設置默認字體和字號:
注,該庫存在中文字體支持問題,解決方法:見文檔開頭

$PHPWord->setDefaultFontName("Tahoma");
$PHPWord->setDefaultFontSize(12);
文檔屬性設置

我們可以設置下列文檔屬性

名稱 類型 描述
Creator String 創建者
Company String 公司
Title String 標題
Description String 描述
Category String 分類
Last modified by String 最后修改者
Created Datetime 創建時間
Modified Datetime 修改時間
Subject String 主題
Keywords String 關鍵詞

我們可以通過以下方法設置文檔屬性

$properties = $PHPWord->getProperties();
$properties->setCreator("My name"); 
$properties->setCompany("My factory");
$properties->setTitle("My title");
$properties->setDescription("My description"); 
$properties->setCategory("My category");
$properties->setLastModifiedBy("My name");
$properties->setCreated( mktime(0, 0, 0, 3, 12, 2010) );
$properties->setModified( mktime(0, 0, 0, 3, 14, 2010) );
$properties->setSubject("My subject"); 
$properties->setKeywords("my, key, word");
新建文檔 添加頁面

添加默認頁面(默認頁面方向和頁邊距):

$section = $PHPWord->createSection();
頁面樣式

調整頁面樣式和布局有兩種方法:
1.創建樣式數組:

$sectionStyle = array("orientation" => null,
       "marginLeft" => 900,
       "marginRight" => 900,
       "marginTop" => 900,
       "marginBottom" => 900);
$section = $PHPWord->createSection($sectionStyle);

2.直接調用樣式屬性設置方法進行設置:

$section = $PHPWord->createSection();
$sectionStyle = $section->getSettings();
$sectionStyle->setLandscape();
$sectionStyle->setPortrait();
$sectionStyle->setMarginLeft(900);
$sectionStyle->setMarginRight(900);
$sectionStyle->setMarginTop(900);
$sectionStyle->setMarginBottom(900);
頁面樣式屬性

注意:所有的屬性對大小寫敏感 !

屬性 描述
orientation 頁面方向:默認豎向:null 橫向:landscape
marginTop 上邊距,單位:twips.
marginLeft 左邊距,單位:twips.
marginRight 右邊距,單位:twips.
marginBottom 下邊距,單位:twips..
borderTopSize 上邊框尺寸,單位:twips.
borderTopColor 上邊框顏色
borderLeftSize 左邊框尺寸,單位 :twips.
borderLeftColor 左邊框顏色
borderRightSize 右邊框尺寸,單位:twips.
borderRightColor 右邊框顏色
borderBottomSize 底邊框尺寸,單位:twips.
borderBottomColor 底邊框顏色

頁面高度和寬度是自動設置的,你可以通過以下兩個屬性來修改,但不推薦進行修改。

屬性 描述
pageSizeW 頁面寬度,單位: twips.
pageSizeH 頁面高度,單位:twips.
文本 添加文本

向文檔添加文本使用方法函數: addText.(注意PHPword?會對輸入的文字進行utf8_encode編碼轉化,如果你使用GBK、GB2312或者utf8編碼的話就會出現亂碼,如果你用utf8編碼,就查找類庫中所有方法中的?utf8_encode?轉碼將其刪除,如果你采用GBK或者GB2312編碼,使用iconv進行編碼轉換。)

$section->addText( $text, [$fontStyle], [$paragraphStyle] );
addText()
參數 類型 描述
$text String 文本內容.
$fontStyle String / Array 字體樣式.
$paragraphStyle String / Array 段落樣式
添加文本資源

文本資源可以包含文本鏈接,可以統一賦予段落樣式,添加文本資源使用函數方法createTextrun.

createTextRun()
參數 類型 描述
$paragraphStyle String / Array 文本樣式.

添加文本資源后,就可以添加具有獨特樣式的文本或鏈接了。

$textrun = $section->createTextRun();
$textrun->addText("I am bold", array("bold"=>true)); 
$textrun->addText("I am italic, array("italic"=>true));
$textrun->addText("I am colored, array("color"=>"AACC00"));

當然也可以繼承使用段落或文字樣式

文本樣式

設置文本樣式有兩種方法:
1.內嵌樣式:

$fontStyle = array("color"=>"006699", "size"=>18, "bold"=>true);
$section->addText("helloWorld", $fontStyle);

$text = $section->addText("helloWorld");
$style = $text->getStyle();
$style->setColor("006699");
$style->setSize(18);
$style->setBold();

2.或者定義一個樣式定義設置文本樣式,定義一種樣式后,必須把第二個參數設置為樣式名稱,使用方法函數addFontStyle:

$PHPWord->addFontStyle( $styleName, $fontStyle);
addFontStyle()
參數 類型 描述
$styleName String 樣式名稱
$fontStyle Array 樣式風格.

示例:

$fontStyle = array("color"=>"006699", "size"=>18, "bold"=>true);
$PHPWord->addFontStyle("myOwnStyle", $fontStyle);
$text = $section->addText("helloWorld", "myOwnStyle");

添加段落樣式,使用方法函數addParagraphStyle:

addParagraphStyle()
參數 類型 描述
$styleName String 段落樣式名稱.
$paragraphStyle Array 段落樣式.
樣式屬性列表

屬性大小寫敏感 !

Font Style
名稱 描述
size 字號.
name 字體
bold 粗體
italic 斜體
superScript 上標
subScript 下標
underline 下劃線,使用常量: PHPWord_Style_Font::UNDERLINE_...
Color 字體顏色
fgColor 前景色. 只能使用預定義常量:PHPWord_Style_Font::FGCOLOR_...
Paragraph Style
名稱 描述
align 水平對齊:leftrightcenterboth / justify
spaceBefore 段前間距,單位: twips.
spaceAfter 段后間距,單位:twips
spacing 行間距,單位: twips.
換行符

添加換行符,使用方法函數 addTextBreak:

$section->addTextBreak();

添加多個換行符:

$section->addTextBreak(15);
添加分頁符

添加分頁符,使用方法函數:addPageBreak:

$section->addPageBreak();
列表 添加列表

添加列表使用方法函數: addListItem:

$section->addListItem( $text, [$depth], [$styleText], [$styleList], [$styleParagraph] );
addListItem()
參數 類型 描述
$text String 文本內容.
$depth Integer 編號
$styleText String / Array 文本樣式.
$styleList Array 列表樣式.
$styleParagraph String / Array 段落樣式
列表樣式

示例:

$listStyle = array("listType" => PHPWord_Style_ListItem::TYPE_NUMBER);
$section->addListItem("Listitem 1", 0, null, $listStyle);
列表樣式屬性列表

屬性大小寫敏感!

名稱 描述
listType 列表符號樣式.使用常量 PHPWord_Style_ListItem::TYPE_...
超鏈接 添加超鏈接

添加超鏈接,使用方法函數: addLink:

$section->addLink( $linkSrc, [$linkName], [$styleFont], [$styleParagraph]);
addListItem()
參數 類型 描述
$linkSrc String 鏈接地址
$linkName String 鏈接名稱.
$styleFont String / Array 文本樣式
$styleParagraph String / Array 段落樣式

注意在添加鏈接地址時最好trim一下前后有空格很可有可能導致文檔打不開

超鏈接樣式

定義超鏈接風格的兩種方法

內嵌樣式:

$linkStyle = array("color"=>"0000FF",
    "underline"=>PHPWord_Style_Font::UNDERLINE_SINGLE);
$section->addLink("http://www.google.de", null, $linkStyle);

或者定義一個樣式定義設置超鏈接樣式,定義一種樣式后,必須把第三個參數設置為樣式名稱

$linkStyle = array("color"=>"0000FF",
    "underline"=>PHPWord_Style_Font::UNDERLINE_SINGLE);
$PHPWord->addLinkStyle("myHyperlinkStyle", $linkStyle);
$section->addLink("http://www.google.de", null, "myHyperlinkStyle");
addLinkStyle()
參數 類型 描述
$styleName String 超鏈接樣式名稱.
$styles Array 鏈接樣式.可以使用各種字體樣式屬性
圖片 添加圖片

添加圖片的函數方法: addImage:

$section->addImage( $src, [$style] );
addImage()
參數 類型 描述
$src String 圖像的服務器路徑,支持相對和絕對路徑
$style Array 圖片樣式.

注意在添加圖片路徑時最好trim一下前后有空格很可有可能導致文檔打不開

圖片樣式

添加圖片樣式只能使用數組方式 :

$imageStyle = array("width"=>350, "height"=>350, "align"=>"center");
$section->addImage("EARTH.jpg", $imageStyle);
圖片樣式屬性

大小寫敏感!

名稱 描述
width 圖像寬度,單位像素
height 圖像高度,單位像素
align 圖像對齊方式leftrightcenter

如果沒有指定圖片高或寬的屬性,系統將使用PHP原生函數”getimagesize”來獲取相關屬性。
PHPWord 支持的圖片格式: gif, jpeg, png, bmp, tiff.

添加GD生成圖片

你也可以添加由GD庫生成的圖片,使用函數方法:addMemoryImage:

$section->addMemoryImage( $link, [$style] );
addMemoryImage()
參數 類型 描述
$link String 生成圖片的php文件的路徑. 注意: 應設置文件的絕對路徑(就像你在瀏覽器中調用php文件),否則會發生錯誤。
$style Array 圖像樣式.

示例:

$section->addMemoryImage("http://localhost/image.php");

你GD圖片樣式的設置和本地圖片一樣.

PHPWord 支持的 GD 圖片類型: png, jpeg, gif.

添加水印

添加水印的頁面需要一個頭部引用,添加水印方法函數:addWatermark

addWatermark()
參數 類型 描述
$src String 水印圖片的文件地址
$style Array 水印圖片樣式

水印圖片是在頁面是絕對定位的,所以水印圖片至少需要兩個樣式屬性

名稱 描述
marginLeft 左邊距,單位像素
marginTop 上邊距,單位像素

注:圖片樣式并沒有提供圖像并排,文字環繞等功能,可以通過與表格想結合進行解決。

添加對象

我們可以使用方法函數 addObject,添加對象和鏈接

$section->addObject( $src, [$style] );
addObject()
參數 類型 描述
$src String 文件的服務器,支持相對和絕對路徑.
$style Array 對象樣式.

對象屬性是有一個樣式:
屬性區分大小寫!

名稱 描述
align 對齊方式leftrightcenter

PHPWord 支持的對象類型: XLS, DOC, PPT.

添加標題

我們可以使用標題來為結構化文檔或為文檔建立目錄,添加標題使用方法函數addTitleStyle 和 addTitle:

$PHPWord->addTitleStyle( $titleCount, [$fontStyle] );
addTitleStyle()
參數 類型 描述
$src Integer 標題級別,最多支持9級標題
$fontStyle Array 標題字體樣式

需要添給標題添加一個樣式,否則文檔不會將其作為一個真正的標題來處理。

定義標題樣式后,定義標題就很簡單了,可以使用函數方法:addTitle;

$section->addTitle( $text, [$depth] );
addTitle()
參數 類型 描述
$text String 標題文本內容
$depth Integer 標題級別編號,通過該參數調用addTtileStyle()設置的標題樣式
添加目錄

添加目錄使用方法函數: addTOC:

$styleTOC = array("tabLeader"=>PHPWord_Style_TOC::TABLEADER_DOT);
$styleFont = array("spaceAfter"=>60, "name"=>"Tahoma", "size"=>12);
$section->addTOC($styleFont, $styleTOC);
addTOC()
參數 類型 描述
$styleFont Array 目錄字體樣式
$styleTOC Array 目錄樣式
目錄樣式屬性列表:

樣式屬性區分大小寫 !

名稱 描述
tabLeader 標題的類型和對應頁碼.默認使用系統常量 PHPWord_Style_TOC::TABLEADER_...
tabPos 標題與頁碼的位置,單位: twips.
Indent 標題縮進,單位: twips.
表格 添加表格

添加表格使用函數方法:addTable:

$table = $section->addTable( [$tableStyle] );

參數 $tableStyle 是可選的. 表格樣式這章有關于表格樣式的詳細說明。為addTable建立一個本地對象,我們需要使用這個對象來調用相關函數方法。

添加行

$table->addRow( [$height] );

行的高度可以通過$height參數來設置,單位:twips.

添加單元格

單元格添加前必須先添加行,添加單元格的函數方法為: addCell

$cell = $table->addCell(h, [$cellStyle] );
addCell()
參數 類型 描述
$width Integer 單元格寬度: twips.
$cellStyle Array 單元格樣式

為addcell創建一個本地對象,需要使用該對象來 調用以下函數

名稱 描述
addText 添加文本
addTextBreak 添加換行符
addLink 添加鏈接
addImage 添加圖片
addMemoryImage 添加水印
addListItem 添加列表
addObject 添加對象
addPreserveText 添加頁碼,只對頁眉和頁腳有效

示例1:

$table = $section->addTable();
$table->addRow();
$cell = $table->addCell(2000);
$cell->addText("Cell 1");
$cell = $table->addCell(2000);
$cell->addText("Cell 2");
$cell = $table->addCell(2000);
$cell->addText("Cell 3");

示例2:

$table = $section->addTable();
$table->addRow(400);
$table->addCell(2000)->addText("Cell 1");
$table->addCell(2000)->addText("Cell 2");
$table->addCell(2000)->addText("Cell 3");

$table->addRow(1000);
$table->addCell(2000)->addText("Cell 4");
$table->addCell(2000)->addText("Cell 5");
$table->addCell(2000)->addText("Cell 6");
單元格樣式

使用addCell的第二個參數來給單元格設置樣式
示例:

$cellStyle = array("textDirection"=>PHPWord_Style_Cell::TEXT_DIR_BTLR,     "bgColor"=>"C0C0C0");

$table = $section->addTable();
$table->addRow(1000);
$table->addCell(2000, $cellStyle)->addText("Cell 1");
$table->addCell(2000, $cellStyle)->addText("Cell 2");
$table->addCell(2000, $cellStyle)->addText("Cell 3");
$table->addRow();
$table->addCell(2000)->addText("Cell 4");
$table->addCell(2000)->addText("Cell 5");
$table->addCell(2000)->addText("Cell 6");
單元格樣式屬性列表:

屬性大小寫敏感 !

名稱 描述
valign 單元格內容對齊方式: left, right, center
textDirection 文本方向. 使用預定常量 PHPWord_Style_Cell:: TEXT_DIR_...
bgColor 單元格背景色
borderTopSize 單元格上邊框尺寸,單位 twips.
borderTopColor 單元格上邊框 顏色
borderLeftSize 單元格左邊框尺寸,單位twips
borderLeftColor 單元格左邊框顏色
borderRightSize 單元格右邊框尺寸,單位twips
borderRightColor 單元格右邊框顏色
borderBottomSize 單元格下邊框尺寸 ,單位twips
borderBottomColor 單元格下邊框顏色
表格樣式

我們可以設置整個表格的樣式,通過創建表格函數addTable的參數$tableStyle,表格具有如下樣式屬性
屬性名稱大小寫敏感!

名稱 描述
cellMarginTop 單元格上邊距,單位: twips.
cellMarginLeft 單元格左邊距,單位: twips.
cellMarginRight 單元格右邊距,單位: twips.
cellMarginBottom 單元格下邊距,單位: twips.

示例:

$tableStyle = array("cellMarginTop"=>80,
     "cellMarginLeft"=>80,
     "cellMarginRight"=>80,
     "cellMarginBottom"=>80);
$table = $section->addTable($tableStyle);

我們可以使用函數方法: addTableStyle,為表格定義一個完整的樣式。

$PHPWord->addTableStyle($styleName,  $styleTable, [$styleFirstRow] );
addTableStyle()
參數 類型 描述
$styleName String 表樣式名稱
$styleTable Array 這個表的樣式
$styleFirstRow Array 表頭樣式(第一行)

示例:

$styleTable = array("borderColor"=>"006699",
     "borderSize"=>6,
     "cellMargin"=>50);
$styleFirstRow = array("bgColor"=>"66BBFF");
$PHPWord->addTableStyle("myTable", $styleTable, $styleFirstRow);

$table = $section->addTable("myTable");
$table->addRow(400);
$table->addCell(2000)->addText("Cell 1");
$table->addCell(2000)->addText("Cell 2");
$table->addCell(2000)->addText("Cell 3");
$table->addRow(1000);
$table->addCell(2000)->addText("Cell 4");
$table->addCell(2000)->addText("Cell 5");
$table->addCell(2000)->addText("Cell 6");

表格樣式屬性,注意屬性名稱大小寫敏感!

名稱 描述
cellMarginTop 單元格上邊距,單位:twips.
cellMarginLeft 單元格左邊距,單位:twips.
cellMarginRight 單元格右邊距,單位:twips.
cellMarginBottom 單元格下邊距,單位:twips.
cellMargin 單元格間距,單位:twips.
bgColor 表格背景色
borderTopSize 表格上邊框尺寸,單位:twips.
borderTopColor 表格上邊框顏色
borderLeftSize 表格左邊框尺寸,單位:twips.
borderLeftColor 表格左邊框顏色
borderRightSize 表格右邊框尺寸,單位:twips.
borderRightColor 表格右邊框顏色
borderBottomSize 表格下邊框尺寸,單位:twips..
borderBottomColor 表格下邊框顏色
borderInsideHSize 表格內水平網格尺寸,單位: twips.
borderInsideHColor 表格內水平網格顏色
borderInsideVSize 表格內垂直網格尺寸,單位: twips.
borderInsideVColor 表格內垂直網格顏色
borderSize 表格邊框尺寸,單位:twips.
borderColor 表格邊框顏色

注意:表格在word布局中的功能可以進行體現,例如進行圖片,對象等的布局可以考慮與表格結合進行處理

頁腳 添加文檔頁腳使用函數方法: createFooter:
$footer = $section->createFooter();

確保在本地對象中保存頁腳,并使用下列函數

名稱 描述
addText 添加文本
addTextBreak 添加換行符
addImage 添加圖像
addMemoryImage 添加GD生成圖像
addListItem 添加列表
addPreserveText 添加頁碼,只能在頁眉或頁腳使用
addTable 添加表格
createTextrun 添加文本資源
向頁腳(頁眉)添加頁碼使用函數方法:addPreserveText:
addPreserveText( $text, [$style] );
addPreserveText()
參數 類型 描述
$text String 頁腳(頁眉)的文本內容
$style Array 文字樣式.

示例:

$footer->addPreserveText("Page {PAGE} of {NUMPAGES}.");
頁眉 添加頁眉,使用函數方法: createHeader:
$header = $section->createHeader();

確保頁眉是建立在一個文檔中,頁眉和頁腳使用相同的屬性和函數,詳見頁腳章節 。
注意:只用添加了頁眉的頁面,才能添加和使用圖片水印

模版

我們可以利用搜索替換功能創建一個docx格式的模版文檔,來替換文檔中你想替換的文本. 但是要注意,只有文本或鏈接可以被替換。加載模版文檔使用函數方法:loadTemplate function.

loadTemplate()
參數 方法 描述
$strFilename String 模版文件路徑和名稱

加載完成模版文檔后,你可以使用函數方法: setValue 來搜索替換相關內容

setValue()
參數 Type Description
$search Mixed 搜索的值
$replace Mixed 替換的值
$template = $PHPWord->loadTemplate("Template.docx");
$template->setValue("Name", "Somebody someone");
$template->setValue("Street", "Coming-Undone-Street 32");

被搜索替換的標簽格式為: ${YOUR_SEARCH_PATTERN}
不能添加新的PHPWORD元素到加載的模版文檔中
模版使用的幾個注意事項:

從模板生成word文檔,支持在word模板文檔里寫替換標簽,標簽格式為${xxx},不過一定要注意,不要直接在word里編輯這些標簽,一定要在文本文檔里先寫好標簽,直接拷貝粘貼上去,千萬不要編輯,否則無法替換,原因也很簡單,把word文檔另存為xml,然后看xml里標簽的位置,會發現標簽中間被插入了很多沒用的xml節點,還有中文字體的節點。。。

模版文檔要一次性完成在保存,否則會出現替換失敗問題。

中文亂碼問題,這個一定是存在的,如果php環境已經是utf8了,要找到關鍵地方,轉utf8的代碼,去掉,否則就是轉兩次編碼了,典型的是phpwordtemplate.php文件,把這行注釋掉:$replace = utf8_encode($replace);

linux下報“Could not close zip file.”錯誤,這個你永遠想不到,要將模板文件所在目錄權限改為可寫,因為要在那個目錄下生成臨時文件

引用模板文件和另存文件路徑什么的,最好用絕對路徑

聲明:本文內容來自網絡文件,部分未測試,后面有機會整個實例出來,目前整理成一份適合在網頁閱讀的文檔,供參考。
官方實例:https://github.com/PHPOffice/...
官網:https://phpword.readthedocs.i...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31714.html

相關文章

  • 使用PHPWord對Word文件做模板替換

    摘要:注文件需要使用編碼在文件中按照參考文件方式插入復制符號到文件正常的輸出替換。 因工作需要,使用了版本比較舊的PHPWord項目官方已不見維護更新,上次版本更新是在Fri Jul 8, 2011 at 8:00 AM如果PHP版本>=5.3.3,強烈推薦使用PHPOffice/PHPWord這個開源項目本篇針對的為舊版本的PHPWord 基本安裝 見官網 問題總結 Autoloader...

    468122151 評論0 收藏0
  • 使用PHPWord合并Word文檔,在文檔指定頁插入另一個文檔的內容

    摘要:提示不支持文件的讀取有一個客戶有這樣的需求,需要在里使用組件,把一個文檔的內容,插入另一個文檔的指定頁內。由于兩個文檔的內容都不是固定的,所以不能使用的功能。當讀取到指定的分頁符之后,再讀取的內容,跟著前面的內容插入,最后保存新的文檔。 提示:不支持.doc文件的讀取有一個客戶有這樣的需求,需要在ThinkPHP里使用PHPWord組件,把一個文檔(DOC1)的內容,插入另一個文檔(D...

    RobinTang 評論0 收藏0
  • AI開發書籍分享

    摘要:編程書籍的整理和收集最近一直在學習深度學習和機器學習的東西,發現深入地去學習就需要不斷的去提高自己算法和高數的能力然后也找了很多的書和文章,隨著不斷的學習,也整理了下自己的學習筆記準備分享出來給大家后續的文章和總結會繼續分享,先分享一部分的 編程書籍的整理和收集 最近一直在學習deep learning深度學習和機器學習的東西,發現深入地去學習就需要不斷的去提高自己算法和高數的能力然后...

    huayeluoliuhen 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<