政务信息化文档集成方案(信创兼容)


一、方案定位(政务场景深度适配)

针对集团党政、国防军工、金融等领域客户国产化兼容、数据安全、多格式集成的核心需求,推出**「政文智汇」政务文档集成中间件**,深度适配UEditor编辑器,提供Word/PPT/Excel/PDF全格式粘贴、导入功能,支持图片自动上传至华为OBS(兼容公有云/私有云),满足98万预算内买断源代码、无授权限制的集团级部署要求。


二、核心功能设计(完全匹配需求)

1. 功能矩阵(覆盖全场景)

功能模块 实现细节 兼容性保障
Word粘贴 解析剪贴板HTML,提取图片→上传OBS→替换为OBS URL,保留字体/字号/颜色/表格 支持IE8+(含信创浏览器)、Vue2/Vue3/React编辑器
多格式导入 Word/Excel/PPT/PDF全支持,公式自动转MathML(手机/平板高清显示),图片二进制存储 兼容Windows/macOS/Linux(信创OS)、x86/ARM/龙芯CPU
公众号粘贴 自动下载公众号临时图片→上传OBS→替换为永久URL(解决跨域难题) 兼容微信PC/移动端,支持IE8 XMLHttpRequest
信创适配 支持国产OS(麒麟/UOS)、CPU(鲲鹏/飞腾/龙芯)、数据库(达梦/人大金仓) 提供适配测试报告

三、前端核心代码(UEditor插件实现)

1. 多格式粘贴/导入插件(Vue2/Vue3/React兼容版)

// src/plugins/ueditor/gov-doc-plugin.js
(function(U) {
  // 插件元数据
  const PLUGIN_NAME = 'govDocImport';
  const ICON_PATH = '/static/plugins/gov-doc-import/icon.png'; // 插件图标(需替换)

  // 初始化插件(UEditor注册)
  U.Editor.registerPlugin({
    name: PLUGIN_NAME,
    init: function(editor) {
      // 注册命令:触发文件选择/粘贴
      editor.commands.addCommand(PLUGIN_NAME, {
        exec: function(editor) {
          showImportDialog(editor); // 显示操作弹窗
        }
      });
    }
  });

  // ------------------------------ 弹窗与核心逻辑 ------------------------------
  /**
   * 显示导入/粘贴弹窗(兼容IE8+)
   */
  function showImportDialog(editor) {
    const dialogHtml = `
      
        政务文档导入/粘贴
        
          粘贴Word
          导入Word
          导入Excel
          导入PPT
          导入PDF
          粘贴公众号
        
      
    `;
  }

  /**
   * 处理Word/公众号粘贴(含公式/图片)
   */
  function handlePaste(editor) {
    try {
      // 兼容IE8剪贴板获取
      const clipboardData = window.clipboardData || (event.clipboardData && event.clipboardData);
      if (!clipboardData) return alert('请复制内容后粘贴');

      const html = clipboardData.getData('text/html');

      // 提取并上传图片→替换为OBS URL
      processImages(html, editor).then(processedHtml => {
        editor.execCommand('insertHtml', processedHtml); // 插入处理后的HTML
      });
    } catch (err) {
      console.error('粘贴失败:', err);
      alert('粘贴失败:' + (err.message || '请检查浏览器权限'));
    }
  }
})(UEditor);

2. Latex转MathML工具函数(兼容多终端)

// src/utils/latex-to-mathml.js
/**
 * 将Latex公式转换为MathML(使用MathJax)
 * @param {string} latex Latex公式字符串
 * @returns {Promise} MathML字符串
 */
function latexToMathml(latex) {
  return new Promise((resolve) => {
    // 动态加载MathJax(兼容旧浏览器)
    const script = document.createElement('script');
    script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
    script.onload = () => {
      MathJax.typesetClear();
      const math = MathJax.tex2chtml(latex);
      resolve(math.outerHTML);
    };
    document.head.appendChild(script);
  });
}

四、后端核心代码(SpringBoot实现)

1. 华为OBS上传接口(支持公有云/私有云)

// src/main/java/com/anhui/gov/controller/ObsUploadController.java
@RestController
@RequestMapping("/api/obs")
public class ObsUploadController {

    /**
     * 上传图片到华为OBS(二进制存储)
     */
    @PostMapping("/upload")
    public Map uploadImage(@RequestParam("file") MultipartFile file) {
        Map result = new HashMap<>();
        try {
            // 初始化OBS客户端
            ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, obsEndpoint);

            // 生成唯一文件名(避免覆盖)
            String fileName = "gov_docs/" + System.currentTimeMillis() + "_" + file.getOriginalFilename();
            
            // 上传文件(二进制流)
            obsClient.putObject(bucketName, fileName, file.getInputStream());

            // 生成访问URL(私有云需签名)
            String ossUrl = "https://" + bucketName + "." + obsEndpoint + "/" + fileName;
            if ("private".equals(System.getProperty("obs.accessType"))) {
                Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000); // 1小时有效
                String signature = obsClient.signUrl(bucketName, fileName, expiration, "GET");
                ossUrl += "?Authorization=" + signature;
            }

            result.put("code", "200");
            result.put("obsUrl", ossUrl);
            return result;
        } catch (Exception e) {
            result.put("code", "500");
            result.put("msg", "上传失败:" + e.getMessage());
            return result;
        }
    }
}

2. Word文档解析服务(保留样式+图片)

// src/main/java/com/anhui/gov/service/WordParseService.java
@Service
public class WordParseService {

    /**
     * 解析Word文档为HTML(保留样式+图片)
     */
    public String parseDocx(InputStream docxStream) throws IOException {
        // 使用Apache POI解析Word
        XWPFDocument document = new XWPFDocument(docxStream);
        
        // 配置XHTML转换选项(保留样式)
        XHTMLOptions options = XHTMLOptions.create()
            .setIgnoreStylesIfUnused(false) // 保留未使用的样式
            .setFragment(true); // 仅提取正文

        // 处理图片(自动上传OBS)
        options.setImageManager(new XhtmlImageManager() {
            @Override
            public String getImageUrl(XWPFPictureData pictureData) {
                try {
                    // 调用OBS上传接口(伪代码)
                    return obsUploadService.uploadImage(pictureData.getInputStream());
                } catch (IOException e) {
                    return "";
                }
            }
        });

        // 转换为HTML
        return new XhtmlConverter().convert(document, options);
    }
}

五、部署与集成方案(98万买断制)

1. 环境要求(完全兼容信创)

层次 要求
前端 Vue2/Vue3/React+UEditor 4.1.11+(兼容旧版)
后端 SpringBoot 2.7+(JDK 11+,Tomcat 9.0+)
数据库 MySQL 5.7+(兼容达梦/人大金仓)
服务器 华为ECS(内网CentOS/RedHat)
云存储 华为OBS(公有云/私有云,提供SDK适配包)
中间件 IntelliJ IDEA/Eclipse Jee/MyEclipse(提供多IDE适配指南)

2. 集成步骤(1个工作日内完成)

  1. 环境准备

    • 安装JDK 11+、Tomcat 9.0+,配置OBS AccessKey。
    • 在华为OBS控制台创建Bucket,上传mammothConvert.js(Node.js脚本)到/js目录。
  2. 前端集成

    • gov-doc-plugin.js放入UEditor的plugins目录。
    • 在Vue2/Vue3/React页面初始化UEditor时加载插件:
      UE.getEditor('editor', {
        plugins: 'govDocImport,...', // 添加插件名
        toolbars: [['govDocImport', 'source', '|', 'bold', 'italic']] // 工具栏显示
      });
      
  3. 后端部署

    • ObsUploadController.javaWordParseService.java放入SpringBoot项目的controllerservice目录。
    • application.properties中配置OBS参数:
      obs.endpoint=obs.cn-north-1.myhuaweicloud.com
      obs.accessKeyId=your-access-key-id
      obs.accessKeySecret=your-access-key-secret
      obs.bucketName=your-bucket-name
      
    • 打包WAR包部署至Tomcat,启动服务。
  4. 测试验证

    • 复制Word内容粘贴,检查图片是否上传至OBS。
    • 导入Excel/PPT/PDF,验证公式是否转MathML,样式是否保留。

3. 源代码交付(买断制)

  • 完整代码包:包含前端插件、后端SpringBoot代码、Node.js脚本、OBS配置模板。
  • 编译脚本:提供mvnw(Maven)和build.sh(Linux)用于打包。
  • 培训文档:《环境搭建指南》《插件二次开发手册》《信创环境适配方案》。

六、资质与案例(满足政府国企要求)

1. 合规资质(5+政务项目验证)

资质类型 说明
软件著作权 《政文智汇政务文档集成中间件V1.0》(登记号:202XSRXXXXXX)
信创认证 通过“兆芯杯”信创适配认证(编号:XY-202X-XXXX)
政务合同 某省政务服务平台(2023年,合同金额120万)、某市党校系统(2024年,80万)
银行流水 提供近3年500万+项目回款凭证(脱敏处理)
国产化适配报告 龙芯/飞腾/麒麟OS兼容测试报告(附测试截图)

七、服务承诺(7×24小时保障)

  • 技术支持:专属客服群(QQ群:223813913),1小时内响应,4小时内解决紧急问题。
  • 升级服务:免费提供年度功能升级(如新增WPS格式支持、国密SM4加密)。
  • 数据安全:图片/文档存储支持国密SM4加密(可选),传输层强制HTTPS。

结语:本方案深度适配党政机关需求,在保证功能完整性的同时,通过买断源代码降低长期成本,完全满足98万预算内的集团级部署要求。我们期待与您合作,共同推动政务信息化国产化进程!

复制插件目录

WordPaster插件目录

引入插件文件


	
	UEditor 1.4.3.3示例
	
    
	
	
    
    
    
    
    
    
	
    

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

在工具栏中增加插件按钮

//工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义
    toolbars: [
      [
        "fullscreen",
        "source",
        "|",
        "zycapture",
        "|",
        "wordpaster","importwordtoimg","netpaster","wordimport","excelimport","pptimport","pdfimport",
        "|",
        "importword","exportword","importpdf"
      ]
    ]

初始化控件

image

        var pos = window.location.href.lastIndexOf("/");
        var api = [
            window.location.href.substr(0, pos + 1),
            "asp/upload.asp"
        ].join("");
        WordPaster.getInstance({
			//上传接口:http://www.ncmem.com/doc/view.aspx?id=d88b60a2b0204af1ba62fa66288203ed
            PostUrl: api,
			//为图片地址增加域名:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936
            ImageUrl: "",
            //设置文件字段名称:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45
            FileFieldName: "file",
            //提取图片地址:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1
            ImageMatch: ''			
        });//加载控件

注意

如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段
image
点击查看详细教程

配置ImageMatch

匹配图片地址,如果服务器返回的是JSON则需要通过正则匹配

ImageMatch: '',

点击参考链接

配置ImageUrl

为图片地址增加域名,如果服务器返回的图片地址是相对路径,可通过此属性添加自定义域名。

ImageUrl: "",

点击查看详细教程

配置SESSION

如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
点击查看配置教程

功能演示

编辑器界面

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转图片

上传网络图片

自动上传网络图片

下载示例

点击下载完整示例

更多推荐