美文网首页
C#(.NET)打印PDF

C#(.NET)打印PDF

作者: 宗宣先生 | 来源:发表于2021-06-07 10:00 被阅读0次

iTextSharp插件使用

·安装NuGet包

选中工程右击——“管理NuGet程序包”,搜索安装“iTextSharp”

//设置保存的路径

                string pathRoot = Server.MapPath("/EvaluationPDFSource/");//上传到服务器的此文件夹下

                if (!Directory.Exists(pathRoot))//如果不存在则生成

                {

                    Directory.CreateDirectory(pathRoot);

                }

                //生成文件路径

                Random r = new Random();

                Random ran = new Random();

                int num = r.Next(100, 999);

                int ranKey = ran.Next(100, 999);

                string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + num.ToString() + ranKey.ToString() + ".pdf";

                string path = pathRoot + fileName;//文件名

                //写入数据

                FileStream fs = new FileStream(path, FileMode.Create);//打开流

                iTextSharp.text.Document document = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4);

                PdfWriter pdfWriter = PdfWriter.GetInstance(document, fs);

                document.Open();//打开文本

                //----------打印PDF---------//

                PdfPTable pdfTable = new PdfPTable(6);//设置列数

                pdfTable.WidthPercentage = 95;//占宽度百分比:95%(这句很关键,作用是撑满整个面单)

                int[] colWidth = { 2, 2, 2, 2, 3, 3 };

                pdfTable.SetWidths(colWidth);//设置列宽比例

                iTextSharp.text.Font fontContext = PdfUtil.CreatePdfFont("simyou.ttf", 10F);//设置文字格式

                iTextSharp.text.Font fontTitle = PdfUtil.CreatePdfFont("simyou.ttf", 16F);

                iTextSharp.text.Font bigTitle = PdfUtil.CreatePdfFont("simyou.ttf", 20F);

                //设置空行

                PdfPCell blankCell = new PdfPCell();

                blankCell.Colspan = 6;

                blankCell.DisableBorderSide(15);

                blankCell.FixedHeight = 20F;

                //--------------设置标题-----------------//

                //参数1:文字内容 2:文字格式 3:文字位置(居中) 4:是否显示边框 5:跨行 6:跨列(可选)

                PdfPCell Cell5 = PdfUtil.GetPdfCell("上海同济检测技术有限公司", bigTitle, iTextSharp.text.Element.ALIGN_CENTER, false, 6);

                pdfTable.AddCell(Cell5);//加入该单元格

                PdfPCell titleCell = PdfUtil.GetPdfCell("员工薪酬核定表", fontTitle, iTextSharp.text.Element.ALIGN_CENTER, false, 6);

                pdfTable.AddCell(titleCell);

                pdfTable.AddCell(blankCell);//空行格式

                //姓名

                PdfPCell name1 = PdfUtil.GetPdfCell("姓名", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(name1);

                PdfPCell name2 = PdfUtil.GetPdfCell(model.PersonnelName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(name2);

                //性别

                PdfPCell sex1 = PdfUtil.GetPdfCell("部门", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(sex1);

                PdfPCell sex2 = PdfUtil.GetPdfCell(model.DepartmentName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(sex2);

                PdfPCell birth1 = PdfUtil.GetPdfCell("岗位", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(birth1);

                PdfPCell birth2 = PdfUtil.GetPdfCell(model.PositionName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(birth2);

                PdfPCell Qualifications1 = PdfUtil.GetPdfCell("学历", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Qualifications1);

                PdfPCell Qualifications2 = PdfUtil.GetPdfCell(model.Qualifications, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Qualifications2);

                PdfPCell UserTitle1 = PdfUtil.GetPdfCell("职称", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(UserTitle1);

                PdfPCell UserTitle2 = PdfUtil.GetPdfCell(model.UserTitle, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(UserTitle2);

                PdfPCell InitiationDate1 = PdfUtil.GetPdfCell("基本工资", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(InitiationDate1);

                PdfPCell InitiationDate2 = PdfUtil.GetPdfCell(model.BaseSalary?.ToString(), fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(InitiationDate2);

                PdfPCell ContractCount20081 = PdfUtil.GetPdfCell("本公司工龄", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(ContractCount20081);

                PdfPCell ContractCount20082 = PdfUtil.GetPdfCell(model.InWorkYears, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(ContractCount20082);

                PdfPCell ExpireDate1 = PdfUtil.GetPdfCell("非本公司工龄", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(ExpireDate1);

                PdfPCell ExpireDate2 = PdfUtil.GetPdfCell(model.WorkYears.ToString(), fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(ExpireDate2);

                PdfPCell SelfEvaluation1 = PdfUtil.GetPdfCell("岗位工资等级", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(SelfEvaluation1);

                PdfPCell SelfEvaluation2 = PdfUtil.GetPdfCell(model.PostSalaryGrade, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(SelfEvaluation2);

                PdfPCell UserAutograph1 = PdfUtil.GetPdfCell("本人承诺", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1,2);

                pdfTable.AddCell(UserAutograph1);

                PdfPCell UserAutograph2 = PdfUtil.GetPdfCell("本人承诺以上信息真实准确,若信息有误,由此产生的一切由本人承担", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5);

                pdfTable.AddCell(UserAutograph2);

                PdfPCell space = PdfUtil.GetPdfCell("", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 3);

                //pdfTable.AddCell(space);

                PdfPCell UserAutographDate1 = PdfUtil.GetPdfCell("承诺人:"+ model.PromiseUserName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 3);

                pdfTable.AddCell(UserAutographDate1);

                PdfPCell title0 = PdfUtil.GetPdfCell("承诺日期:" + model.CreateTimeDesc, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 2);

                pdfTable.AddCell(title0);

                PdfPCell SubDepOpinion1 = PdfUtil.GetPdfCell("科室负责人意见", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1, 2);

                pdfTable.AddCell(SubDepOpinion1);

                PdfPCell SubDepOpinion2 = PdfUtil.GetPdfCell(model.SubDepartmentOpinion, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5);

                pdfTable.AddCell(SubDepOpinion2);

                PdfPCell space1 = PdfUtil.GetPdfCell("科室负责人:"+model.SubDepartmentName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 3);

                pdfTable.AddCell(space1);

                PdfPCell SubDepOpinion3 = PdfUtil.GetPdfCell("日期:" + model.SubDepartmentDate, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 2);

                pdfTable.AddCell(SubDepOpinion3);

                PdfPCell title1 = PdfUtil.GetPdfCell("部门负责人意见", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1,2);

                pdfTable.AddCell(title1);

                PdfPCell Radio1 = PdfUtil.GetPdfCell("基本工资核定", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Radio1);

                PdfPCell title2 = PdfUtil.GetPdfCell(model.DepartmentalWageAmountDesc?.ToString(), fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(title2);

                PdfPCell Radio2 = PdfUtil.GetPdfCell("", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 3);

                pdfTable.AddCell(Radio2);

                PdfPCell title3 = PdfUtil.GetPdfCell("岗位工资核定", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(title3);

                PdfPCell Radio3 = PdfUtil.GetPdfCell(model.DepartmentalJobWageAmountDesc?.ToString(), fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Radio3);

                PdfPCell title4 = PdfUtil.GetPdfCell("", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(title4);

                PdfPCell Radio4 = PdfUtil.GetPdfCell("部门负责人:"+model.DepartmentHeaderName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Radio4);

                PdfPCell title5 = PdfUtil.GetPdfCell("日期:"+ model.DeptDateDesc, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(title5);

                PdfPCell Radio5 = PdfUtil.GetPdfCell("人事核定", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1,2);

                pdfTable.AddCell(Radio5);

                PdfPCell title6 = PdfUtil.GetPdfCell("基本工资核定", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(title6);

                PdfPCell Radio6 = PdfUtil.GetPdfCell(model.HRWageAmountDesc?.ToString(), fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Radio6);

                PdfPCell title7 = PdfUtil.GetPdfCell("", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 3);

                pdfTable.AddCell(title7);

                PdfPCell Radio7 = PdfUtil.GetPdfCell("岗位工资核定", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Radio7);

                PdfPCell title8 = PdfUtil.GetPdfCell(model.HRJobWageAmountDesc?.ToString(), fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(title8);

                PdfPCell Radio8 = PdfUtil.GetPdfCell("", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Radio8);

                PdfPCell title9 = PdfUtil.GetPdfCell("核定人:"+model.HRLeaderName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(title9);

                PdfPCell Radio9 = PdfUtil.GetPdfCell("日期:"+model.HRDateDesc, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1);

                pdfTable.AddCell(Radio9);

                PdfPCell title10 = PdfUtil.GetPdfCell("审批", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1,2);

                pdfTable.AddCell(title10);

                PdfPCell ComprehensiveEvaluation1 = PdfUtil.GetPdfCell("总经理:"+model.GMName, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 3);

                pdfTable.AddCell(ComprehensiveEvaluation1);

                PdfPCell ComprehensiveEvaluation2 = PdfUtil.GetPdfCell("日期:"+model.GMDateDesc, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true,2);

                pdfTable.AddCell(ComprehensiveEvaluation2);

                PdfPCell title11 = PdfUtil.GetPdfCell("审批内容:"+model.GMOpinion, fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5);

                pdfTable.AddCell(title11);

                PdfPCell Opinion1 = PdfUtil.GetPdfCell("备注", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 1,9);

                pdfTable.AddCell(Opinion1);

                PdfPCell DepartmentOpinion2 = PdfUtil.GetPdfCell("1、岗位填写以实际岗位为准", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5);

                pdfTable.AddCell(DepartmentOpinion2);

                PdfPCell DepartmentUserGUID1 = PdfUtil.GetPdfCell("2、学历及职称为国家认可的相关学历及职称或国家认可的可以等同于相关职称的证书", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5);

                pdfTable.AddCell(DepartmentUserGUID1);

                PdfPCell DepartmentUserGUID2 = PdfUtil.GetPdfCell("3、基本工资等级分为12级,按学历及职称确认,就高不就低;当学历或者职称发生变化时,员工及时通知公司行政部,并提交相关学历或职称证书,基本工资的调整从获得学历或职称的次月起", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5,2);

                pdfTable.AddCell(DepartmentUserGUID2);

                PdfPCell DepartmentDate1 = PdfUtil.GetPdfCell("4、工龄累计计算,按参加工作之日起计算工龄,员工本人对公司工龄的计算有异议,需提供相关社保缴纳证明;应届毕业生进入公司第1年工龄工资为1年", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5,2);

                pdfTable.AddCell(DepartmentDate1);

                PdfPCell DepartmentDate2 = PdfUtil.GetPdfCell("5、由于工龄的增长而引起的工龄工资的调整,由行政部每年年末统一计算,并于次年1月起调整", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5);

                pdfTable.AddCell(DepartmentDate2);

                PdfPCell GMOpinion1 = PdfUtil.GetPdfCell("6、有关学历、职称等由行政部负责与员工确认,如有疑问,员工需要积极配合提供相关证书或证明文件,如由于员工本人无法提供相关证书或证明,或提供虚假证书或证明,则一切责任由员工本人承担。", fontContext, iTextSharp.text.Element.ALIGN_CENTER, true, 5, 2);

                pdfTable.AddCell(GMOpinion1);

                pdfTable.AddCell(blankCell);

                pdfTable.AddCell(blankCell);

                pdfTable.AddCell(blankCell);

                pdfTable.AddCell(blankCell);

                pdfTable.AddCell(blankCell);

                document.Add(pdfTable);//将pdf加入文本

                document.NewPage();//新建一页

                document.Close();//关闭该文本

                fs.Close();//关闭流

                string rspUrl = Request.Url.ToString().Substring(0, Request.Url.ToString().IndexOf(Request.RawUrl)) + "/EvaluationPDFSource/" + fileName;//将地址传至前端打开

                JsonResult result = new JsonResult()

                {

                    Data = new

                    {

                        rspUrl = rspUrl,

                        filePath = path

                    }

                };

                return Json(result, JsonRequestBehavior.AllowGet);

·前台

//打印

function SalaryRatifyPrintPDF(name) {

    var Gid = $("#" + name + " #PerGuid").val();

    if (name == "EditSalaryfrom") {

        Gid = $("#" + name + " #EditSalaryfrom_GUID").val();

    }

    var Position = $("#" + name +" #Position").val();

    var BasicWage = $("#" + name +" #BacisWage").val();

    var JobAmountLevel = $("#" + name +" #JobAmountLevel").val();

    $.ajax({

        type: "post",

        url: "/Personnel/SalaryRatify/PrintPDF",

        data: {

            "guid": Gid,

            "Position": Position,

            "BasicWage": BasicWage,

            "JobAmountLevel": JobAmountLevel,

            "mode":name

        },

        success: function (data) {

            if (data != "error") {

                window.open(data.Data.rspUrl);

                setTimeout(function () {

                    $.ajax({

                        type: "POST",

                        url: "/Personnel/Evaluation/DeleteFile",//删除PDF

                        data: { filePath: data.Data.filePath }

                    });

                }, 200);

            }

        }

    });

}

相关文章

  • C#(.NET)打印PDF

    iTextSharp插件使用 ·安装NuGet包 选中工程右击——“管理NuGet程序包”,搜索安装“iTextS...

  • .net打印pdf文件

    方法一(web):window.print() print()方法是浏览器打印功能的一种程序调用。print方...

  • 使用GRPC

    C# .NET Framework 对于C# .NET Framework平台,使用GRPC for C#,GRP...

  • NET|C#生成PDF文件

    项目需要在线生成PDF文件,我首先考虑采用itextsharp控件来实现。具体方法参考 https://sourc...

  • C# 6/7 新功能

    C#新功能 一、C#历史演变 C# 1,Visual Studio .NET 2002: C# 初版。 C# 1....

  • 2021-10-08-如何批量打印

    如何批量打印pdf word等,比如发票 wps批量打印功能 福昕pdf批量打印功能 先把pdf合并成一个文件,然...

  • C#.NET初步认识

    一、C#与.NET是什么? C#:是一种编程语言,可以开发基于.NET平台的应用 .NET:一般指.NET Fra...

  • C#入门教程(二)–C#常用快捷键、变量、类型转换-打造C#

    C#入门教程(一)–.Net平台技术介绍、C#语言及开发工具介绍-打造C#学习教程 上次教程主要介绍了.Net平台...

  • C#图解教程笔记20170717

    2017/7/17 C#和.NET框架 .NET框架,CLR的C#语言 .net框架是一个独立发布的软件包,包括了...

  • 黑马训练营Asp.Net第2期完整版

    初级 .Net入门教程_.Net入门视频教程|黑马程序员 C#基础教程_C#基础视频教程_黑马程序员 .Net基础...

网友评论

      本文标题:C#(.NET)打印PDF

      本文链接:https://www.haomeiwen.com/subject/npqisltx.html