html页面直接导出word pdf

综合编程 2018-06-25

直接上代码

html
  
///这里放想要导出的html 元素
function ExportWord() { var html = $("#div_workInfo").html(); $("#hidWord").val(encodeURIComponent(html)); $("#formWord").submit(); } ///from 表单方式提交这段html

接下来就是后台接收了

[HttpPost]
    public ActionResult ExportWord(FormCollection form)
    {
        string html = Server.UrlDecode(form["hidWord"]);///接收前台的html的
        byte[] pdfFile = this.ConvertHtmlTextToPDF(html);///pdf 执行这个就可以了
        ///这里执行word 操作
        sb.Append("");
         sb.Append("");
        sb.Append("@page {mso-page-border-surround-header:no;  mso-page-border-surround-footer:no;}@page Section1{size:841.9pt 595.3pt; mso-page-orientation:landscape; margin:89.85pt 72.0pt 89.85pt 72.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;}div.Section1 {page:Section1;}");
        sb.Append("");
        sb.Append("
"); sb.Append(html); sb.Append("
"); sb.Append(""); 说明一下 加了style 可以设置页面方式为横向 加html 那边 可以设置web视图为 页面视图 return File(pdfFile, "application/pdf", "" + "报销表_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf"); } 这里用到了 iTextSharp 直接可以直接在项目nuget 里面下载安装 /// /// 将Html文字 输出到PDF档里 /// /// /// public byte[] ConvertHtmlTextToPDF(string htmlText) { if (string.IsNullOrEmpty(htmlText)) { return null; } //避免当htmlText无任何html tag标签的纯文字时,转PDF时会挂掉,所以一律加上

标签 htmlText = "

" + htmlText + "

"; MemoryStream outputStream = new MemoryStream();//要把PDF写到哪个串流 byte[] data = Encoding.UTF8.GetBytes(htmlText);//字串转成byte[] MemoryStream msInput = new MemoryStream(data); Document doc =new Document();//要写PDF的文件,建构子没填的话预设直式A4 PdfWriter writer = PdfWriter.GetInstance(doc, outputStream); //指定文件预设开档时的缩放为100% PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, doc.PageSize.Height, 1f); //开启Document文件 doc.Open(); //使用XMLWorkerHelper把Html parse到PDF档里 XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msInput, null, Encoding.UTF8, new Models.UnicodeFontFactory());//UnicodeFontFactory 这个类是防止中午问题的 我在下面贴一下 直接复制过去就OK了 //将pdfDest设定的资料写到PDF档 PdfAction action = PdfAction.GotoLocalPage(1, pdfDest, writer); writer.SetOpenAction(action); doc.Close(); msInput.Close(); outputStream.Close(); //回传PDF档案 return outputStream.ToArray(); } UnicodeFontFactory 类 的内容 继承FontFactoryImp 类 public class UnicodeFontFactory : FontFactoryImp { private static readonly string arialFontPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "arialuni.ttf");//arial unicode MS是完整的unicode字型。 private static readonly string 标楷体Path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "KAIU.TTF");//标楷体 public override Font GetFont(string fontname, string encoding, bool embedded, float size, int style, BaseColor color, bool cached) { //可用Arial或标楷体,自己选一个 BaseFont baseFont = BaseFont.CreateFont(标楷体Path, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); return new Font(baseFont, size, style, color); } }

///导出的pdf 这个是百度上看到的自己抄了一下 发表主要是为了自己收集下来 发表的内容这里都有用过是有效果的

博客园精华区

责编内容by:博客园精华区 (源链)。感谢您的支持!

您可能感兴趣的

Java爬虫入门简介(二) —— Jsoup解析HTML页面... 博客系列 Java爬虫入门简介(一) —— HttpClient请求(本文) Java爬虫入门简介(二) —— Jsoup解析HTML页面(本文) ...
Error with retrieving the value from the html chec... In my html I have: No B C No F NC No RR I kept the first ch...
Element 2.4.2 发布,代码改变 Select 值触发表单校验... Element 2.4.2 发布了,Element 是一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,提供了配套设计资源,帮助...
聊聊3种最常见的响应式设计问题 响应式设计方法对开发者非常有用,因为它使我们的内容在各种设备上广为传播。不用保留几个独立版本的网站,也可以摒除诸如缩放和流式布局这些方法的弊端。 缩...
Jenkins多个HTML注入漏洞(CVE-2017-17383) Jenkins多个HTML注入漏洞(CVE-2017-17383) 发布日期:2017-12-01 更新日期:2017-12...