.Net Mvc-导出PDF-思路方案

2024-09-08 01:48
文章标签 导出 pdf mvc net 方案 思路

本文主要是介绍.Net Mvc-导出PDF-思路方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图:


导语:
    在我们做项目的过程中,经常会遇到一些服务性的需求,感到特别困扰,明明实用的价值不高,但是还是得实现;
    因此小客在这里整理一下自己导出PDF的一些思路,供大家参考。
    网上有很多导出PDF运用到的插件,大家也可以看看其他插件的使用,学习学习;

提要:
    这里我使用的是-iTextSharp,供大家参考参考,借鉴方案,完善思路,补充自己,一起学习;

准备工作:
    1、在自己的项目解决方案中---工具->Nuget程序管理包->程序管理控制台,安装iTextSharp插件;
    Install-Package iTextSharp
    Install-Package itextsharp.xmlworker

开始实现:
    1、首先创建一个文档,便于后续toPdf
        Document document = new Document(PageSize.A4, 5, 5, 20, 20);
    2、定义好我们需要存储的路径
        string path =  Server.MapPath(@"..\Common\ExportWord\" + "xxxxxxxxxxx.pdf");
        相对路径,Common\ExportWord 这两个文件夹必须是真实存在的;
    3、根据存储的路径来创建文件流
        FileStream fsPath = new FileStream(path, System.IO.FileMode.Create);
    4、将文件流和新建的文档 放入PdfWriter中直接创建PDF格式的文件
        PdfWriter writer = PdfWriter.GetInstance(document, fsPath);
    5、创建字体样式,便于后面使用
        BaseFont bfChinese = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        //表格标题--字体设置
        Font fontRukuHeader = new Font(bfChinese, 15, Font.NORMAL, BaseColor.BLACK);
        //表格第一行标头--字体设置
        Font fontTtitle = new Font(bfChinese, 10, Font.NORMAL, BaseColor.BLACK);
        //表格数据--字体设置
        Font fontGrid = new Font(bfChinese, 10);
    6、打开文档,按照导出的需求模板来开始填充文档信息数据,
        document.Open();
    7、设置整个表格的总列数
        PdfPTable table = new PdfPTable(7);
    8、开始调整模板,根据你的需求来调整
        PdfPCell firstCell = new PdfPCell(new Phrase("内部确认单", fontRukuHeader));
        firstCell.Colspan = 7;//合并7行
        firstCell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;//居中
        firstCell.PaddingBottom = 6;
        table.AddCell(firstCell);
    9、将表格数据放入文档中
        document.Close();
        document.Add(table);
    10、输出成PDF
        PdfReader reader = new PdfReader(path);
        MemoryStream stream = new MemoryStream();
        PdfStamper pdfstamper = new PdfStamper(reader, stream);
        pdfstamper.FormFlattening = true;
        pdfstamper.Close();
        reader.Close();
        Byte[] btArray = stream.ToArray();
        FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
        fs.Write(btArray, 0, btArray.Length);
        fs.Flush();
        fs.Close();
        FileInfo downloadFile = new FileInfo(path);
        string name = Path.GetFileName(path);
        return File(path, 'application/pdf', Url.Encode(name));
        
        
        

这篇关于.Net Mvc-导出PDF-思路方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1146772

相关文章

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri