整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

基于Javascript编写的开源Markdown和

基于Javascript编写的开源Markdown和HTML相互转换器-showdown

showdown是一个基于Javascript编写的开源Markdown和HTML相互转换器,showdown可以用在客户端(浏览器)或者服务端(nodejs)。shodown还支持原始规范中未定义为opt-in特性的“额外”语法。默认情况下不会启用新的语法元素,需要使用者通过配置启用它们!






Github(MIT)

https://github.com/showdownjs/showdown

特点



  • 易于使用

没有硬依赖或特殊的安装说明,只需下载(或使用CDN)并将其包含在您的文件中。

  • 功能齐全

开箱即用,支持许多流行的Markdown风格,如原生的、GFM、commonmark。其他特性,如表、元数据等,可以通过配置启用。

  • 跨平台

在服务器端(nodejs)和客户端(浏览器)中都可以使用

  • 可定制和可扩展

它很容易定制和扩展,这意味着你可以添加新的语法或通过扩展或配置修改它的行为

  • 兼容性好

Showdown兼容新旧版本(如IE8+和nodejs0.12)。

  • 纯Javascript

用es5编写,意味着你可以按原样在项目中使用它,而不需要转换。

安装使用

可以使用bower或者npm安装使用

bower install showdown
npm install showdown

也可以直接使用cdn直接引入以便于直接使用,以下便是线上demo,可实现边写边预览


总结

showdown的优势就在于其强大的功能和其非常强的兼容性,而且使用也非常简单,通过很少的配置就能实现很多丰富的功能!具体如何使用可参考官方文档,官方文档就是在一个实时预览的编辑器中进行展现的!

.NET的SelectPdf Html到Pdf转换器-社区版是.NET的SelectPdf库中提供的功能强大的html到pdf转换器的免费版本。
转换器提供了许多强大的选项(将任何网页转换为pdf,将任何html字符串转换为pdf,html5 / css3 / javascript支持,页眉和页脚支持等),唯一的限制是它最多可以生成pdf文档。5页长。
.NET的免费HTML至Pdf转换器–社区版功能:最多生成5页pdf文档,将任何网页转换为pdf,将任何原始html字符串转换为pdf,设置pdf页面设置(页面大小,页面方向,页面边距) ,在转换过程中调整内容大小以适合pdf页面,设置pdf文档属性,设置pdf查看器首选项,设置pdf安全性(密码,权限),设置转换延迟和网页导航超时,自定义页眉和页脚,在页眉中支持html和页脚,自动和手动分页符,在每个页面上重复html表头,支持@media类型屏幕和打印,支持内部和外部链接,基于html元素自动生成书签,支持HTTP标头,支持HTTP cookie,支持需要身份验证的网页,支持代理服务器,启用/禁用javascript,修改颜色空间,多线程支持,HTML5 / CSS3支持,Web字体支持等等。


代码实现

1、nuget 引用

Install-Package Select.HtmlToPdf

2、方法

  • using SelectPdf;using System.Collections.Specialized;using System.IO;using System.Web;
    namespace BQoolCommon.Helpers.File{ public class WebToPdf { public WebToPdf() { //SelectPdf.GlobalProperties.LicenseKey="your-license-key"; }
    /// <summary> /// 將 Html 轉成 PDF,並儲存成檔案 /// </summary> /// <param name="html">html</param> /// <param name="fileName">絕對路徑</param> public void SaveToFileByHtml(string html, string fileName) { var doc=SetPdfDocument(html); doc.Save(fileName); }
    /// <summary> /// 傳入 Url 轉成 PDF,並儲存成檔案 /// </summary> /// <param name="url">url</param> /// <param name="fileName">絕對路徑</param> /// <param name="httpCookies">Cookies</param> public void SaveToFileByUrl(string url, string fileName, NameValueCollection httpCookies) { var doc=SetPdfDocument(url, httpCookies); doc.Save(fileName); }
    /// <summary> /// 將 Html 轉成 PDF,並輸出成 byte[] 格式 /// </summary> /// <param name="html">html</param> /// <returns></returns> public byte[] GetFileByteByHtml(string html) { var doc=SetPdfDocument(html); return doc.Save(); }
    /// <summary> /// 傳入 Url 轉成 PDF,並輸出成 byte[] 格式 /// </summary> /// <param name="url">url</param> /// <param name="httpCookies">Cookies</param> /// <returns></returns> public byte[] GetFileByteByUrl(string url, NameValueCollection httpCookies) { var doc=SetPdfDocument(url, httpCookies); return doc.Save(); }
    /// <summary> /// 將 Html 轉成 PDF,並輸出成 Stream 格式 /// </summary> /// <param name="html">html</param> /// <returns></returns> public Stream GetFileStreamByHtml(string html) { var doc=SetPdfDocument(html); var pdfStream=new MemoryStream();
    doc.Save(pdfStream); pdfStream.Position=0;
    return pdfStream; }
    /// <summary> /// 傳入 Url 轉成 PDF,並輸出成 Stream 格式 /// </summary> /// <param name="html">html</param> /// <returns></returns> public Stream GetFileStreamByUrl(string url, NameValueCollection httpCookies) { var doc=SetPdfDocument(url, httpCookies); var pdfStream=new MemoryStream();
    doc.Save(pdfStream); pdfStream.Position=0;
    return pdfStream; }
    private PdfDocument SetPdfDocument(string html) { var converter=new HtmlToPdf();
    converter.Options.WebPageWidth=1200; html=HttpUtility.HtmlDecode(html);
    return converter.ConvertHtmlString(html); }
    private PdfDocument SetPdfDocument(string url, NameValueCollection httpCookies) { var converter=new HtmlToPdf(); converter.Options.WebPageWidth=1200;
    if (httpCookies != && httpCookies.Count !=0) { converter.Options.HttpCookies.Add(httpCookies); }
    return converter.ConvertUrl(url); }
    }}

    3、调用

    • /// <summary> /// 下载pdf /// </summary> public void Downpdf(string data) { var stream=new BQoolCommon.Helpers.File.WebToPdf().GetFileStreamByHtml(Gethtml(data)); Response.Clear(); //二进制流数据(如常见的文件下载) Response.ContentType="application/octet-stream"; //通知浏览器下载文件而不是打开 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("Profit and Loss Statement.pdf", System.Text.Encoding.UTF8)); var bytes=StreamToBytes(stream); Response.BinaryWrite(bytes); Response.Flush(); stream.Close(); stream.Dispose();
      Response.End(); }

      那么如何获取指定页面的html 呢 传入对应的model 获得指定动态的html

      • private string Gethtml(string data) { string str="";
        str=this.ControllerContext.RenderViewToString("ProfitDetails", data);
        return str; }
        • using BQoolCommon.Helpers.Format;using Newtonsoft.Json;using OrdersManager.Models.ViewModel.Report;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;using System.Web.Mvc;
          namespace OrdersManager.Web.Infrastructure{ public static class HelperExtensions { public static string RenderViewToString(this ControllerContext context, string viewName, string data) { if (string.IsOrEmpty(viewName)) viewName=context.RouteData.GetRequiredString("action");
          context.Controller.ViewData.Model=JsonConvert.DeserializeObject<ProfitDetailsmodel>(StringTools.Base64Decode(StringTools.Base64Decode(data)));
          using (var sw=new StringWriter()) { ViewEngineResult viewResult=ViewEngines.Engines.FindPartialView(context, viewName); var viewContext=new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw); try { viewResult.View.Render(viewContext, sw); } catch (Exception ex) { throw; }
          return sw.GetStringBuilder().ToString(); } } }}

          参考文档

          https://www.nuget.org/packages/Select.HtmlToPdf/

大家知道HTML格式吗?我们通常上网浏览的网页就是HTML格式。而PDF格式是我们常用的一种文件格式,在不同的设备上打开,既不会影响到PDF内容的排版,也不容易被修改。在工作中,有时为了查看PDF文件在网页状态下的排版,以及对内容进行编辑修改,我们需要将PDF转成HTML。可能有些小伙伴们不知道如何转换。别着急,今天这期PDF转HTML转换器推荐,给大家做一下详细介绍。

转换方法一:借助“万能文字识别软件”完成转换

安利指数:★★★★☆

安利理由:功能丰富,支持多种格式进行转换

这款软件主打文字识别功能,它能够准确识别图片、视频、音频中的文字内容,并将它们转换成文字。不止这些,它还能实现全能翻译、AI修复照片、PDF转换处理等操作。

像PDF转成HTML就可以使用这款软件完成。它的转换速度很快,如果文件数量较多也不用担心,我们可以将文件批量上传,大大提高我们的效率。

转换流程:

步骤一:打开软件,找到【PDF转换处理】,选择【PDF转HTML】按钮。

步骤二:将需要转换的PDF文件直接拖拽进软件。

步骤三:点击【开始转换】,转换后的HTML文件默认保存到电脑桌面。转换成功后,可以点击查看。

告诉大家一个好消息,我们除了可以在电脑上操作,也可以在手机下载它的APP进行使用哦。如果遇到需要进行翻译、扫描、PDF转换处理等情况,也可以使用APP来操作,非常方便!

转换方法二:借助“WPS”完成转换

安利指数:★★★☆☆

安利理由:支持文档表格编辑处理

WPS作为我们经常使用的办公软件,拥有对word,PPT等文档进行编辑的能力,那你知道它还能实现PDF转HTML的操作吗?

转换流程:

首先打开WPS软件,新建文档。然后将PDF文件的内容复制到word文档后保存。保存的格式选择【单一网页文件】即可。

以上就是今天的PDF转HTML转换器推荐。看完这篇文章,大家知道如何转换了吗?有需要的小伙伴,赶快收藏起来吧!