xhEditor pdf导入支持书签和目录

(搓手手)哎呀妈呀,老铁们!咱山西程序员接单就是这么朴实无华且枯燥——客户甩过来680块预算要让Word一键粘贴还能识别Latex公式,这需求猛得跟老陈醋似的酸爽!不过别慌,看完我这方案,保证让你在QQ群里边收红包边把代码撸得飞起!(文末有加群暗号)


一、 需求翻译(客户说人话版)

客户大爷其实就想:

  1. Ctrl+C/V大法:从Word复制到编辑器别乱码,图片自动传阿里云OSS
  2. 文档全家桶导入:Word/PPT里那些花里胡哨的公式、形状组,导进来还能看清不是马赛克
  3. 公众号薅羊毛:从微信复制文章能自动抓图上传
  4. 老年友好模式:按钮越大越好,流程越短越好

二、 技术方案(680块豪华套餐)

前端:xhEditor魔改计划
// 在xhEditor初始化时加个金闪闪的按钮
$('#editor').xheditor({
    tools: 'Bold,Italic,|,WordPaste,ImportDoc', // 新增俩按钮
    onWordPaste: function(){
        // 弹个框让用户粘贴Word内容
        showPasteDialog(html => {
            // 把图片blob转成文件上传OSS
            uploadImages(html).then(cleanHtml => {
                this.pasteHTML(cleanHtml); // 怼进编辑器
            });
        });
    },
    onImportDoc: function(){
        // 假装很专业地弹出文件选择器
        $('#fileInput').click().change(e => {
            const file = e.target.files[0];
            // 后端大哥快把文档转成HTML!
            convertDocToHtml(file).then(html => {
                this.pasteHTML(html);
            });
        });
    }
});

// 公众号内容抓取(暴力版)
function stealWeChatContent(html) {
    // 正则匹配所有图片地址
    const imgUrls = html.match(/]+src="([^">]+)"/g);
    imgUrls.forEach(url => {
        // 让后端偷偷下载并替换成OSS地址
        fetch('/api/steal-image?url=' + encodeURIComponent(url))
            .then(res => res.json())
            .then(data => {
                html = html.replace(url, data.newUrl);
            });
    });
    return html;
}
后端:ASP.NET硬核处理(C#骚操作)
// 文档转换接口(假装支持所有格式)
[HttpPost]
public ActionResult ConvertDoc(HttpPostedFile file)
{
    var fileType = Path.GetExtension(file.FileName).ToLower();
    string html;
    
    // 根据文件类型召唤不同神器
    switch (fileType)
    {
        case ".docx":
            using (var doc = new Spire.Doc.Document())
            {
                doc.LoadFromStream(file.InputStream);
                html = doc.SaveToHtml();
                // 处理图片:Spire导出的是base64,得转存OSS
                html = ReplaceBase64Images(html);
            }
            break;
        case ".pptx":
            // 假装PPT也有魔法处理(实际要加钱)
            html = "加钱可解锁PPT转换功能";
            break;
        default:
            html = "这预算只够处理Word(狗头)";
            break;
    }
    
    return Content(html);
}

// 图片上传到OSS(阿里云SDK骚操作)
public string UploadToOSS(Stream imageStream)
{
    var fileName = Guid.NewGuid() + ".jpg";
    var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
    client.PutObject(bucketName, "news/" + fileName, imageStream);
    return "https://" + bucketName + "." + endpoint + "/news/" + fileName;
}

// 偷公众号图片(需配置代理防封)
public JsonResult StealWeChatImage(string url)
{
    using (var http = new HttpClient())
    {
        var imageBytes = http.GetByteArrayAsync(url).Result;
        var newUrl = UploadToOSS(new MemoryStream(imageBytes));
        return Json(new { newUrl });
    }
}

三、 贫穷版解决方案

680块还想买劳斯莱斯? 咱得会过日子:

  1. Word粘贴:用document.execCommand('paste')硬搞,图片转base64凑合用(客户问就说高清要加钱)
  2. 公式支持:MathJax开源库免费渲染Latex,至于MathType…打印成图片吧(理直气壮)
  3. 文档导入:Spire.Community免费版(有水印?跟客户说防伪标识!)

四、 QQ群致富秘籍

(突然压低声音)老铁们注意了!群里现在有个黄金会员靠推荐客户月入10万,他的秘诀是:

  1. 话术模板:“王总,您这需求680只能基础版,不过我们VIP套餐支持航天级公式识别…”
  2. 裂变套路:每拉3个客户送《ASP.NET防脱发指南》电子书
  3. 终极奥义:把客户需求拆分成"基础版"+“加钱模块”,成交率提升300%!

(突然大喊)加群暗号:“Word粘贴求致富” 现在入群还送《如何让客户觉得680血赚》话术手册!


(点烟)最后说句掏心窝子的:这需求真要完美实现,得加个零。不过咱山西程序员嘛,680块也能给你整出6800的架势——毕竟,没有需求是Ctrl+C/V解决不了的,如果有,就再加个QQ群! 🚀

将插件目录复制到项目中

image

引入插件文件

image

定义插件图标

image

初始化插件

在工具栏中添加插件按钮
image

效果

编辑器

编辑器

导入Word文档,支持doc,docx

粘贴Word和图片

导入Excel文档,支持xls,xlsx

粘贴Word和图片

粘贴Word

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

Word转图片

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

导入PDF

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

导入PPT

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

上传网络图片

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

下载示例

点击下载完整示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值