C#生成PDF文件流 C#生成PDF文件流是使用C#语言生成PDF文件流的技术,主要用于将数据转换为PDF文件流,以便于在Web应用程序中下载或预览PDF文件。下面将详细介绍C#生成PDF文件流的相关知识点。 1. 设置字体 在生成PDF文件流之前,需要设置字体,C#使用iTextSharp库来生成PDF文件流。iTextSharp库提供了多种字体设置方式,例如: ```csharp static BaseFont FontBase = BaseFont.CreateFont("C:\\WINDOWS\\FONTS\\STSONG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); static iTextSharp.text.Font bodyFont = new iTextSharp.text.Font(FontBase, 12); static iTextSharp.text.Font titleFont = new iTextSharp.text.Font(FontBase, 18); static iTextSharp.text.Font paragraphFont = new iTextSharp.text.Font(FontBase, 15); static iTextSharp.text.Font linkFont = new iTextSharp.text.Font(FontBase, 12, Font.UNDERLINE, BaseColor.BLUE); ``` 在上面的代码中,我们设置了四种不同的字体:bodyFont、titleFont、paragraphFont和linkFont。每种字体都有其特定的字体名称、字体大小和样式。 2. 生成PDF文件流 生成PDF文件流的主要步骤是使用iTextSharp库的Document和PdfWriter类。下面是一个简单的示例代码: ```csharp public byte[] DocCreate(System.Drawing.Image image, List<TreeNodes> list) { MemoryStream file = new MemoryStream(); string fileName = string.Empty; Rectangle page = PageSize.A4; float y = page.Height; Document document = new Document(page, 15, 15, 30, 30); float docWidth = page.Width - 15 * 2; float docHeight = page.Height - document.BottomMargin - document.TopMargin; PdfWriter writer = PdfWriter.GetInstance(document, file); writer.CloseStream = false; writer.Open(); PdfContentByte cb = writer.DirectContent; document.Open(); //标题 Paragraph title = new Paragraph(new Chunk("标题", titleFont)); title.Alignment = Element.ALIGN_CENTER; document.Add(title); //图片 iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(image, ImageFormat.Png); float widthSzie = (page.Width - 30) / img.Width; if (widthSzie < 1) { img.ScalePercent(widthSzie * 100); } document.Add(img); //文献出处 Paragraph p2 = new Paragraph(new Chunk("出处", paragraphFont)); p2.IndentationLeft = indentationLeft; document.Add(p2); InitData(list);//初始化业务数据 CreateSteps(list, document, list.FirstOrDefault(it => it.PID == 0));//添加业务数据 ////添加印章 //iTextSharp.text.Image whyz = iTextSharp.text.Image.GetInstance(whyzPath); //whyz.ScalePercent(50); return file.ToArray(); } ``` 在上面的代码中,我们首先创建了一个MemoryStream对象,然后创建了一个Document对象,并将其关联到PdfWriter对象上。然后,我们添加了标题、图片和文献出处等元素到Document对象中。我们将Document对象转换为byte数组,并返回该数组。 3. 设置页面布局 在生成PDF文件流时,需要设置页面布局,例如页面大小、边距、方向等。iTextSharp库提供了多种页面布局设置方式,例如: ```csharp Rectangle page = PageSize.A4; float docWidth = page.Width - 15 * 2; float docHeight = page.Height - document.BottomMargin - document.TopMargin; ``` 在上面的代码中,我们设置了页面大小为A4纸张大小,并设置了页面的宽度和高度。 4. 添加元素 在生成PDF文件流时,需要添加元素,例如标题、图片、文献出处等。iTextSharp库提供了多种元素添加方式,例如: ```csharp Paragraph title = new Paragraph(new Chunk("标题", titleFont)); title.Alignment = Element.ALIGN_CENTER; document.Add(title); ``` 在上面的代码中,我们添加了一个标题元素,并设置了其对齐方式为居中。 5. 初始化业务数据 在生成PDF文件流时,需要初始化业务数据,例如: ```csharp InitData(list);//初始化业务数据 CreateSteps(list, document, list.FirstOrDefault(it => it.PID == 0));//添加业务数据 ``` 在上面的代码中,我们初始化了业务数据,并添加了业务数据到Document对象中。 C#生成PDF文件流需要设置字体、生成PDF文件流、设置页面布局、添加元素和初始化业务数据等步骤。iTextSharp库提供了多种方式来实现这些步骤,以便于生成PDF文件流。
- OneYi_Mr2021-03-01该文档的主要内容为:public byte[] DocCreate(System.Drawing.Image image, List<TreeNodes> list)的一个方法。
- 粉丝: 9
- 资源: 950
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (175601006)51单片机交通信号灯系统设计
- Starter SINAMICS S120驱动第三方直线永磁同步电机系列视频-调试演示.mp4
- (174755032)抽烟、烟雾检测voc数据集
- 基于滑膜控制的差动制动防侧翻稳定性控制,上层通过滑膜控制产生期望的横摆力矩,下层根据对应的paper实现对应的制动力矩分配,实现车辆的防侧翻稳定性控制,通过通过carsim和simulink联合仿真
- 伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真 1.模型简介 模型为基于陷波滤波器的双惯量伺服系统机械谐振抑制仿真,采用Matlab R2018a Simul
- (175989002)DDR4 JESD79-4C.pdf
- lanchaoHunanHoutaiQiantai
- (177377030)Python 爬虫.zip
- (177537818)python爬虫基础知识及爬虫实例.zip
- 自动驾驶横纵向耦合控制-复现Apollo横纵向控制 基于动力学误差模型,使用mpc算法,一个控制器同时控制横向和纵向,实现横纵向耦合控制 matlab与simulink联合仿真,纵向控制已经做好油门刹