1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > itextdef将动态html转为pdf [C#]使用第三方开源库iText7.pdfHtml 将Html转换成Pdf

itextdef将动态html转为pdf [C#]使用第三方开源库iText7.pdfHtml 将Html转换成Pdf

时间:2019-07-27 08:30:33

相关推荐

itextdef将动态html转为pdf [C#]使用第三方开源库iText7.pdfHtml 将Html转换成Pdf

使用第三方开源库iText7.pdfHtml,将html和css转成pdf,官方:/en/demos/convert-html-css-to-pdf-free-online;

官方示例:

usingSystem.IO;usingiText.Html2pdf;namespaceWebsiteDemoPdfHtml

{classProgram

{private static string ORIG = "/uploads/input.html";private static string OUTPUT_FOLDER = "/myfiles/";static void Main(string[] args)

{string pdfDest = OUTPUT_FOLDER + "output.pdf";

HtmlConverter.ConvertToPdf(new FileStream(ORIG, FileMode.Open), newFileStream(pdfDest, FileMode.Create));

}

}

}

官方可以下载到详细的使用说明文档:

设置默认打印纸张大小:

var pdfDest = "hello.pdf";var pdfWriter = newPdfWriter (pdfDest);var pdf = newPdfDocument (pdfWriter);var pageSize = PageSize.A4; //设置默认打印纸张大小,css @page规则可覆盖这个

pdf.SetDefaultPageSize (pageSize);

支持css @page规则控制打印设置选项,例如css @page设置A3打印纸,横向打印,这些规规将覆盖上面的设置默认打印纸张大小:

@page{size:A3 landscape;

}

如果需要引入其他资源,比如插入图片,需要设置根目录,将资源文件放入根目录或子文件夹下:

var properties = newConverterProperties ();

properties.SetBaseUri ("wwwroot"); //设置根目录

默认不支持中文字体,需要修改默认字体提供者,使其支持系统字体:

var provider = new DefaultFontProvider (true, true, true); //第三个参数为True,以支持系统字体,否则不支持中文

properties.SetFontProvider (provider);

支持css @media规则,使其在不同设备上显示不同效果,比如在预览时使用Screen设备显示彩色效果,在打印时使用Print设备增强黑白效果:

var mediaDeviceDescription = new MediaDeviceDescription (MediaType.PRINT); //指当前设备类型,如果是预览使用SCREEN

mediaDeviceDescription.SetWidth (pageSize.GetWidth ());

properties.SetMediaDeviceDescription (mediaDeviceDescription);

最后是以html作为打印模板,加载数据,再转成pdf;

官方推荐的是使用XSL转换(xmlns:xsl="/1999/XSL/Transform"),将xml转换成html,但该示例目前仅支持java,c#找不到相关源码,并且该方式不支持模板预览,不方便用户修改模板:

所以还是推荐使用正则替换规则导入数据,下面是示例html:

@page{size:A4 landscape;

}ul{margin-left:0;padding-left:0;

}ul li{list-style:none;

}ul li:after{content:"";display:block;clear:both;

}ul li p{float:left;margin-left:2em;

}ul li p:first-child{margin-left:0;

}ul li p img{width:36px;height:36px;

}

使用第三方库iText7.pdfHtml,将Html转换成Pdf,以及如何以Html作为打印模板

{{ListOfNames}}

姓名:{{Name}}

年龄:{{Age}}

性别:{{Sex}}

itextdef将动态html转为pdf [C#]使用第三方开源库iText7.pdfHtml 将Html转换成Pdf 以及如何以Html作为打印模板...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。