首页 > 其他分享 >TinyMCE 复制word里面带图文的文章,图片可以直接显示

TinyMCE 复制word里面带图文的文章,图片可以直接显示

时间:2023-08-15 17:26:12浏览次数:32  
标签:控件 word text base64 TinyMCE wordpaster items var 图文

 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码
目前限chrome浏览器使用
首先以um-editor的二进制流保存为例:
打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。
加入下面的代码:

//判断剪贴板的内容是否包含文本

//首先解释一下为什么要判断文本是不是为空

//在ctrl+c word中的文字或者图片之后会返回1种(image/png)或者4种type(text/plain,text/html,text/rtf,image/png)类型的对象

//为了兼容4种格式的情况,做了如下的判断

//如下代码:e.originalEvent.clipboardData.items获得剪贴板的内容

//当粘贴了文本之后text是不为空的,同时也会返回当前文本的图片类型

//如果有文字的话不做任何的处理,如果只粘贴图片的话文本一定是空的,包括复制的桌面图片或者截图的图片

var text = e.originalEvent.clipboardData.getData("text");

if(text == ""){

    var items=e.originalEvent.clipboardData.items;

     for (var i = 0, len = items.length; i < len; i++) {

        var item = items[i];

       if ( item.kind == 'file' && item.type.indexOf('image/') !== -1 ) {

         

              var blob = item.getAsFile();

              getBase64(blob, function( base64 ) {

              //sendAndInsertImage(base64,me); 上传到服务器

               setBase64Image(base64,me);

              });

              //阻止默认事件, 避免重复添加;

              e.originalEvent.preventDefault();

             };

        }

}

两个方法:

//执行插入图片的操作

function setBase64Image(base64,editor){

    editor.execCommand('insertimage', {src: base64,_src: base64});

}

//获得base64

function  getBase64(blob, callback) {

    var a = new FileReader();

    a.onload = function(e) {callback(e.target.result);};

    a.readAsDataURL(blob);

};

效果展示:

​编辑

​编辑

​编辑

 

视频教程:

 

动易SiteFactory 4.7整合,动易SiteFactory 6.2整合,dedecms 5.7-ueditor整合,dedecms 5.7-ckeditor3x整合,帝国CMS-ueditor整合,帝国CMS-ckeditor4x整合,dokuwiki整合,Windows控件安装,macOS控件安装,linux-deb控件安装,linux-rpm控件安装,uos控件安装,linux-银河麒麟控件安装,

 

更多详细资料可以参考这篇文章:

详细思路及源码

示例下载:

wordpaster-vue3-cli-ueditor1.5wordpaster-vue-ueditor1.5wordpaster-asp.net-ueditor1.5xwordpaster-php-ueditor1xwordpaster-jsp-ueditor1x​

标签:控件,word,text,base64,TinyMCE,wordpaster,items,var,图文
From: https://www.cnblogs.com/songsu/p/17631868.html

相关文章

  • wangEditor 复制word里面带图文的文章,图片可以直接显示
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@     page contentType="text/html;cha......
  • eWebEditor 复制word里面带图文的文章,图片可以直接显示
    ​ 由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直接解决这个问题考虑到自己除了工作其他时间基本上不使用windows,因此打算使用nodejs来......
  • Web编辑器 复制word里面带图文的文章,图片可以直接显示
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • 在线编辑器 复制word里面带图文的文章,图片可以直接显示
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • 警告: 'xxx' should always be multi-word
    警告:Componentname"Login"shouldalwaysbemulti-word原因:eslint语法要求名字必须为双词汇解决:在eslintrc.cjs文件里面输入rules:{"vue/multi-word-component-names":"off",},......
  • Java判断word文档的重复,达到word文档的整理、整合效果代码实现
    在Java中,你可以使用ApachePOI库来操作Word文档并实现判断文档的重复。以下是一种实现思路:导入ApachePOI库:首先,你需要在Java项目中导入ApachePOI库,以便能够使用它的功能。你可以在项目的构建文件(如Maven或Gradle)中添加相应的依赖项。读取Word文档内容:使用ApachePOI库的XWPFDocum......
  • Aspose.Word 的常见使用(3)
    起因因项目需要,而且使用html转Word的时候,样式不兼容问题,于是只能使用Aspose.Word通过代码生成。下面是通过DocumentBuilder来设计Word的,但是和使用模型拼接的差不多,原理基本一致。思路这里是说使用Aspose.Word的使用思路,只想某个功能是怎么使用的可以跳过代码都是人写的,所以每......
  • mysql8默认caching_sha2_password身份验证
    发生这个问题的原因是在mysql8.0以后,caching_sha2_password是默认的身份验证插件,而不是以往的mysql_native_password。在MySQLCommandLine工具下修改mysql的默认身份验证插件即可。Theserverrequestedauthenticationmethodunknowntotheclient[caching_sha2_passw......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-变异凯撒
    前言在密码学中,凯撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。ROT13是凯撒密码的一种变体,即移位数为13。RO......
  • 码云git clone报错Incorrect username or password ( access token )
    使用码云将仓库clone到本地,报错信息如下:D:\\123\>gitclonehttps://gitee.com/ycyzharry/helloworld.gitCloninginto'helloworld'...remote:Incorrectusernameorpassword(accesstoken)fatal:Authenticationfailedfor'https://gitee.com/ycyzharry/h......