风火家人技术博客

技术总结精华贴

Category: PHP

PHP, 原创,

PHPOffice\PHPPresentation添加背景格式(图案填充)功能

使用PHPPresentation时我们发现,该开源软件竟然不支持图案填充功能,于是就自己补充了下,(本想将自己代码贡献给PHPOffice官方,因下载下来的开发版本无法通过单元测试,只能暂时写到此处供参考) 以下方式可以使PHPPresentation支持背景图案填充。 1.首先创建背景填充类文件 PHPOffice/PHPPresentation/src/PhpPresentation/Slide/Background/FillType.php 代码如下 <?php/** * Created by chenxue4076@163.com. * User: chenxue4076@163.com * Date: 2019/02/27 * Time: 14:46 * File name: FillType.php */namespace PhpOffice\PhpPresentation\Slide\Background;use PhpOffice\PhpPresentation\Slide\AbstractBackground;use PhpOffice\PhpPresentation\Style\Fill as StyleFill;class FillType extends AbstractBackground{ const FILL_PATTERN_BACKGROUND = array( “cross”, “dashDnDiag”, //dashed downward

Read More
PHP, 原创

phpExcel生成的Excel背景填充色变黑

最近有同事在处理PHPExcel生成的Excel文件时,总会生成一片黑背景。 具体样式我就不截图了, 直接说修改方式。 找到文件 PHPExcel/Writer/Excel2007/Stype.php, 找到函数方法 writePatternFill 将下面信息 $objWriter->writeAttribute(‘rgb’, $pFill->getStartColor()->getARGB()); 替换为 if( $pFill->getStartColor()->getARGB() == ‘FF000000’ && $pFill->getEndColor()->getARGB() == ‘FF000000’) { $objWriter->writeAttribute(‘rgb’, ’00FFFFFF’);} else { $objWriter->writeAttribute(‘rgb’, $pFill->getStartColor()->getARGB());} 原因解析:此函数中 startColor为前景色,endColor为背景色, 通过PHP生成的PHPExcel中会多出 前景色和背景色都为黑色FF000000的FILL, 这个应该是PHPExcel的BUG,这时候我们强制设置前景色(字体颜色)为透明的白色,因为都是空行,这样做并没有问题哦。 通过上面的操作我们就可以生成正常的Excel文件了。 (0)

Read More
PHP, 原创,

PHPOffice\PHPPresentation 使用Placeholder添加sldNum页码设置字体和页码位置BUG修复以及无法显示页码问题

被PHPPresentation的页码设置折腾了好几天,一直以为是自己的代码写的有问题,先说说目前我遇到的BUG 1.在Master或Slide中设置的Placeholder页码位置和大小无效,生成的PPT Placeholder始终在左上角0,0的位置。 2.为Placeholder设置的字体属性不生效,比如大小,居中等。 3.设置垂直居中需要不可以使用fontAlgn,不生效。 以下是解决方法: 修改文件 PHPOffice/PHPPresentation/src/PhpPresentation/Writer/PowerPoint2007/AbstractSlide.php 找到方法名 protected function writeShapeText(XMLWriter $objWriter, RichText $shape, $shapeId) 1.注释代码 1)找到代码 if (!$shape->isPlaceholder()) { // p:sp\p:spPr\a:xfrm 将if一行注释 这里是设置RichText的相关位置的,注释掉就可以将位置信息应用给Placeholder,否则位置在0,0 //if (!$shape->isPlaceholder()) { // p:sp\p:spPr\a:xfrm … //} 2)找到代码 if (!$shape->isPlaceholder()) { $verticalAlign = $shape->getActiveParagraph()->getAlignment()->getVertical(); 将if一行注释

Read More
PHP, 原创, 服务器, ,

ceontos安装php7.2 提示cURL version 7.10.5 or later is required to compile php with cURL support

centos 安装 php7.2及以上版本的时候还是有几点需要注意的。 不要使用 php.net Download 提供的下载地址,而是使用 git上的下载地址,原因php.net下的里面存在一些bug,一些文件不全,导致无法安装mysqlnd扩展等。类似这种错误: ext/curl/multi.c:501: undefined reference to curl_pushheader_bynum 先安装一些依赖包 sudo yum install -y libxml2-devel sudo yum -y install libcurl-devel sudo yum install openssl openssl-devel sudo yum install bzip2 bzip2-devel sudo yum install freetype-devel sudo yum install

Read More