(搓手手)各位老铁们,今天咱们来整点硬核的!作为一个正在用xhEditor魔改CMS的准程序员,我给大家整了一套"Word图片一键转存"的骚操作方案,保证让你在编辑器里粘贴Word文档时,图片自动上天(阿里云OSS),公式还能在手机上清晰显示!
前端骚操作(Vue3 + xhEditor)
先在编辑器工具栏加个按钮,咱们直接上代码:
import { ref } from 'vue';
const editor = ref(null);
const editorConfig = {
// xhEditor配置项...
toolbar: [...defaultToolbar, 'wordpaste']
};
// 粘贴事件处理
const handlePaste = async (e) => {
const clipboardData = e.clipboardData || window.clipboardData;
const items = clipboardData.items;
// 遍历粘贴内容
for (let i = 0; i < items.length; i++) {
const item = items[i];
if (item.type.indexOf('image') !== -1) {
const blob = item.getAsFile();
const formData = new FormData();
formData.append('file', blob);
// 调用后端上传接口
const res = await axios.post('/api/upload', formData);
editor.value.insertImage(res.data.url);
}
}
};
// Word导入功能
const importWord = async () => {
const file = document.createElement('input');
file.type = 'file';
file.accept = '.docx';
file.onchange = async (e) => {
const file = e.target.files[0];
const formData = new FormData();
formData.append('file', file);
// 调用后端解析接口
const res = await axios.post('/api/parse-word', formData);
editor.value.setContent(res.data.html);
};
file.click();
};
后端接招(PHP + OSS)
putObject($ossClient->getBucket(), $object, fopen($file['tmp_name'], 'r'));
echo json_encode(['url' => $ossClient->getSignUrl($bucket, $object)]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['error' => $e->getMessage()]);
}
// Word解析接口
$file = $_FILES['file'];
$phpWord = IOFactory::load($file['tmp_name']);
$html = $phpWord->getHtml();
// 处理Latex公式
preg_match_all('/\\$(.*?)\\$/', $html, $matches);
foreach ($matches[1] as $latex) {
$mathml = convertLatexToMathML($latex);
$html = str_replace('$'.$latex.'$', $mathml, $html);
}
echo json_encode(['html' => $html]);
薅羊毛指南(预算99元版)
- 前端插件:直接用xhEditor的扩展包(免费)
- 后端组件:
- PhpOffice/PhpWord(开源)
- Aliyun OSS SDK(免费)
- MathJax Node(转换公式)
- 云存储:阿里云OSS学生套餐(首年9元)
群内福利(QQ群:223813913)
现在进群直接送:
- 🔥 编辑器插件源码(价值299元)
- 💸 推广提成20%(躺着赚钱)
- 🎁 黄金会员50%分成(日入过万不是梦)
(突然正经)最后说句心里话,咱们技术人还是要脚踏实地。这个插件我已经在GitHub开源(搜索"xhEditor-wordpaste"),欢迎各位大佬提PR。找工作的小伙伴可以内推我们实验室,最近在招Java/前端开发,薪资15k起~
将插件目录复制到项目中

引入插件文件

定义插件图标

初始化插件
在工具栏中添加插件按钮

效果
编辑器

导入Word文档,支持doc,docx

导入Excel文档,支持xls,xlsx

粘贴Word
一键粘贴Word内容,自动上传Word中的图片,保留文字样式。

Word转图片
一键导入Word文件,并将Word文件转换成图片上传到服务器中。

导入PDF
一键导入PDF文件,并将PDF转换成图片上传到服务器中。

导入PPT
一键导入PPT文件,并将PPT转换成图片上传到服务器中。

上传网络图片
一键自动上传网络图片,自动下载远程服务器图片,自动上传远程服务器图片


2028

被折叠的 条评论
为什么被折叠?



