Pechkin.dll可用于pdf的生成,常规用法网上都有介绍:https://www.cnblogs.com/felixnet/p/5143934.html

但是当在一个页面上执行过一次之后,再次就无法运行,结束调试重新调试时会报错,显示相关的dll被锁定。

解决方案:

在web.config中的system.webServer界面中增加如下配置:

<handlers>
<add name="html_x64*" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="html_x64" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
</handlers>

 此方法不稳定,晚点研究下Tuespechkin

Tuespechkin还是有同样的问题,需要把converter作为全局静态变量处理

后来尝试用了Pechkin.Synchronized,效果不错,只是每次网站内容更新后需重启一下iis(开始-运行-iisreset)

示例代码:

var htmlStrForPdf="";//此处是要转换为pdf的html内容
#region 将html生成pdf保存在服务器
SynchronizedPechkin sc = new SynchronizedPechkin(new GlobalConfig()
.SetMargins(new Margins() { Left = 0, Right = 0, Top = 0, Bottom = 0 }) //设置边距
.SetPaperOrientation(false) //设置纸张方向为横向
); //设置纸张大小(使用者可以根据自己的需求设置。这里的50代表长,100代表宽)
ObjectConfig oc = new ObjectConfig();
oc.SetPrintBackground(true).SetRunJavascript(true).SetScreenMediaType(true)
.SetLoadImages(true);
//以上设置十分重要:
//SetPrintBackground(true)是显示样式所必须的(例如令设置有颜色的<div>能在PDF中显示出来)。
//SetLoadImages(true)令PDF可以加载图片。由于Pechkin是封装wkhtmltopdf。wkhtmltopdf是不能识别相对路径的图片文件的。所以HTML内的所有图片路径都不能使用相对路径!必须使用绝对路径!
//.Header.SetHtmlContent(WebPageUri)是使用一个网页内容来设置PDF的页眉。
byte[] bytePDF = sc.Convert(oc, htmlStrForPdf);
File.WriteAllBytes(fullFileName, bytePDF);
#endregion

  

C# Pechkin初始化一次后被锁住的问题的更多相关文章

  1. synchronized和ReentrantLock锁住了谁?

    一.synchronized 案例1: public class LockDemo{ public static void main(String[] args) throws Exception { ...

  2. mysql 排它锁之行锁、间隙锁、后码锁

    MySQL InnoDB支持三种行锁定 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. 间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙不变.间隙锁是针对事务 ...

  3. oracle数据库默认是10次尝试失败后锁住用户

    一般数据库默认是10次尝试失败后锁住用户 1.查看FAILED_LOGIN_ATTEMPTS的值select * from dba_profiles: 2.修改为无限次(为安全起见,不建议使用)alt ...

  4. Redis 在java中的使用(登录验证,5分钟内连续输错3次密码,锁住帐号,半小时后解封)(三)

    在java中使用redis,做简单的登录帐号的验证,使用string类型,使用redis的过期时间功能 1.首先进行redis的jar包的引用,因为用的是springBoot,springBoot集成 ...

  5. Flutter 初始化数据完成后再加载页面

    一.初始化数据完成后再加载数据 1.为了达成这个目标尝试了多种方法总是失败 在Init 和didChangeDependencies 初始化数据过也不行 @override void didChang ...

  6. oracle数据中记录被另一个用户锁住

    原因:PL/SQL里面执行语句执行了很久都没有结果,于是中断执行,于是就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住. 解决方法: 第一步:(只是用于查看哪些表被锁住,真正有 ...

  7. synchronized锁住的是代码还是对象

    不同的对象 public class Sync { public synchronized void test() { System.out.println("test start" ...

  8. 解决新版本Vivado打开老工程IP锁住的问题

    解决新版本Vivado打开老工程IP锁住的问题 1.生成IP核的状态报告 Tools -> Report -> Report IP Status 2.点击Upgrade Selected ...

  9. 在Linux下锁住键盘和鼠标而不锁屏

    假如在你正看着屏幕上的某些重要的事情时,你不想让你的小猫或者小狗在你的键盘上行走,或者让你的孩子在键盘上瞎搞一气,那我建议你试试 xtrlock 这个工具. 假如在你正看着屏幕上的某些重要的事情时,你 ...

随机推荐

  1. HTML5背景知识

    目录 HTML5背景知识 HTML的历史 JavaScript出场 浏览器战争的结束 插件称雄 语义HTML浮出水面 发展态势:HTML标准滞后于其使用 HTML5简介 新标准 引入原生多媒体支持 引 ...

  2. mybatis学习笔记(2)基本原理

    引言在mybatis的基础知识中我们已经可以对mybatis的工作方式窥斑见豹(参考:<MyBatis----基础知识>).但是,为什么还要要学习mybatis的工作原理?因为,随着myb ...

  3. the Agiles Scrum Meeting 12

    会议时间:2020.4.20 21:00 1.每个人的工作 今天已完成的工作 个人结对项目增量开发组: 自动评测系统基本开发完成,实现个人项目自动评测功能 issues: 个人结对功能开发组:开发自动 ...

  4. 在Vue前端项目中,附件展示的自定义组件开发

    在Vue前端界面中,自定义组件很重要,也很方便,我们一般是把一些通用的界面模块进行拆分,创建自己的自定义组件,这样操作可以大大降低页面的代码量,以及提高功能模块的开发效率,本篇随笔继续介绍在Vue&a ...

  5. Mysql的入门和连接问题

    Mysql的连接问题 最近学完了mysql的基础语法,基本上是掌握了mysql的简单运用. 1.入门mysql 我是通过看<漫画sql>入门的,这个视频案例很到位,跟着2倍速学前9章就可以 ...

  6. 在Ubuntu下安装Solr

    使用wget命令去官网下载solr的压缩包. 1 wget https://mirrors.bfsu.edu.cn/apache/lucene/solr/8.6.3/solr-8.6.3.tgz 使用 ...

  7. linux 内核源代码情景分析——几个重要的数据结构和函数

    页面目录PGD.中间目录PMD和页面表PT分别是由表项pgd_t.pmd_t和pte_t构成的数组,而这些表项都是数据结构 1 /* 2 * These are used to make use of ...

  8. Notepad++ 过滤注释行和空行

    Notepad++ 删除指定字符开头的行的正则表达式 1.删除A之后的所有字符用:A.*$ 2.删除A之前的所有字符用:^([^s]*)A ####如果是其他字符就把A替换为其他字符 注释:如何是特殊 ...

  9. ffmpeg第7篇:数据流选择神器-map指令

    自动选择规则 ffmpeg在处理视频时,如果只提供了输入和输出参数,ffmpeg会自动地去选择相应的视频流和音频流来合成文件 自动选择的方式根据如下规则: 视频流:选分辨率最高的,比如有两个视频,一个 ...

  10. BugKu之备份是个好习惯

    题目:备份是个好习惯 思路分析 打开题目,看到一个字符串. 联系到题目,就猜到肯定是源代码泄露,用工具扫一下,发现了index.php.bak,验证了我的猜想,下载下来看看. <?php /** ...