博客列表 >php使用phpword生成word文档首行缩进两个字符方法

php使用phpword生成word文档首行缩进两个字符方法

_
_原创
2021年10月28日 10:49:394771浏览

一、安装

相关包和文档的链接地址放在文章末尾

切换到框架应用目录下,使用composer进行安装:

  1. composer require phpoffice/phpword

二、基本使用

composer安装成功后,即可直接引用

  1. use PhpOffice\PhpWord\PhpWord;
  2. use PhpOffice\PhpWord\IOFactory;
  3. /* 使用 */
  4. $phpWord = new PhpWord();
  5. /* 设置全局默认字体 */
  6. $phpWord->setDefaultFontName('仿宋');
  7. $phpWord->setDefaultFontSize(16);
  8. /* 实例化创建新的内容 */
  9. $section = $phpWord->addSection();
  10. /* 自定义字体样式 */
  11. $titleF = array(
  12. 'name' => '方正小标宋简体',
  13. 'color' => '000000',
  14. 'size' => 22,
  15. );
  16. /* 段落样式 */
  17. $titleP = array(
  18. 'alignment' => 'center' //start左对齐,end右对齐
  19. );
  20. /* 添加一段内容 */
  21. $section->addText('把第一段当成文档的标题', $titleF, $titleP);
  22. /* 其他段落样式 */
  23. $contentF = array(
  24. 'name' => '仿宋_GB2312', 'size' => 16, 'color' => '000000'
  25. );
  26. $contentP = array(
  27. 'alignment' => 'left',
  28. //首行缩进两个16磅大小字体的字符
  29. 'indentation' => array( 'firstLine'=> 2*16*20 )
  30. );
  31. /* 添加文档内容,使用单独格式;*/
  32. $section->addText(
  33. '这是内容的第一个段落,可以很长很很很长很长,反正就是一个段落可以很长很长。。反正就是一个段落随便打点字',
  34. $contentF,
  35. $contentP
  36. );
  37. $section->addText(
  38. '第二个段落,也是一样使用一样的格式,一次类推说明一下PHPWord是一个用纯PHP编写的库,它提供了一组用于写入和读取不同文档文件格式的类',
  39. $contentF,
  40. $contentP
  41. );
  42. /* 写入保存为word 此处为windows本地测试环境,所以直接写死路径,仅作保存查看*/
  43. $objWriter = IOFactory::createWriter($phpWord, 'Word2007');
  44. $objWriter->save('C:\Users\helloWorld.docx');
  45. die('已按路径保存到本地,线上环境时可另外做下载');

最后在设置的目录下找到文件,查看生成的文件

效果截图

三、总结

在phpWord中,度量单位通常为twip,磅,英寸。并不能直接设置为字符,毫米等word中其他常用的度量单位;
如果需要设置单位为字符时,需要进行单位转换;
换算关系为:

1twip = 1/20磅
1磅 = 0.03527厘米
1英寸 = 2.54厘米

所以例如代码中,我们要使用段落首行缩进2个字符,而firstLine参数的单位为twip,需要根据字体的大小(磅),最终算出两个字符的twip值为 2×16×20

以上为phpword基本使用方法,更多相关属性设置,请参阅官方说明文档!


phpword更多使用相关要求查看官方软件包
phpword更多使用说明,属性配置请查看官方说明文档

以上为phpword基本使用方法,更多相关属性设置,请参阅官方说明文档!

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议