C# JPG转PDF
需先引用 itextsharp.dll
//方法一 /// <summary> /// JPG转PDF /// </summary> /// <param name="jpgfile">图片路径</param> /// <param name="pdf">生成的PDF路径</param> /// <param name="pageSize">A4,A5</param> /// <param name="Vertical">True:纵向,False横向</param> public void ConvertJPG2PDF(string jpgfile, string pdf, string pageSize, bool Vertical = true) { float width = 0, height = 0; Document document; #region 根据纸张大小,纵横向,设置画布长宽 if (pageSize.ToUpper() == "A4") { if (Vertical)//纵向 { width = iTextSharp.text.PageSize.A4.Width; height = iTextSharp.text.PageSize.A4.Height; } else//横向 { width = iTextSharp.text.PageSize.A4.Height; height = iTextSharp.text.PageSize.A4.Width; } } else if (pageSize.ToUpper() == "A5") { if (Vertical) { width = iTextSharp.text.PageSize.A5.Width; height = iTextSharp.text.PageSize.A5.Height; } else { width = iTextSharp.text.PageSize.A5.Height; height = iTextSharp.text.PageSize.A5.Width; } } iTextSharp.text.Rectangle pageSizeNew = new iTextSharp.text.Rectangle(width, height); document = new Document(pageSizeNew); #endregion using (var stream = new FileStream(pdf, FileMode.Create, FileAccess.Write, FileShare.None)) { PdfWriter.GetInstance(document, stream); document.Open(); using (var imageStream = new FileStream(jpgfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { var image = iTextSharp.text.Image.GetInstance(imageStream); //缩放图像比例 image.ScaleToFit(width, height); image.SetAbsolutePosition(0, 0); image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE; document.Add(image); } document.Close(); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | //方法二 /// <summary> /// jpg转PDF /// </summary> /// <param name="pdfPath">pdf存放路径</param> /// <param name="jpegPath">jpg路径</param> /// <returns></returns> private bool jpegTopdf( string pdfPath, string jpegPath) { try { System.Drawing.Image B = System.Drawing.Image.FromFile(jpegPath); System.Drawing.Bitmap image = new System.Drawing.Bitmap(B); B.Dispose(); Document document = new Document(); //document.SetPageSize(new iTextSharp.text.Rectangle(image.Width + 72f, image.Height + 72f)); document.SetPageSize( new iTextSharp.text.Rectangle(image.Width, image.Height)); PdfWriter write = PdfWriter.GetInstance(document, new FileStream(pdfPath, FileMode.OpenOrCreate, FileAccess.Write)); document.Open(); iTextSharp.text.Image jpg; jpg = iTextSharp.text.Image.GetInstance(image, ImageFormat.Jpeg); document.NewPage(); document.Add(jpg); if (document != null && document.IsOpen()) { document.Close(); } if (write != null ) { write.Close(); } return true ; } catch (Exception ex) { return false ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)