PHP读取docx文档内容及对图片进行处理
一、composer安装phpWord
二、phpWord 读取 docx 文档(注意是docx格式,doc格式不行)
如果你还没配置自动加载,则先配置一下,具体php代码如下: 三、关键点
1)对齐方式:PhpOffice\PhpWord\Style\Paragraph -> getAlignment()
2)字体名称:\PhpOffice\PhpWord\Style\Font -> getName()
3)字体大小:\PhpOffice\PhpWord\Style\Font -> getSize()
4)是否加粗:\PhpOffice\PhpWord\Style\Font -> isBold()
5)读取图片:\PhpOffice\PhpWord\Element\Image -> getImageStringData()
6)ba64格式图片数据保存为图片:file_put_contents($imageSrc, base64_decode($imageData))
四、完整代码 五、补充
很明显,这是一个简陋的word读取示例,只读取了段落的对齐方式,文字的字体、大小、是否加粗及图片等信息,其他例如文字颜色、行高。。。等等信息都忽悠了。需要的话,请自行查看phpWord源码,看\PhpOffice\PhpWord\Style\xxx 和 \PhpOffice\PhpWord\Element\xxx 等类里有什么读取方法就可以了
可以用以下方法直接获取到完整的html 注:html内容里包含了head部分,如果只需要style和body的话,需要自己处理一下;然后图片是base64的,要保存的话,也需要自己处理一下
base64数据保存为图片请参考上面代码
如果只想获取body里的内容,可以参考 \PhpOffice\PhpWord\Writer\HTML\Part\Body 里的 write 方法 图片的处理的话,暂时没有好办法能在不修改源码的情况下处理好,改源码的话,相关代码在 \PhpOffice\PhpWord\Writer\HTML\Element\Image 里
传送门:https://packagist.org/packages/phpoffice/phpword二、phpWord 读取 docx 文档(注意是docx格式,doc格式不行)
如果你还没配置自动加载,则先配置一下,具体php代码如下: 三、关键点
1)对齐方式:PhpOffice\PhpWord\Style\Paragraph -> getAlignment()
2)字体名称:\PhpOffice\PhpWord\Style\Font -> getName()
3)字体大小:\PhpOffice\PhpWord\Style\Font -> getSize()
4)是否加粗:\PhpOffice\PhpWord\Style\Font -> isBold()
5)读取图片:\PhpOffice\PhpWord\Element\Image -> getImageStringData()
6)ba64格式图片数据保存为图片:file_put_contents($imageSrc, base64_decode($imageData))
四、完整代码 五、补充
很明显,这是一个简陋的word读取示例,只读取了段落的对齐方式,文字的字体、大小、是否加粗及图片等信息,其他例如文字颜色、行高。。。等等信息都忽悠了。需要的话,请自行查看phpWord源码,看\PhpOffice\PhpWord\Style\xxx 和 \PhpOffice\PhpWord\Element\xxx 等类里有什么读取方法就可以了
可以用以下方法直接获取到完整的html 注:html内容里包含了head部分,如果只需要style和body的话,需要自己处理一下;然后图片是base64的,要保存的话,也需要自己处理一下
base64数据保存为图片请参考上面代码
如果只想获取body里的内容,可以参考 \PhpOffice\PhpWord\Writer\HTML\Part\Body 里的 write 方法 图片的处理的话,暂时没有好办法能在不修改源码的情况下处理好,改源码的话,相关代码在 \PhpOffice\PhpWord\Writer\HTML\Element\Image 里