概述

html文件怎么转成PDF文件?有的招聘网上的简历导成DOC文件,不能直接使用,这样造成很大的困扰,那么它还有一个格式,那就是html格式。将文件导出成html格式,然后再转成PDF文件,这样便可以直接使用了。平常在项目中也是很多这样的需求,需要把内容转成pdf文件。

下面我们来看下使用  iTextSharp实现HTML转PDF的方法。

代码实现

1、nuget 安装iTextSharp。

using iTextSharp.text;
using iTextSharp.text.pdf;

2、将Html文档转换为pdf。

  /// <summary>/// 将Html文档转换为pdf/// </summary>/// <param name="htmlText"></param>/// <returns></returns>public byte[] ConvertHtmlTextToPDF(string htmlText){if (string.IsNullOrEmpty(htmlText))return null;//避免当htmlText无任何html tag标签的纯文字时,转PDF时会挂掉,所以一律加上<p>标签htmlText = "<p>" + htmlText + "</p>";using (var outputStream = new MemoryStream()){byte[] data = Encoding.UTF8.GetBytes(htmlText);var msInput = new MemoryStream(data);var doc = new Document();//pdf文档,默认A4格式。var writer = PdfWriter.GetInstance(doc, outputStream);doc.Open();//使用XMLWorkerHelper把Html parse到PDFiTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msInput, null, Encoding.UTF8, new UnicodeFontFactory());//指定默认缩放比例为100%var pdfDest = new PdfDestination(PdfDestination.XYZ, 0, doc.PageSize.Height, 1f);//将默认设置写入pdfvar action = PdfAction.GotoLocalPage(1, pdfDest, writer);writer.SetOpenAction(action);doc.Close();msInput.Close();outputStream.Close();return outputStream.ToArray();}}

3、Unicode 字体支持。

   /// <summary>/// Unicode 字体支持/// </summary>public class UnicodeFontFactory : FontFactoryImp{public override Font GetFont(string fontname, string encoding, bool embedded, float size, int style, BaseColor color, bool cached){//使用微软雅黑字体解决中文乱码的问题,因为雅黑字体为字体集合所以需要使用,0来指定具体的字体。//var chineseFontPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "msyh.ttc,0");//宋体//BaseFont baseFont = BaseFont.CreateFont(@"c:\Windows\Fonts\simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//黑体BaseFont baseFont = BaseFont.CreateFont(@"c:\Windows\Fonts\SIMHEI.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//var baseFont = BaseFont.CreateFont(chineseFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);return new Font(baseFont, size, style, color);}}

4、调用生成。

   string content = temp.Content;foreach (var dict in dicts){content = content.Replace("{{" + dict.Key + "}}", dict.Value);}var path = _esignInfo.Value.ContractPath;//if (entity.ContractType == ContractType.First)//{//    path += "/" + appId + "/Agreements";//}entity.OriginalFileUrl = _pdfHelper.WritePdfFile(content, contractNo, path, "PDF");bool isSucc = !String.IsNullOrEmpty(entity.OriginalFileUrl);

C#使用iTextSharp操作PDF文件相关推荐

  1. itex将html转成pdf加水印,itext操作PDF文件添加水印

    功能描述:添加图片和文字水印 /** * * [功能描述:添加图片和文字水印] [功能详细描述:功能详细描述] * @param srcFile 待加水印文件 * @param destFile 加水 ...

  2. 使用ITEXT操作PDF文件

    2019独角兽企业重金招聘Python工程师标准>>> 使用ITEXT操作PDF文件 pom.xml <dependency><groupId>com.ite ...

  3. bfo java_Java操作PDF文件(BFO) | 学步园

    上一次我们用iText这个工具在Java环境下操作PDF文件,现在我们换一个工具:BFO iText的确小巧,但是功能也有限制,只能简单的生成PDF文件,BFO却不同,能设置字体.版面等元素. 最新版 ...

  4. 第19天---python办公自动化---操作PDF文件

    第19天-python办公自动化-操作PDF文件 在Python中,可以使用名为PyPDF2的三方库来读取PDF文件,可以使用下面的命令来安装它. pip install PyPDF2 读取PDF并抽 ...

  5. bfo java_Java操作PDF文件(BFO)

    上一次我们用iText这个工具在Java环境下操作PDF文件,现在我们换一个工具:BFO iText的确小巧,但是功能也有限制,只能简单的生成PDF文件,BFO却不同,能设置字体.版面等元素. 最新版 ...

  6. python 操作PDF文件 之 A3页面转A4

    python 操作PDF文件 A3页面转A4页面 文章目录 1. 需求概述 2. 代码实现 1. 需求概述 最近接到一份PDF资料需要打印,奈何页面是如图所示的A3格式的,奈何目前条件只支持打印A4. ...

  7. day10 Python操作pdf文件

    目录 一.PyPDF2的使用 1. pypdf2的使用 2. pypdf2的基本应用 3. 为PDF文件页面添加水印 二.reportlab的使用 0. 导入工具 1. 创建画布 2. 添加文字 3. ...

  8. Python使操作PDF文件变得有趣

    大家好 我是毕加锁 (锁!) 大家在平时操作PDF文件时是不是感觉很枯燥 那么今天就教大家利用Python让操作PDF文件变得有趣起来  目录  工具  从PDF中提取文本  旋转和叠加页面  加密P ...

  9. itextsharp操作pdf——插入图片

    itextsharp 插入图片操作 asp.net 用于审核后签字或者其他需要对pdf进行插入图片的操作. 在pdf添加图片方法: protected void AddImg(string oldP, ...

最新文章

  1. 2.monotouch 控件的使用
  2. 【C++】【三】单向链表
  3. mybatis中传入String类型参数异常
  4. 1001:Hello,World!
  5. java二叉树的实现_二叉树的实现(Java语言描述)
  6. 求素数为什么到平方根就行了
  7. 【转】C# Stream篇(—) -- Stream基类
  8. lnmp编译安装mysql_LNMP一键包不安装mysql | 厘米天空
  9. sublime能编译PHP吗,让sublime编译php、js
  10. 吊打Navicat?这款神器牛逼了~~ [ 必看 ]
  11. 加州大学洛杉矶计算机排名,加州大学洛杉矶分校计算机科学硕士排名第14(2020年TFE Times排名)...
  12. ROBOTSTUDIO学习
  13. python爬虫爬取网页内容
  14. FeignClient调用 Cannot deserialize instance of `java.lang.Boolean` out of START_OBJECT token to
  15. 鸟哥的Linux私房菜基础篇笔记--8
  16. Jetpack系列之Paging2.0 分页加载
  17. webshell一句话木马大全
  18. CSS实现三角形的原理
  19. layui分页功能在vue写的H5中实现
  20. 目前可以放google adsense的所有免费博客

热门文章

  1. html5/css3响应式布局介绍
  2. css判断不同分辨率显示不同宽度布局实现自适应宽度
  3. hdu3072 Intelligence System (最小树形图?)
  4. DateTimeToUnix/UnixToDateTime 对接时间转换
  5. Koa -- 基于 Node.js 平台的下一代 web 开发框架
  6. 关于Webapp的注意事项
  7. 转载 一篇UI规范文件
  8. java两个数之间质数求法,求任意两个整数之间质数的个数的代码!!!(新手编写)...
  9. 如何在Windows 10上跳过回收站以删除文件
  10. 计算机突然蓝屏无法启动_为什么计算机无法立即启动?