在使用itextsharp实现 html 2 pdf时,发现display:none无效。如

<div style="display: none">
应该隐藏
</div>
结果转换出来的Pdf竟然显示出来了“应该隐藏”,很奇怪。
在stackoverflow上查找到了类似问题,https://stackoverflow.com/questions/46612643/itextsharp-and-xmlworker-displaynone-is-not-working
原因在于itextsharp和itextsharp对于css解析时存在bug。因此切换成htmlpdf实现方式,也是itext开发的,基本内容和原来的itextsharp差不多,不要顾忌。
通过nuget安装htmlpdf,
/// <summary>
/// 通过Html来生成pdf,测试Html样式
/// </summary>
/// <param name="html">要转换成pdf的html</param>
/// <returns></returns>
[HttpGet]
[Route("TestHtmlToPdf")]
public HttpResponseMessage TestHtmlToPdf(string html)
{
// pdfHTML specific code
using (var memberStream = new MemoryStream())
{
ConverterProperties converterProperties = new ConverterProperties();
converterProperties.SetFontProvider(new DefaultFontProvider(true, true, true));
HtmlConverter.ConvertToPdf(html, memberStream, converterProperties);
byte[] pdfArray = memberStream.ToArray();
var response = new HttpResponseMessage();
response.StatusCode = System.Net.HttpStatusCode.OK;
response.Content = new ByteArrayContent(pdfArray);
response.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/pdf");
return response;
}
}

  





itextsharp display:none无效的bug的更多相关文章

  1. wxpython分割窗研究(解决sashPosition=0无效的BUG)

    用wxpython开发一个简单的exe其实很简单的,但是在开发的过程中会遇到若干的坑.疑问.甚至bug,让人摸不清头脑!恰恰关于这方面的文档是少之又少,看来看去大家还是在官方的文档上加以引用说明,但是 ...

  2. display:inline-block的空白bug问题

    产生原因:我们写代码的时候习惯在结束标签的后面添加换行符,这个时候就会产生空白符.但是不同浏览器对空白符的理解是不同的,IE6/7会忽略掉此空白符,正常显示内容:IE8以上的IE浏览器以及FF.chr ...

  3. IE6/7下Select控件Display属性无效解决办法

    HTML的Select控件,C#的DropDownList服务器控件 设置父类型Display属性之后,在IE6/7上无效 直接将下段javascript脚本添加到页面中即可 <script t ...

  4. SlidingMenu addIgnoreView() 无效的bug解决方法

    ## 感谢大佬:https://blog.csdn.net/fuchaosz/article/details/51513288 1 简介 最近在做侧滑的时候用到了SlidingMenu,在MainAc ...

  5. IE8 td元素 width无效的bug;

    不经意间做项目发现IE的td在某种情况下好奇怪,自己设置的width不起作用: 后经google大法,发现解决方案:已验证过完美解决bug; <table style="width:  ...

  6. 解决Android5.0以后DatePicker选择时间无效的bug。

    一.在布局中加上这句话. 加上了这句话后,就相当于强制用5.0以前的外观,所以外观会有所变化: 5.0以上没有这句话的外观: 加上之后的外观: 二.可以用DatePickerDialog代替

  7. ios 最新系统bug与解决——微信公众号中弹出键盘再收起时,原虚拟键盘位点击事件无效

    最近ios发布新版本系统12.1,随着部分用户的系统更新,一些问题也渐渐暴露出来... 公司用户反映微信公众号出现了点击无效的bug!!测试调查发现,只有iphonex.iphone6,ihpone7 ...

  8. 转:移动开发中一些bug及解决方案

    网页开发要面对各种各样的浏览器,让人很头疼,而移动开发中,你不但要面对浏览器,还要面对各种版本的手机,iOS好一点,而安卓就五花八门了,你可能在开发中也被它们折磨过,或者正在被它们折磨,我在这里说几个 ...

  9. IE常见BUG总结(持续更新)

    ie6~7下display:inline-block无效 解决方案:需要hack触发hasLayout 1 //IE6.7中内联元素(如span)触发layout属性后, 它的行为和标准中的 inli ...

随机推荐

  1. c# http get post转义HttpUtility.UrlEncode

    //该数据如果要http get.post提交,需要经过转义,否则该数据中含& ''等字符会导致意外错误.需要转义.这里用HttpUtility.UrlEncode来转义.接收方无需反解析 s ...

  2. Page14:状态观测器[Linear System Theory]

    内容包含状态观测器设计分类及其特点 状态观测器设计与状态反馈之间的关系问题 带补偿器动态输出反馈与带状态观测器的状态反馈等价原理 由于第二部分频域部分较为简单,因此仅整理时间域部分

  3. [hyperscan] hyperscan 1到1.5 --!!

    [hyperscan][pkg-config] hyperscan 从0到1路线图 接续前文,继续深入理解: 概述: 1.  自动机理论,是hyperscan的理论基础. https://zh.wik ...

  4. vue安装调试器Vue.js devtools

    一. 打开https://github.com/vuejs/vue-devtools,进入gitlab.往下翻找到: 找到installation,选择以chrome的拓展方式安装. 二. 这边选择添 ...

  5. python 随机模块常用命令

    import randomprint(random.random()) #用于生成一个0到1之间的随机浮点数print(random.uniform(1,3))# 用于生成一个指定范围内的随机浮点数p ...

  6. GIt如何进行代码管理

    一:Git账号设置(仅第一次需设置): 1.首先打开GIt  Bash  界面

  7. head 命令 读取文件的前n行,默认查看文件的前十行

    head 命令 读取文件的前n行 默认查看文件的前十行 head /etc/passwd # 默认查看文件的前十行 /etc/passwd # 查看文件的前两行

  8. java取得汉字拼音(pinyin4j)

    jar包:pinyin4j.jar 基本用法: String[] pinyin = PinyinHelper.toHanyuPinyinStringArray('重'); 例如“重”字,该方法返回一个 ...

  9. tortoiseSVN版本合并(merge)

    原文地址:http://blog.163.com/qq371557620@yeah/blog/static/8428365820172110320574/ 编码过程中,我们经常会遇到需要多个分支并行开 ...

  10. python的__new__方法

    https://www.cnblogs.com/kex1n/p/5991249.html https://blog.csdn.net/wwx890208/article/details/8053445 ...