laravel 使用 phpword使用说明
admin
2023-06-15 09:42:36
0

                                                                 laravel 使用 phpword使用说明

1 . 安装环境

必须安装

  1. 》=PHP 5.3.3 +

  2. XML Parser extension

  3. Zend\Escaper component

  4. Zend\Stdlib component

  5. Zend\Validator component

选择性安装:

  1. Zip extension (Template模板需要的扩展)

  2. GD extension

  3. XMLWriter extension

  4. XSL extension

  5. dompdf library

注意:

1.phpword里面的 单位:twips.它是开源办公软件中最基本的计量单位,“缇”是"TWentieth of an Inch Point"的简写,意思 1/20磅,与其他常用剂量单位的换算是1缇=1/1,440英寸,1缇=1/567厘米,1缇=1/15像素

2 .zip扩展可以通过  sudo apt-get install php7.1-zip 来进行安装。

2.composer 安装依赖

项目composer直接新增依赖

"require": {

"phpoffice/phpword": "v0.13.*"

}

进行comoser update(composer版本过低 用 composer self-update)

3.使用方法

(1)加载phpword类
$PHPWord =  new \PhpOffice\PhpWord\PhpWord();
(2)设置样式
$PHPWord->addFontStyle( $styleName, $fontStyle);
(3)添加页面
$section = $PHPWord->addSection();
(4)添加文本
$section->addText( $text, [$fontStyle], [$paragraphStyle] );
(5)添加标题
$section->addTitle( $text, [$depth] );
(6)添加换行符
$section->addTextBreak();
(7)添加列表
$section->addListItem();
(8)添加超链接
$section->addLink( $linkSrc, [$linkName], [$styleFont], [$styleParagraph]);
(9)添加图片
$section->addImage( $src, [$style] );//参数二样式只能传数组,如
['width'=>350, 'height'=>350, 'align'=>'center']
(10)添加表格
$table = $section->addTable( [$tableStyle] );
//添加行
$table->addRow( [$height] );
//添加单元格
$cell = $table->addCell(h, [$cellStyle]);
(11)添加文档页眉
$header = $section->createHeader();
(12)添加文档页脚
$footer = $section->createFooter();
(13)加载模版文档
$template = $PHPWord->loadTemplate('Template.docx');
//设置替换值 (只能替换纯文本)
$template->setValue('Name', 'Somebody someone');
$template->setValue('Street', 'Coming-Undone-Street 32');
被搜索替换的标签格式为: ${YOUR_SEARCH_PATTERN}
(14)docx转pdf
//加载docx文档
$phpWord = \PhpOffice\PhpWord\IOFactory::load('results/Sample_07_TemplateCloneRow.docx');
// 保存pdf文档
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, "PDF");
$xmlWriter->save("results/Sample_07_TemplateCloneRow.pdf");

这里只列举常用的几个函数,其他可以参考下官方文档。

4. 代码例子:

        $phpWord = new \PhpOffice\PhpWord\PhpWord();
        // 新的页面
        $section = $phpWord->addSection();
        // 简单文本
        $section->addTitle('CA重庆起止-阿联酋7天5晚', 1);
        $section->addText('阿拉伯联合酋长国(The United Arab Emirates),简称为阿联酋,位于阿拉伯半岛东部,北濒波斯湾,西北与卡塔尔为邻,西和南与沙特阿拉伯交界,东和东北与阿曼毗连海岸线长734公里,总面积83600平方公里,首都阿布扎比。!');
        // 两个换行符
        $section->addTextBreak(2);
        $section->addText('第一天:请各位贵宾出发当日15:30于重庆江北国际机场集中,搭乘中国国际航空公司下午航班(CA451(1840/2215))前往迪拜。抵达后迪拜国际机场,照×××后(无须填入境卡)入境(过关时间约1.5小时)中文导游接机,后前往酒店入住休息');
  
        $section->addTextBreak();
        //超链接
        $section->addLink('http://keketour.me', '可可兔首页超链接');
        $section->addTextBreak();
        // 图片
        $section->addImage('http://img.keketour.comme/M00/00/06/CeT6ddHtg142.jpg', array('width'=>300, 'height'=>300));
        // 保存文件
        $writers = array('Word2007' => 'docx', 'ODText' => 'odt', 'RTF' => 'rtf', 'HTML' => 'html');
        write($phpWord,'demo1', $writers);

docx文档效果:

laravel 使用 phpword使用说明


html网页效果:

laravel 使用 phpword使用说明


git地址:https://github.com/PHPOffice/PHPWord.git


参考资料:http://phpword.readthedocs.io/en/latest



相关内容

热门资讯

AI公司烧不起Token了!国... 新智元报道 【新智元导读】4个月烧光全年AI预算,天价Token账单正在屠杀硅谷!今天,高性能Ag...
消息称AMD苏姿丰布局Zen ... 来源:市场资讯 (来源:IT之家) IT之家 5 月 26 日消息,工商时报昨日(5 月 25 日)...
伊朗总统:毫不动摇捍卫领土与国... 当地时间5月26日,伊朗总统佩泽希齐扬发表讲话时表示,伊朗向伊斯兰国家伸出了“兄弟般的友谊之手”。与...
气象科普课堂搬进学校,高要首个... 近日,高要区气象局与高要区第一中学完成校园气象站共建并开展首场气象科普培训,将气象科普课堂搬进学校,...
2026年济南科技活动周正式启... 5月26日上午,2026年济南科技活动周启动仪式暨全国科技工作者日(槐荫)主场活动在山东科技会堂隆重...
凤凰晚报丨投毒杀人者、 三体公... 今日人物【风暴眼丨中国版“绝命毒师”伏法!揭秘三体原CEO许垚投毒轨迹】“三体公司”原CEO许垚,被...
大润发创始人尹衍樑逝世,享年7... 5月26日,润泰集团证实,润泰集团总裁、唐奖创办人、大润发创始人尹衍樑,于2026年5月26日凌晨4...
全国科技工作者日 |市科协搭台... 科技创新是很多中小企业的“短板”,为帮助企业解决技术难题,5月20日,泰州市科协组织“工博士”科技服...
LLC磁集成变压器厂家梳理 新... 导语:LLC磁集成变压器作为高频变压器领域的技术分支,凭借高功率密度、低损耗等特性,成为新能源、工业...
王坚院士:人工智能已成为最重要... “今天人工智能已经变得跟数学一样基础。大家不要认为人工智能只属于IT行业,甚至不要把它当成一个具体行...