OpenXMl倒出word、PDF
@using MarkdownSharp
@{
    ViewBag.Title = "预览";
    Layout = "~/Views/Shared/_Layout.cshtml";
    var lineText = ViewBag.StrContent;
}
<link href="~/Content/bootstrap.css" rel="stylesheet" />
<link href="~/Content/Index.css" rel="stylesheet" />
<script src="~/Content/marked.js"></script>
<body>
    <ul>
        <li><a href="#" onclick="ExportWord()">导出Word</a></li>
        <li><a href="#" onclick="ExportPdf()">导出PDF</a></li>
    </ul>
    <div class="row home-div-list">
        <div id="content">@Html.Raw(HttpUtility.HtmlDecode(lineText))</div>
    </div>
</body>
<script>
    function ExportPdf() {
        html2canvas($('#contentId'), {
            height: 5000,
            onrendered: function (canvas) {
                var imgData = canvas.toDataURL('img/notice/png');
                var doc = new jsPDF('p', 'px', 'a3');
                //第一列 左右边距  第二列上下边距  第三列是图片左右拉伸  第四列 图片上下拉伸
                doc.addImage(imgData, 'PNG', -9, 0, 650, 1500);
                doc.addPage();
                doc.addImage(imgData, 'PNG', -9, -900, 650, 1500);
                doc.save('test.pdf');
            }
        });
    }
    //$(document).ready(function () {
    //    var regularImages = $('#contentId').find("img");
    //    var canvas = document.createElement('canvas');
    //    var ctx = canvas.getContext('2d');
    //    regularImages.each(function () {
    //        // preparing canvas for drawing
    //        var imgElement = this;
    //        ctx.clearRect(0, 0, canvas.width, canvas.height);
    //        canvas.width = imgElement.naturalWidth;
    //        canvas.height = imgElement.naturalHeight;
    //        ctx.drawImage(imgElement, 0, 0);
    //        var dataURL = canvas.toDataURL();
    //        $(imgElement).attr('src', dataURL);
    //    });
    //    canvas.remove();
    //});
    //function ExportWord() {
    //    var content = $('#contentId').html();
    //    var converted = htmlDocx.asBlob(content);
    //    saveAs(converted, 'aa.docx');
    //}
</script>

OpenXMl倒出word、PDF的更多相关文章

  1. 通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)

    前言 我们在做web系统中,导出也是很常用的一个功能,如果每一个数据列表都要对应写一个导出的方法不太现实.现在就想设计一个共通的功能来实现这个导出. 需求分析 在开始之前我们先要明白我们要实现怎样一个 ...

  2. OpenXML操作word

    OpenXML概述 项目中经常需要操作word,之前的方式是采用COM接口,这个接口很不稳定,经常报错.现在开始采用OpenXML.OpenXML(OOXML)是微软在Office 2007中提出的一 ...

  3. OpenXml操作Word的一些操作总结.

    OpenXml操作Word的一些操作总结. OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩 ...

  4. web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)

    web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等) 前言 我们在做web系统中,导出也是很常用的一个功能,如果每一个数据列表都要对应写一个导出的方法不太现实 ...

  5. OpenXml读取word内容(一)

    OpenXml读取word内容注意事项 1.使用OpenXml读取word内容,word后缀必须是".docx":如果word后缀是".doc"需要转成&quo ...

  6. OpenXml修改word特定内容

    采用OpenXml来修改word特定内容,如下: word: OpenXml修改word之前: OpenXml修改word之后: 代码: string path = @"C:\Users\A ...

  7. iOS - 开发中加载本地word/pdf文档说明

    最近项目中要加载一个本地的word/pdf等文件比如<用户隐私政策><用户注册说明>,有两种方法加载 > 用QLPreviewController控制器实现 步骤 : & ...

  8. c#上传文件并将word pdf转化成txt存储并将内容写入数据库

    c#上传文件并将word pdf转化成txt存储并将内容写入数据库 using System; using System.Data; using System.Configuration; using ...

  9. OpenXml读取word内容注意事项

    OpenXml读取word内容注意事项 1.使用OpenXml读取word内容,word后缀必须是".docx":如果word后缀是".doc"需要转成&quo ...

随机推荐

  1. python3环境搭建(uWSGI+django+nginx+python+MySQL)

    1.系统环境,必要知识 #cat /etc/redhat-release CentOS Linux release (Core) #uname -r -.el7.x86_64 暂时关闭防护墙,关闭se ...

  2. modbus学习笔记——帧

    几个需要先搞懂的概念 1.modbus的数据类型 modbus定义了四种数据类型,这四种数据类型分别叫"离散量输入""线圈""输入寄存器"& ...

  3. h5仿微信聊天(高仿版)、微信聊天表情|对话框|编辑器

    之前做过一版h5微信聊天移动端,这段时间闲来无事就整理了下之前项目,又重新在原先的那版基础上升级了下,如是就有了现在的h5仿微信聊天高仿版,新增了微聊.通讯录.探索.我四个模块 左右触摸滑屏切换,聊天 ...

  4. 禁用后退键 BackSpace

    <script language="JavaScript">document.onkeydown = check;function check(e) {    var  ...

  5. Mock接口平台Moco学习

    Mock就是模拟接口的.本文学习Mock的 Moco开源框架. Moco源码和jar下载地址: git  jar  下载moco-runner-xxxx-standalone.jar moco的启动及 ...

  6. ES 14 - (底层原理) Elasticsearch内部如何处理不同type的数据

    目录 1 type的作用 2 type的底层数据结构 3 探究type的存储结构 3.1 创建索引并配置映射 3.2 添加数据 3.3 查看存储结构 4 关于type的最佳实践 1 type的作用 在 ...

  7. Vue.js组件间通信方式总结

    平时在使用Vue框架的业务开发中,组件不仅仅要把模板的内容进行复用,更重要的是组件之间要进行通信.组件之间通信分为三种:父-子:子-父:跨级组件通信.下面,就组件间如何通信做一些总结. 1.父组件到子 ...

  8. 搭建基于Docker社区版的Kubernetes本地集群

    Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于版本和容器的不断发展,搭建的方式也是各不相同,这里基于Docker CE的18.09.0版本,在Mac OS.Win10下 ...

  9. 结合JDK源码看设计模式——迭代器模式

    前言: Iterator翻译过来就是迭代器的意思.在前面的工厂模式中就介绍过了iterator,不过当时介绍的是方法,现在从Iterator接口的设计来看,似乎又是一种设计模式,下面我们就来讲讲迭代器 ...

  10. 读书笔记:深入理解java虚拟机(一)虚拟机的运行时的数据区域

    最近在看深入了解java虚拟机第一版(周志明著),特此写读书笔记,整理其中重要的东西和自己的理解. ”java与c++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却 ...