精华内容
下载资源
问答
  • phpword转pdf
    2021-04-16 02:03:19

    1.word转pdf 需要用到 LibreOffice 便携版  如果是linux可以去官网查看安装命令

    $retval = 1;

    // exec() might be disabled url需要填写相对地址

    $cmd = "D:\LibreOfficePortable/LibreOfficeWriterPortable.exe --headless --convert-to pdf D:\phpstudy_pro\WWW\ReadWord\upload\\$name.docx --outdir D:\phpstudy_pro\WWW\ReadWord\upload\\";

    if (function_exists('exec')){

    @exec($cmd, $output, $retval);

    }

    // Did it work?

    if ($retval > 0){

    exit('process_failed');

    }else{

    sleep(5);

    header('location:./phpword.php?name='.$name);

    }

    2.pdf 读取

    1.需要安装composer

    2.在项目下面 composer require smalot/pdfparser  安装扩展 安装成功你会看到 vendor文件夹

    include 'vendor/autoload.php';

    $parser = new \Smalot\PdfParser\Parser();

    $pdf = $parser->parseFile("./upload/$name.pdf");

    $text = $pdf->getText();

    //读取出来的内容是字符串

    // Retrieve all pages from the pdf file.

    $pages = $pdf->getPages();

    // Loop over each page to extract text.

    foreach ($pages as $page) {

    echo $text = $page->getText();

    // $text = explode("\n",$text);

    // echo '

    ';

    // print_r($text);

    // foreach($text as $kk => $vv){

    // echo $vv.'
    ';

    // }

    }

    标签:word,name,--,text,upload,pdf,php,page

    来源: https://www.cnblogs.com/LF-place/p/13569412.html

    更多相关内容
  • php word pdf

    2022-03-05 14:47:53
    php word pdf
  • PHP word转pdf

    千次阅读 2022-04-15 10:54:06
    中文乱码 - 设置字体方法二、使用unoconv将 word转pdf (Centos 8)1. 安装libreoffice2.安装 unoconv3.安装字体 (若转换的文件出现)4. 使用代码将文件转换总结 方法一、使用phpword和tcpdf 1. 使用composer 安装 ...

    方法一、使用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转pdf

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

    php 调用 com组件,进行word操作,详情步骤

    com组件 专栏收录该内容
    1 篇文章 0 订阅

    步骤一、php开启COM组件

    查看php.ini中是否已经开启了com.allow_dcom = true

    从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件

    如果没有网上下载个,一般都会有的吧应该大概可能。。

    然后查找这个php.ini里面查找下#extension=php_com_dotnet.dll把前面的#号去掉

    如果找不到就复制,手动添加一下

    然后输出下phpinfo()

    看看有没有com_dotnet
    COM support enabled
    DCOM support enabled
    .Net support       enabled

    表示COM组件开启成功

    然后新建一个php文件在里面写上:

    $com = new COM('word.application');  (#注意word.application 是电脑中必须有word文档才可以的)
    echo $com;

    如果没错的话应该会显示    Microsoft Word
    说明COM扩展已经安装完成了!

    步骤二、开启PHP调用Word组件DCOM权限

    未开启权限前,调用 $word->Documents[1]->SaveAs(‘test.doc’);  时报错:Call to undefined method variant::SaveAs()。原因是PHP没有调用Word组件DCOM权限。开启权限如下:

    1. 首先必须要在电脑上安装 Office

    2. windows+r : 输入 dcomcnfg.exe 打开组件服务,然后双击 组件服务 ==> 双击 计算机 ==> 双击 我的电脑 ==> 打开 DCOM配置 
    找到 Microsoft Word 97 - 2003 文档 然后右键点击属性。 
    出现如下页面: 
    这里写图片描述

    将身份验证级别设为 

    3. 然后点击 安全 将所有下图中红圈出现的地方设置为自定义,然后每个添加 Everyone 用户组,并将权限设置为全部(全打上勾就OK) 
    然后点击 标识 那一部分,将其选为 下列用户 用户填的是管理员用户,密码就是本机密码。 
    这里写图片描述

    4. 特殊的如果在第 2 步找不到 Microsoft Word 97 - 2003 文档 部分,那么在运行那儿输入 mmc -32 然后在工具栏中选择 文件 然后选择 添加删除管理单元 ,然后单机 组件服务 将其添加,点击确定。 
    这里写图片描述

    然后点击 组件服务节点 剩下的就跟上面的流程一样了,重复 步骤二和步骤三。

    5. 接下来我们将word所需要操作的文件夹的权限添加 Everyone 权限, 至此问题解决。

    转载自:https://blog.csdn.net/qingshui23/article/details/78867532

     

    展开全文
  • 网站有许多转换pdf的代码.本人也用过office和wps,上传服务器期后出现了许多bug,最后选用openoffice实现最方便。前提服务器或电脑必须下载openoffice.具体配置文件参考:...
  • Linux平台中使用PHPword转pdf的实现方法 1、ubantu下安装libreoffice sudo apt-get install libreoffice 2、命令行执行word转pdf 将 /home/wordToPdf/wordFiles/目录下的CAS.docxpdf存放到 /home/wordToPdf/...
  • 下面小编就为大家带来一篇PHP调用OpenOffice实现word转PDF的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • phpoffice/phpword mpdf/mpdf 目前大部分php教程都是利用软件 使 word 转pdf 偶然间了解 有第二种办法 wordhtml html转pdf 成功绕开了office 软件包 但是有两个缺点就是 1 经过两步操作 略麻烦 2 html ...

    前提 需要引入 两个包

    phpoffice/phpword

    mpdf/mpdf 

     

    目前大部分php教程都是利用软件 使 word 转pdf

    偶然间了解 有第二种办法 

    word转html

    html转pdf

    成功绕开了office 软件包

    但是有两个缺点就是

    1 经过两步操作 略麻烦

    2 html 转pdf 的样式问题

     

    在浏览phpoffice/word 包时偶然发现如下代码

     public static function createWriter(PhpWord $phpWord, $name = 'Word2007')
        {
            if ($name !== 'WriterInterface' && !in_array($name, array('ODText', 'RTF', 'Word2007', 'HTML', 'PDF'), true)) {
                throw new Exception("\"{$name}\" is not a valid writer.");
            }
    
            $fqName = "PhpOffice\\PhpWord\\Writer\\{$name}";
    
            return new $fqName($phpWord);
        }

    顿时来了兴趣 难道 可以直接 word 转PDF

    当尝试 如下代码时

    $obj->createWriter($phpWord, 'PDF');
    

    不出意外报错了 --!

    PDF rendering library or library path has not been defined.

    当然剩下的就是百度

    千可怜万可怜

    在仅有的一条条目里找到了解决方法(虽然是英文 勉强看懂了。。。)

    引入mdf包

    修改后代码如下

     

     

    public function wordToPdf($filePath, $savePdf = false)
        {
            if (!file_exists($filePath)) {
                throw new \Exception("文件不存在,请检查文件路径");
            }
            //第二个参数是默认值,可以不填写
            $phpWord = IOFactory::load($filePath, "Word2007");
            $PdfPath = realpath($_SERVER['DOCUMENT_ROOT']. '/../vendor/mpdf/mpdf');
            \PhpOffice\PhpWord\Settings::setPdfRendererPath($PdfPath);
            \PhpOffice\PhpWord\Settings::setPdfRendererName('MPDF');
            $writer = IOFactory::createWriter($phpWord, "PDF");
            if ((bool) $savePdf) {
                //返回PDF实体内容
                return $writer->getContent();
            } else {
                if ($this->isDownload) {
                    //直接显示 PDF
                    $phpWord->save('php://output', 'PDF');
                    exit;
                } else {
                    //保存至服务器
                    $phpWord->save($this->saveFilePath, 'PDF');
                    //返回文件路径
                    return $this->saveFilePath;
                }
            }
        }

    另附 mpdf 解决 中文乱码问题

    'autoScriptToLang' => true,
    
    'autoLangToFont' => true,

     

     

    展开全文
  • php Word成功转PDF

    2021-04-26 11:10:54
    一、配置环境(1)配置php.ini添加:extension=php_com_dotnet.dllcom.allow_dcom = true //去掉号,改为true重启环境(2)安装:microsoft office 2010(3)配置office组件服务按 win+R 快捷键进入运行菜单,输入 ...
  • PHPWord转PDF文件

    千次阅读 2021-12-24 15:11:27
    PHP 安装COM组件 注意:php版本>5.3.15,需要保证ext文件夹下有php_com_dotnet.dll 并在php.ini中加入 extension=... * @package word文档转pdf * @param string $wordPath word原文件路径 * @param
  • 因为要做在线预览word文档 自己整合了一下转换的方法 写几点注意事项 可以实现word文档在线预览 可以加水印
  • phpword转换pdf,非常快捷简便。
  • 生成的PDF文档上传到了官网进行演示,用户可根据程序运行后的路径下载PDF文档,虽然有些麻烦,不过后期可以自己修改,把PDF文档生成在本地,这个例子仅为API的使用演示,学会了,在PHP中将Word生成PDF文件就容易了。...
  • php linux word转pdf格式

    2020-09-09 15:49:28
    遇到一个需求,将word文件转换成pdf,辗转了一上午终于搞定了我利用的是libreoffice 注意:这个需要Java 的jdk环境 1.安装jdk环境 jdk下载 地址:...
  • phpword转换pdf

    2020-12-28 09:18:30
    php header("Content-type: text/html; charset=utf-8"); //要想获取公众号二维码,得先设置服务器ip白名单 /**************************************************************************************************...
  • 对于PHPWord v0.14以下是TCPDF渲染器的示例(在v0.13中已弃用):// Require composer autoloder.require __DIR__.'/vendor/autoload.php';use PhpOffice\PhpWord\IOFactory;use PhpOffice\PhpWord\Settings;// Set ...
  • phpword等文件转PDF或swf,里面有教程,按照教程去做就可以实现功能了,很容易就弄懂
  • 【实例简介】【实例截图】【核心代码】header(...charset=utf-8");/*$cmd = ' C:\phpStudy\WWW\word2pdf.wlphp.com\soft\word2pdf.exe /source "C:\phpStudy\WWW\word2pdf.wlphp.com\doc\1.doc" ...
  • 主要介绍了php转换上传word文件为PDF的方法,结合实例形式分析了php基于COM组件针对word文件的格式转换相关操作技巧,需要的朋友可以参考下
  • 问题: 使用PHP+LibreOffice+Centos实现Word转PDF时,所需的字体已全部放入到服务器中,权限也设置完毕。但是,转换后的PDF字体被换为了微软雅黑,行高也被增大了。 word文件样式: 转换出来的PDF文件样式: 转换代码: 我...
  • PHP也可以实现导出Word文档为PDF的功能,不过要借助于第三方的类库,今天我们将为大家介绍PHP依靠com.sun.star.ServiceManager来转换WordPDF文档的相关技巧。PHP处理Word转PDF的示例代码:...
  • PHP使用LibreOffice实现word转pdf一、windows下的安装及使用1. 下载并安装《LibreOffice 便携版》2. 通过cmd命令实现文档转换3.php调用命令实现文档转换二、Centos下的安装及使用1.安装LibreOffice2、执行命令转换...
  • 安装libreoffice sudo apt-get install libreoffice 设置中文界面 ... 代码示例 public function ceshi_pdf($wordfile){ #$wordfile = '/uploads/word/20210907/****.docx'; $array_file = explode('

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,086
精华内容 4,834
热门标签
关键字:

phpword转pdf

友情链接: VB10000.rar