整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

php调用python脚本将word转为html代码

php调用python脚本将word转为html代码

详细]php调用python脚本,将word转为html代码及调用失败处理

起因:因为公司遇到发稿问题,很多人喜欢用word编码,然后再发布到网站上。PHP的包中虽然有部分可以使用的类库,但是对于图片始终处理不好,我就想到了python。研究了下,python将word转为html还真是方便。但是,怎么结合到服务器上呢?我们的服务器是用PHP开发的。

1:python脚本

#!/usr/bin/python# -*- coding: UTF-8 -*-import sysfrom pydocx import PyDocXreload(sys)sys.setdefaultencoding('utf8')FileName=sys.argv[1] #获取文件名参数ShortName=sys.argv[2] #获取文件名参数html=PyDocX.to_html(FileName) # f=open("/www/wwwroot/micuer.com/pythoncode/runtime/99.txt", 'w') #服务器的全路径# f.write(html)# f.close()print(html)

2:php处理脚本

public function uploadword(){        try {            $file=request()->file("file");            // 上传到本地服务器            $savename=\think\facade\Filesystem::disk('upload')->putFile( 'word', $file);            $shotrname=time().".txt"; // 短名称            $savename="/www/wwwroot/micuer.com/data/upload/".$savename; //Request::domain().            $python_file_name="/www/wwwroot/micuer.com/pythoncode/WordToHtml.py";            //组装命令            $cmd="python {$python_file_name} ".$savename." {$shotrname}  2>error.txt 2>&1";            $res=exec($cmd,$array, $ret);            return json(["code"=>200,"msg"=>"成功","data"=>$savename,"cmd"=>$cmd,"array"=>$array]);        } catch (think\exception\ValidateException $e) {            return json(["code"=>40000,"msg"=>$e->getMessage()]);        }    }

上传界面如下:

实现的功能就是利用PHP的exec函数,调用py脚本,将html代码返回给前台服务器。

返回数据如下

其实,再处理这个方案中,也遇到了很多问题,比如在命令行下只能成功,但是exec函数执行不成功等等。
参考了资料:https://my.oschina.net/u/4427610/blog/3155816
也就是

exec("python python_test.py 2>error.txt 2>&1", $array, $ret);

在bash中0,1,2三个数字分代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。
也可以通过以下方式将标准错误重定向到标准输出保存到$array中:
打印之后,发现是没有权限调用。于是就直接改为输出了,也就是 py的print(html)函数。

注意几点:
1:执行权限问题
2:exec(“python python_test.py 2>error.txt 2>&1”, $array, $ret); 中 $array就接受到了 print(html)的值
3:各个脚本尽量使用全路径

AVA中将WORD转换为HTML导入到CKEDITOR编辑器中(解决图片问题,样式,非常完美),ckeditor粘贴word,ckeditor3粘贴word,ckeditor4粘贴word,ckeditor5粘贴word内容,ckeditor复制word图片,ckeditor复制粘贴word图片,ckeditor复制word内容,ckeditor粘贴word图片,复制word图片粘贴到ckeditor,

前端用了VUE2,VUE3,React,HTML5,也是一个新项目,为了方便用的这些框架,实际上这个是无所谓,功能的实现和前端这些框架没什么关系。

后端用了PHP,JSP,ASP,ASP.NET,SpringBoot,功能实现和后端用的什么开发语言无关,后端只提供一个文件上传的接口,HTTP form协议,图片上传时会调这个接口。

编辑器是ckeditor5,为ckeditor编辑器增加粘贴Word图片的功能,支持快捷键操作(Ctrl+V),支持多种系统:Windows,macOS,Linux,信创国产化环境,中标麒麟,银河麒麟,统信,龙芯。

支持word粘贴,word内容粘贴,word图文粘贴,word图片粘贴,粘贴后图片能够自动上传到服务器中,然后将图片和内容HTML添加到编辑器中,上传接口地址能够自定义

用户使用操作起来更方便一些,一般发新闻,或者发文章用的比较多,基本上每天发新闻,发文章都会用到,

这个功能确实为用户带来了方便。

1.1. 集成到CKEditor3.x

主要步骤如下:

1.上传WordPaster文件夹

一般将WordPaster.cab放在WordPaster目录下。

2.上传CKEditor插件目录

3.引入JS,初始化控件

注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4

如果希望添加到默认工具栏中,请修改ckeditor.js,在toolbar_Full中增加imagepaster,netpaster

为ckeditor增加插件(imagepaster,netpaster,pptpaster,pdfimport):

注意:

1.如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段

参考:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45

2.如果接口返回JSON,请配置ImageMatch

参考:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1

3.如果接口返回的图片地址没有域名,请配置ImageUrl

参考:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936
4.如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3

常见问题:

1.为什么整合到项目中图片无法上传?
请先测试接口:http://www.ncmem.com/doc/view.aspx?id=61f361025c9247098f6a15c3dfc53db5

果你有MicrosoftWord文档,并且希望将其放到Web上,则需要将该文档转换为HTML,以便在网页上显示该文档。有几种不同的方法可以做到这一点。你选择的方式将取决于你最终想要的效果。如果你想要一些高级训练,你可以参加学习HTML 5培训课程这将教会你更多的知识。

将Word转换为HTML的简单方法

将 Word 文档转换为 HTML 的最简单方法是使用 Microsoft Word 来完成。 在 Microsoft Word 中打开你的文档,然后转到页面顶部并选择“文件”,然后选择“另存为”。 当另存为窗口打开时,在文件名插槽中输入你想要的文件名称。 接下来,单击另存为类型,将显示一个下拉菜单。 选择网页并点击保存。

使用在线转换器

如果有很多文本格式并且使用 Microsoft Word 并没有按照你想要的方式保存它,你可能需要使用免费的在线 Word 到 HTML 转换器。 这些在线转换器会将你的 Word 文档转换为 HTML 代码。 然后你可以将代码粘贴到空白网页上并上传。

使用 HTML 软件转换 Word 文档

使用许多 HTML 编写软件,你可以选择在 HTML 编写软件中转换你的 Microsoft Word 文档。 Dreamweaver 是最流行的 HTML 编写软件,它有一项功能可以帮你完成这项工作。想要学习HTML5相关技术,HTML5培训学习是一个很快的捷径,专业导师线下面授教学,4-5个月的学习周期,课程系统又全面,紧跟企业需求,轻松就业。

要使用 Dreamweaver 将 Word 文档转换为 HTML,请打开一个新网页。 转到文件>导入>Word文档,将出现一个带有一些选项的弹出框。 选择哪些选项并选择确定。 然后你的文档将出现在网页上。

如何使用记事本转换文档

如果你知道一点 HTML,你可以自己转换你的 Microsoft Word 文档。 首先复制你的 Word Doc,然后打开记事本并将其粘贴到记事本上。 这将从你的 Word 文档中删除所有格式。 现在你只有文本,你可以构建你的 HTML。

使用 Google Docs 转换为 HTML

现在称为 Google Drive 的 GoogleDocs 也将为你执行此操作。 这是许多记者将他们的 word 文档转换为 HTML 以在网络上发布的方式。

首先,单击红色的“创建”按钮并选择“文档”。 复制你的 Microsoft Word 文档,然后将其粘贴到你的新 GoogleDocs 页面上。 接下来,单击文件,然后选择“下载为”。 会弹出一些选项,你选择“网页”。 它会立即将你的文件下载为 zip 文件。

有很多方法可以将你的 Microsoft Word 文档转换为适用于 Web 的 HTML。 你可以使用免费的在线工具来完成,脱离文档并自己制作 HTML,如果你想了解更多HTML 5相关知识,可以报名参加HTML 5培训课程并学习如何将HTML 5编程技能提升到更高的水平,增强自身竞争力,让自己在职场中更有优势。

了解更多