Djangoueditor(富文本) 純文字提取及導出word實現下載


富文本在存儲時是帶有HTML代碼的,因此在將富文本導出word文檔時需要將富文本內容提取為純文本

純文字提取有兩種方法推薦第二種

方法一:

后台導入包

from django.template.defaultfilters import striptags   #提取富文本文字
需要提取處調用
text = striptags(obj_wen.ued) #obj_wen.ued為富文本存儲在數據庫中的名

                          原文本

                   輸出純文本

通過對比,該方法可以提取純文本但對英文過濾不佳
方法二
采用djangoueditor官方文檔的方法
在富文本編輯頁面在前端獲取純文本內容然后通過表單存入后台
function getPlainTxt() {
        text = UE.getEditor('id_content').getPlainTxt();   //獲取富文本編輯器中純文本
        //document.getElementById("wenben").innerHTML=text;
        $("#wenben").attr("value",text);  //賦值給value傳入后台
    }
id_content為前端ueditor   id 可通過打開該頁面按F12查看  如圖:
 

提取結果

該方法基本完美解決英文純文本提取,該方法需要注意在調用提取純文字時需要在作者編輯完后開始,可寫在表單提交時

導出為word並實現下載基本一致

首先導入python word包

from docx import Document 
然后構建文檔
    document = Document()  #docx函數
    document.add_heading(obj_wen.biaoti, 0)  #寫入標題
    text = (obj_wen.textfield)  #數據庫純文本
    #text = striptags(obj_wen.ued)  #此為方法一  obj_wen.ued 為需要導出的ueditor在數據庫存儲的內容
    document.styles['Normal'].font.name = u'黑體'   #字體格式黑體
    p = document.add_paragraph()    
    p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER  #居中
    run = p.add_run(text)     #寫入文字
導入包實現下載文件名實現中文
from django.utils.http import urlquote   #中文文件名
    response = HttpResponse(content_type='application/octet-stream')   #緩存申明 octet-stream為文件類型
    response['Content-Disposition']='attachment;filename="%s.doc"'% urlquote(obj_wen.biaoti)    #下載說明 文件名 
    document.save(response) #文件保存入緩存
    return response
前端調用即可實現下載

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

希望對你有所幫助!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM