showdown是一个基于Javascript编写的开源Markdown和HTML相互转换器,showdown可以用在客户端(浏览器)或者服务端(nodejs)。shodown还支持原始规范中未定义为opt-in特性的“额外”语法。默认情况下不会启用新的语法元素,需要使用者通过配置启用它们!
https://github.com/showdownjs/showdown
没有硬依赖或特殊的安装说明,只需下载(或使用CDN)并将其包含在您的文件中。
开箱即用,支持许多流行的Markdown风格,如原生的、GFM、commonmark。其他特性,如表、元数据等,可以通过配置启用。
在服务器端(nodejs)和客户端(浏览器)中都可以使用
它很容易定制和扩展,这意味着你可以添加新的语法或通过扩展或配置修改它的行为
Showdown兼容新旧版本(如IE8+和nodejs0.12)。
用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转换器推荐。看完这篇文章,大家知道如何转换了吗?有需要的小伙伴,赶快收藏起来吧!
*请认真填写需求信息,我们会在24小时内与您取得联系。