PHP word转pdf

php将word转换为pdf php通过word转pdf 阅读详情

方法一、使用phpword和tcpdf

1. 使用composer 安装 phpword和tcpdf

	composer require phpoffice/phpword
	composer require tecnickcom/tcpdf

2. 示例代码 (试例框架是laravel,以下文件默认是放置在public中)

//			你的初始文件地址
			$word = 'test.docx';
           \PhpOffice\PhpWord\Settings::setPdfRendererPath(base_path('vendor/tecnickcom/tcpdf'));
           //设置转换pdf的类库名(DomPDF、MPDF、TCPDF)需要下载对应的类库
           \PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');
 //				加载word文件
           $wordPdf = \PhpOffice\PhpWord\IOFactory::load($word);
//			读取生成的docx文件 并且指明要生成的文件格式
           $pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($wordPdf , 'PDF');
//			设置文字字体,文字大小
           $pdfWriter->SetFont('wryh','',20,'',false);
//			生成pdf文件 的保存地址
           $temp_path = 'test.pdf'
//			文件保存        
           $pdfWriter->save($temp_path);
            return $temp_path;

3. 中文乱码 - 设置字体

乱码一般是因为字体问题
  1. 从网上下载一个ttf文件,本文提供一个微软雅黑的字体供各位看官临时使用 字体下载链接
  2. 找到 /vendor/tecnickcom/tcpdf/tools 的位置,将字体文件放在这个文件夹下,在此处打开窗口执行命令
    php ./tcpdf_addfont.php -b -t wryh -i wryh.ttf
    之后就可以在 /vendor/tecnickcom/tcpdf/fonts/ 文件夹下找到三个同名的 wryh.ctg.z,wryh.php,wryh.z文件
  3. 然后你在执行代码时,设置
    $pdfWriter->SetFont(‘wryh’,‘’,20,‘’,false);
    指明使用该字体即可。

方法二、使用unoconv将 word转pdf (Centos 8)

1. 安装libreoffice

  1. 安装libreoffice
先为安装 libreoffice 创建一个文件夹,用以保存下载的压缩包 
	mkdir libreoffice
	cd libreoffice/
		# 下载 libreoffice 安装包
	wget https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.3.1/rpm/x86_64/LibreOffice_7.3.1_Linux_x86-64_rpm.tar.gz
	wget https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.3.1/rpm/x86_64/LibreOffice_7.3.1_Linux_x86-64_rpm_sdk.tar.gz
	wget https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.3.1/rpm/x86_64/LibreOffice_7.3.1_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
	# 解压安装包
	tar -zxvf LibreOffice_7.3.1_Linux_x86-64_rpm.tar.gz
	tar -zxvf LibreOffice_7.3.1_Linux_x86-64_rpm_sdk.tar.gz
	tar -zxvf LibreOffice_7.3.1_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
	# 安装命令
	yum localinstall LibreOffice_7.3.1.3_Linux_x86-64_rpm/RPMS/*.rpm
	yum localinstall LibreOffice_7.3.1.3_Linux_x86-64_rpm_sdk/RPMS/*.rpm
	yum localinstall LibreOffice_7.3.1.3_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm
  1. 为 libreoffice 配置全局变量
	注:要找到你安装的环境中的 libreoffice下的program的位置
	vi /etc/profile
	# 配置文件中插入
	export PATH=$PATH:/opt/libreoffice7.3/program (填写自己环境的位置)
	# 使环境变量生效
	source /etc/profile
  1. 检查是否安装成功 :
	 soffice --version
 能显示出来 libreoffice 的版本,则安装成功

2.安装 unoconv

  1. centos 8 中 使用 yum 安装 unoconv 无效,所有我么使用wegt 下载压缩包,解压之后安装
	wget https://github.com/unoconv/unoconv/archive/master.zip
	unzip master.zip
	cd unoconv-master/
	make install
  1. 使用命令执行,使得word文件转换格式为pdf
	解释: unoconv -f (你的格式) -o 新文件存储的位置 要转换的文件的位置;
		unoconv -f pdf -o /root/1.pdf /root/1.docx
	查看新文件是否存在,确认是否转换成功

3.安装字体 (若转换的文件出现)

  1. 创建字体目录,将自己的字体文件上传至该文件夹下
	mkdir -p /usr/share/fonts/win
  1. 执行以下命令,使字体生效
	mkfontscale 
	mkfontdir
	sudo fc-cache -fv

【报错】
若执行 mkfontscale 出现报错 mkfontscale not found
则执行下列命令

	# 安装mkfontscale
	yum install mkfontscale 
	# 安装fontconfig 
	yum install fontconfig

4. 使用代码将文件转换

  /** 文件格式转换
     * @param $old_file 旧文件  当前项目绝对地址
     * @param $new_file 新文件  当前项目中的绝对地址
     * @param $file_format 指定转换的格式
     */
    protected static function  File_conversion($old_file,$new_file,$file_format='pdf')
    {
        $old_path = public_path($old_file);
        $new_path = public_path($new_file);
        shell_exec(" unoconv -f ".$file_format." -o ".$new_path." ".$old_path);
    }

总结

方法一:

  • 优点:操作较为简单,只需安装一些php的扩展就可以使用,
  • 弊端:但是该方法只适合一些word中内容比较简单的进行转义为pdf,因为数据格式复杂之后,会容易发生文字错位的问题。

方法二:

  • 优点:支持word中任何格式的数据进行转换,且不容易出现错位

  • 弊端:需要在服务器中安装软件(本文已centos 8为例,讲解。)可以根据自己的需求,选择用那种方式。

  • 注意 :设置字体时,最好与转换前文件中的字体一致

若上述yum命令执行的时候报错:
Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist
则说明是官方镜像地址被移动了,不在mirrorlist 这里了,此时我们只需执行,将地址切换到vault 去。
(阿里的镜像因为对centos8环境支持的停止,原本的镜像就被移动了。)

cd /etc/yum.repos.d/
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
PHP实现word文档转html以及pdf 一 : 使用phpword生成word文档,具体步骤如下: 安装环境配置: **必须安装:** 1. 》=PHP 5.3.3 + 2. XML Parser extension 3. Zend\Escaper component 4. Zend\Stdlib component 5. Zend\Validator component 选择性安装: Zip extens 阅读详情

相关推荐

PHP使用LibreOffice实现word转pdf

PHP使用LibreOffice实现word转pdf一、windows下的安装及使用1. 下载并安装《LibreOffice 便携版》2. 通过cmd命令实现文档转换3.php调用命令实现文档转换二、Centos下的安装及使用1.安装LibreOffice2、执行命令转换pdf文档3、解决中文不显示,变方框的问题4、php调用命令实现文档转换三、其他: LibreOffice是OpenOffice办公套件衍生版, 同样免费开源,并且是跨平台的,支持windows和linux服务器安装。 一、windows下

huidaoqichu的博客 1903

PHP中将Word文件转换为PDF

http://blog.hsojo.com/2020/06/02/PHPWordToPdf/ 版权声明:本文为博主原创文章,转载请注明出处。 前言 在上一篇水文中,我提到了需要实现“docx转pdf”; 经过一番折腾,最终得出了一个结论:PHP可真不愧是一两面撬刀的????。 在尝试了使用“phpoffice/phpword”+“dompdf/mpdf”等主流PDF转换库对docx进行转换后,最后得到的效果实在是不尽人意。(错位+乱码) 虽然在Windows平台可通过“.net COM组件”

HsOjo的博客 8423

【PHPWord】PHPWord导出PDF格式文件的几种方式以及最优解并附代码

word文件导出PDF的需求很大,本文总结了两种导出PDF文件的方式,并详细展示了最有效的一种。

Code Metaverse 2883

php word 转PDF

实现该功能需要开启com_dotnet扩展,我用的是小皮,直接在网站-》管理-》php扩展中选中com_dotnet扩展即可。

2201_75357417的博客 563

PHP实现word转PDF的功能并添加水印(附完整源码)

PHP实现word转PDF的功能并添加水印(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 675

PHP | Word转PDF实用方案,技术选型与填坑经验

本文总结了PHP实现Word转PDF的多种技术方案及实践经验。作者基于多年开发检测系统的实战经验,对比分析了LibreOffice、API服务、PHPWord、COM组件和AsposeWords等方案的优缺点。重点剖析了LibreOffice在Linux环境下遇到的中文乱码、权限问题和样式变形等典型问题,并提供了详细的解决方案。同时介绍了Windows环境下COM组件的高质量转换方法,以及应对高并发场景的建议。文章指出技术选型需权衡成本、效果和运维复杂度,针对不同场景推荐了最优方案,为开发者提供了宝贵的实战

UPCTO 43

Windows 系统使用 LibreOffice 办公套件,PHP实现Word转PDF,PDF转图片的操作

看到版本号,说明安装成功。

weixin_43755969的博客 1380

PHP将Word转PDF文件

PHP 安装COM组件 注意:php版本>5.3.15,需要保证ext文件夹下有php_com_dotnet.dll 并在php.ini中加入 extension=php_com_dotnet.dll php.ini中搜索并去除com.allow_dcom = true前面的‘;’ com.allow_dcom = true /** * @package word文档转pdf * @param string $wordPath word原文件路径 * @param

weixin_42177572的博客 2785

php word生成pdf实例,php Word成功转PDF

一、配置环境(1)配置php.ini添加:extension=php_com_dotnet.dllcom.allow_dcom = true //去掉号,改为true重启环境(2)安装:microsoft office 2010(3)配置office组件服务按 win+R 快捷键进入运行菜单,输入 Dcomcnfg找到: [组件服务] ——[计算机]—— [我的电脑] —— [D...

weixin_42505477的博客 575

php生成PDF电子合同签名

php生成PDF电子合同签名

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

weixin_45355881的博客 4708

php word转pdf linux,Linux平台中使用PHP把word转pdf的实现方法

Linux平台中使用PHP把word转pdf的实现方法1、ubantu下安装libreofficesudoapt-getinstalllibreoffice2、命令行执行word转pdf将 /home/wordToPdf/wordFiles/目录下的CAS.docx转成pdf存放到 /home/wordToPdf/pdfFiles 目录下:libreoffice --headless --c...

weixin_39737317的博客 344

Polardb训练营-本地部署 PolarDB-X

PolarDB-X是阿里巴巴自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。云原生+MySQL生态PolarDB-X已作为标准云产品在世界范围内的13个地区提供服务。依托云资源和容器化部署能力,PolarDB-X可以在数分钟内完成集群创建和变配,整个过程中用...

yangjunfeng0604的博客 2472

使用PHP+LibreOffice实现高效Word转PDF的完整解决方案

本文介绍了一种使用PHP+LibreOffice实现Word转PDF的高效解决方案。该方案通过LibreOffice直接转换保持文档格式完整,相比间接转换方式具有更高效率。文章详细说明了环境准备(包括LibreOffice安装和PHP配置)、路径说明,并提供了完整的PHP实现代码(支持单文件和批量转换)。核心代码通过exec调用LibreOffice命令行工具,包含错误处理和结果验证,适用于Web应用中的批量文档处理需求。该方案在保留原始文档样式的同时,提供稳定可靠的转换服务。

lsk0909的博客 1050

模拟IC设计避坑:手把手教你用Cadence仿真恒定跨导轨到轨运放(附完整工艺库文件)

本文详细解析了使用Cadence仿真恒定跨导轨到轨运放的全流程,涵盖电路原理、工艺库配置、尺寸设计及仿真分析。通过1:3电流镜补偿技术实现跨导稳定,提供CSMC 0.25um工艺下的实战案例,帮助工程师规避设计陷阱,提升模拟IC设计效率。

weixin_30952535的博客 494

别再瞎调了!手把手教你用ADI IIO Oscilloscope配置AD936x的AGC(附Pluto SDR实测)

本文详细介绍了如何使用ADI IIO Oscilloscope工具配置AD936x系列射频捷变收发器的自动增益控制(AGC)功能,包括Slow/Fast Attack模式的参数设置与优化技巧。通过Pluto SDR硬件实测演示,帮助开发者快速掌握AGC配置方法,提升无线通信系统的接收性能。

weixin_30267785的博客 577

php word转化为pdf文件,php word转pdf 读取pdf内容

1.word转pdf 需要用到 LibreOffice 便携版 如果是linux可以去官网查看安装命令$retval = 1;// exec() might be disabled url需要填写相对地址$cmd = "D:\LibreOfficePortable/LibreOfficeWriterPortable.exe --headless --convert-to pdf D:\phps...

weixin_32819955的博客 420

Cadence公司的数字IC设计工具:综合工具(Genus)——(2)

介绍Cadence公司的数字IC设计工具Genus

qq_42922513的博客 1944

php word/excel/ppt 转pdf

转载至:https://blog.youkuaiyun.com/sangjinchao/article/details/78053545 把代码放到了github上,点击进入 前阶段有个项目用到了线上预览功能, 关于预览office文件实现核心就是,把office文件(word,excel,ppt)转为pdf文件, 然后再把pdf文件经过pdf2html转为html文件进行预览。 利用openoffice的话...

我不是一个假前端的博客 1518

米哈游 AI产品经理面试题精选:10道高频考题+答案解析(附PDF)

米哈游是全球知名游戏开发商,以《原神》《崩坏》系列著称,专注二次元文化与AI技术创新。本文整理了10道AI产品经理面试题,涵盖Transformer架构、智能NPC设计、机器学习应用、AIGC产品规划等核心领域。题目既考察技术理解(如RAG原理、多模态模型),又关注产品落地(游戏平衡性优化、伦理安全),同时强调跨团队协作能力。参考答案均结合米哈游业务场景,体现技术驱动与玩家体验并重的产品思维,展现AI在游戏行业的创新应用前景。

ZHHHHH15的博客 680

Axure RP9汉化+授权全攻略:从下载到激活一步到位(附最新授权码)

本文提供Axure RP9从下载安装到界面汉化的完整指南,帮助设计师和产品经理快速上手这款原型设计工具。详细讲解了如何安全获取软件、执行汉化操作、理解核心界面布局,并介绍了创建交互原型和生成HTML文件的基础步骤,助力用户高效开展设计工作。

cuda7parallel的博客 1140

PHP word ppt pdf 转图片

一、window安装步骤(转载:https://www.cnblogs.com/jinxiblog/p/8053008.html) 个人操作步骤补充: 1、先下载php_imagick扩展,拷贝待php安装目录的ext目录下,修改php.ini文件,extension=imagick 2、下载ImageMagick解压到D盘soft,然后在环境变量中PATH添加D:\soft\ImageMagick\bin 3、重启apache,此时才可以看到php_imagick扩展安装成功 4、下载Ghostscrip

weixin_43878826的博客 1008

对角两对双差速轮AGV的平移、直行、转弯和原地旋转之PID控制

本示例将展示如何使用PID控制算法,控制具有对角线布置的两对双差速轮(左前和右后)的AGV,实现平移、直行、转弯和原地旋转等运动。通过对车辆的运动学和PID控制器的设计,我们可以精确地控制AGV的运动

xiaoc100200的博客 1510

php这么把pdf转为world,php pdf如何转word

php pdf转word的方法:首先找到一个PDF文件;然后通过PdfParser解析pdf文件;最后使用“PHPOffice/PHPWord”将pdf转化为word即可。本教程操作环境:Windows7系统、PHP5.6版,该方法适用于所有品牌电脑。php将一个pdf文件转换成word文件:PdfParser (https://www.pdfparser.org/demo)这是用来解析pdf的P...

weixin_39639040的博客 2704

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

php word转pdf

php 调用 com组件,进行word操作,详情步骤 ken2999 2018-09-03 19:57:18 ...

qq_27878777的博客 649

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: Centos8 开机自启动
下一篇: Mysql 使用时候,关于 and/or 于 “非“ 的使用时会遇上的逻辑问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值