.net中html转pdf
最近研究了2天如何把html转为pdf保存的方法,网上找了好多解决方案。总结下来也就是2种
一种是使用js的插件 jspdf 这款插件我试了下,很强大 使用起来也很简单,唯一 一点不好的就是转成pdf有些模糊
另一种方案就是使用iTextSharp wkhtmltopdf Pechkin等工具 这些是最常见的了,本文中使用的是Pechkin 过程中还是踩了下坑
今天给大家分享一下这2种方案的使用方法 当然有些讲解不好的地方 希望多多包涵 本人小白
首先第一种使用js插件 我们需要准备2个文件 jspdf html2canvas 这2个js文件 大家可以去网上找一下 比较多
然后我们在需要用到的地方引用一下这几个js文件
如图:

这个是使用方法,下面注释的2行代码表示如果转换为pdf一页不够就会分成2页
$(function () {
$("#save").click(function () {
html2canvas($("#htmltopdf"), {
onrendered: function (canvas) {
//返回图片dataURL,参数:图片格式和清晰度(0-1);
var imgData = canvas.toDataURL();
//方向默认竖直,尺寸ponits,格式a4[595.28,841.89]
var doc = new jsPDF('p', 'pt', 'a4');
//addImage后两个参数控制添加图片的尺寸
doc.addImage(imgData, 'PNG', 9, 0, 500, 250);
//doc.addPage();
//doc.addImage(imgData, 'PNG', 9, -900, 650, 750);
doc.save('test.pdf');
}
})
});
})
下面贴出html代码:
<div id="htmltopdf">
<h1>html转pdf</h1>
<p>
关键代码解析:<br />
html2canvas 是将当前页面转换成图片;<br />
$('#appmsg') 是要转换为图片的页面范围;<br />
height:5000,这个高度要根据页面的大小灵活调整;
var doc = new jsPDF('p', 'px','a3'); p:横向,a3:纸张大小,默认是a4;<br />
doc.addImage(imgData, 'PNG', -9, 0,650,1500);将转换后的图片放到pdf文档上,<br />后面四个参数可根据实际效果灵活调整;<br />
doc.addPage(); 一页pdf显示不完整的时候,新增一页;
</p>
<img src="QQ截图20170809103511.png" />
</div>
<button id="save">下载</button>
下面给大家介绍第二种方法Pechkin
打开vs 管理NuGet程序包 如图所示 在项目中安装

安装完成后会在根目录出现5个dll程序集
文中创建的是mvc项目
[HttpPost]
public ActionResult DownloadPdf()
{
GlobalConfig config = new GlobalConfig();
SimplePechkin pechkin = new SimplePechkin(config);
ObjectConfig objectConfig = new ObjectConfig();
objectConfig.SetPrintBackground(true)
.SetLoadImages(true)
.SetAffectPageCounts(true)
.SetPageUri("http://localhost:7858/Home/Index");
byte[] bytePDF = pechkin.Convert(objectConfig);
return File(bytePDF, "application/pdf","test.pdf");
}
SetPageUri里面的那个链接替换成需要转pdf文档的网址链接就行了。lz小白一个 在调用这个方法的时候踩了一个坑 用ajax发起请求结果死活没反应
正确方法应该酱紫的
@using(Html.BeginForm("DownloadPdf","Home",FormMethod.Post))
{
<input type="submit" value="submit" />
}
在视图当中使用html辅助器调用。
好了 方案就介绍到这,谢谢大家,文中方案如果有什么问题 欢迎大家提出
.net中html转pdf的更多相关文章
- 如何在PDF中添加水印,PDF添加水印技巧
PDF文件现在的使用很是普遍,不管是工作中还是学习中都会使用到PDF文件,制作一个PDF文件就很辛苦的,我们要是想把PDF文件中添加水印防止抄袭的时候应该要怎么做呢,其实吧PDF文件添加水印还挺简单的 ...
- 网页中动态嵌入PDF文件/在线预览PDF内容https://www.cnblogs.com/xgyy/p/6119459.html
#网页中动态嵌入PDF文件/在线预览PDF内容# 摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如 ...
- 在网页浏览器中原生显示PDF文件
在网页中直接显示pdf格式的文件方便阅读.但是如果文件较大加载速度会很慢,另外如果客户端没有安装pdf阅读插件的话,也就看不了了. 这种方式的好处就是不需要转换,直接显示,而且在加载时(高级的浏览器, ...
- 利用aspose-words 实现 java中word转pdf文件
利用aspose-words 实现 java中word转pdf文件 首先下载aspose-words-15.8.0-jdk16.jar包 引入jar包,编写Java代码 package test; ...
- vue中如何实现pdf文件预览?
今天产品提出一个优化的需求,就是之前我们做的图片展示就是一个img标签搞定,由于我们做的是海外后台管理系统,那边的人上传的文件时pdf格式,vue本事是不支持这种格式文件展示的,于是就google搜索 ...
- 记录下工作中使用的pdf.js
在工作中遇到一个通过网页的形式浏览pdf文件以及图片的需求,图片简单,直接通过网页的形式打开这个图片的URL即可.而pdf这边,通过查询发现有一个名为pdf.js的神器. 简单介绍下,它可以在html ...
- PDF.Js的使用—javascript中前端显示pdf文件
PDF.Js的使用—javascript中前端显示pdf文件 写于2018/12/6 起因是一个图片展示页面需要展示pdf格式的文件,所以查了半天决定使用pdf.js,我也不求有多了解它,能实现我想要 ...
- 如何在ASP.NET Core 中快速构建PDF文档
比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本 ...
- 在Winform程序中使用Spire.Pdf实现页面添加印章处理
在一些场合,我们往往需要使用印章来给每页文档加盖一个印章,以表示该文档经过某个部门的认证的,常规的做法就是打印文档后盖章,如果需要电子档再行扫描一下.这样的的处理,如果文档很多,且仅仅需要电子文档的就 ...
- 如何在hexo博客中在线阅读pdf
前言 有一些资料或者笔记是pdf版本的,如果想要放在博客中进行阅读,那么就得将其转换为markdown格式或者html格式.但是这样转换后,其原pdf的格式就会混乱了,排版将会变得很困难,不过一山更比 ...
随机推荐
- JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?
前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...
- Eclipse常用快捷键大全
1.ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母
- LNMP环境的安装
一.LNMP的安装 1.准备工作 #清理已经安装包 rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y remove mys ...
- 阿里消息队列中间件 RocketMQ源码解析:Message发送&接收
- 19. leetcode 100. Same Tree
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- Hibernate学习总汇
Hibernate的基础知识 什么是框架? 什么是Hibernate框架? |--1.应用在javaee三层结构中的dao层 |--2.在dao层里面做对数据库进行crud操作,使用hibernate ...
- python3.6成功安装scrapy
本文基于环境:win10(64)+python3.6(64) 第一次直接pip install scrapy,安装出错,错误提示 error: Microsoft Visual C++ 14.0 is ...
- 到底什么样的企业才适合实施SAP系统?
SAP系统作为全宇宙第一的ERP,号称世界500强里面有80%的企业部署了SAP系统,总部位于德国沃尔多夫市,在全球拥有6万多名员工,遍布全球130个国家,并拥有覆盖全球11,500家企业的合作伙伴网 ...
- Given two binary string, return their sum (also a binary string)
主要思路:将二进制转化为十进制,然后进行十进制加法,最后再将加法所得的结果转化为二进制 public class BinarySum2 { public static void main(String ...
- vcruntime140.dll丢失解决
之前安装好apache2.4后,打开突然报这样的错误,所以百度一下,发现了问题所在,原因是系统需要安装一个插件,才能正常运行apache2.4 Microsoft Visual C++ 2005 Re ...