首先添加NuGet引用

         /// <summary>/// 根据图片生成PDF/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btn_CreatePDF_ByPic_Click(object sender, EventArgs e){var res = JPGConvertPDF($"C:\\Users\\lwk123456\\Desktop\\图片\\{ DateTime.Now.ToString("yyyy-MM-dd")}\\{Guid.NewGuid()}.pdf");MessageBox.Show(res.ToString());}
/// <summary>
/// 图片转PDF文档(将图片集成到PDF文件中)
/// </summary>
/// <param name="pdfpath">转换后的pdf路径</param>
/// <returns>true转换成功,false失败</returns>
public static bool JPGConvertPDF(string pdfPath)
{try{//调用文件选择框OpenFileDialog openFile = new OpenFileDialog();openFile.Multiselect = true;//等于true表示可以选择多个文件openFile.DefaultExt = "*.jpg";openFile.Filter = "图片|*.jpg";if (openFile.ShowDialog() == DialogResult.OK){#region 文件夹目录处理string path = System.IO.Path.GetDirectoryName(pdfPath);if (!System.IO.Directory.Exists(path)){System.IO.Directory.CreateDirectory(path);}#endregion//尺寸为A4纸大小var PdfPageSize = iTextSharp.text.PageSize.A4;//Document为对象为页面对象,类似HTML页面var document = new iTextSharp.text.Document(PdfPageSize, 4, 25, 25, 25, 25);//创建并打开PDFvar stream = new FileStream(pdfPath, FileMode.Create, FileAccess.Write, FileShare.None);//将Document对象写入PDF文件iTextSharp.text.pdf.PdfWriter.GetInstance(document, stream);document.Open();if (openFile.FileNames != null && openFile.FileNames.Any()){foreach (string file in openFile.FileNames){//打开图片var imageStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);var image = iTextSharp.text.Image.GetInstance(imageStream);float height = document.Top - document.TopMargin;//设置图片宽高缩放var imageWidth = image.Width > document.Right ? document.Right : image.Width;var imageHeight = image.Height > height ? height : image.Height;image.ScaleToFit(imageWidth, imageHeight);//图片高>A4纸高-25if (image.Height > PdfPageSize.Height - 25){image.ScaleToFit(PdfPageSize.Width - 25, PdfPageSize.Height - 25);}//图片宽>A4纸宽-25else if (image.Width > PdfPageSize.Width - 25){image.ScaleToFit(PdfPageSize.Width - 25, PdfPageSize.Height - 25);}image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE;document.Add(image);imageStream.Dispose();}}document.Close();document.Dispose();stream.Dispose();}return true;}catch (Exception ex){return false;}
}

个人记录,不喜勿喷

iTextSharp,将多张图片合并生成PDF文件相关推荐

  1. 多张图片合并成PDF文件,还在下载合并软件,PS就能帮你搞定

    我们知道pdf格式是我们在工作和学习中常用的一种文件格式,pdf是一种通用的文档格式.很多阅读器都支持pdf格式,比如小编就非常喜欢用kindle来进行阅读,kindle可以打开pdf格式的电子书,可 ...

  2. 用Python将多张图片合并成一PDF文件

    先前条件 需要安装两模块:fpdf.PIL pip install fpdf pip install PIL 放码过来 from fpdf import FPDF from PIL import Im ...

  3. 生成PDF文件方案--学习中

    PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段"暴力"破解 ...

  4. java 图片合成pdf_java将多张图片合并转为PDF

    所需jar包:com.lowagie.text package weaver.gy.util; import java.awt.image.BufferedImage; import java.io. ...

  5. 记-ItextPDF+freemaker 生成PDF文件---导致服务宕机

    摘要:已经上线的项目,出现服务挂掉的情况. 介绍:该服务是专门做打印的,业务需求是生成PDF文件进行页面预览,主要是使用ItextPDF+freemaker技术生成一系列PDF文件,其中生成流程有:解 ...

  6. Java 批量导出PPT为图片,并合并生成PDF

    Java 批量导出PPT为图片,并合并生成PDF 最近有小伙伴需要把PPT打印,但苦于PPT太多,浪费纸张,所以特别写了这个合并多张PPT到一张A4纸上并生成PDF方便打印的程序: 前期准备 把PPT ...

  7. Itext生成pdf文件,itext+Freemarker生成pdf,(中文空白解决)

    来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...

  8. Java生成PDF文件(Itext篇)

    在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...

  9. SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作)

    SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作) 为什么使用后端去生成 说明 依赖 后端目录 控制器代码 模板代码 前端代碼 最終效果 为什么 ...

最新文章

  1. YOTO来了!你只需训练一次,谷歌大脑提出调参新trick
  2. The project cannot be built until build path errors are resolved的解决方法
  3. 我的世界java版gamemode指令_我的世界切换生存和创造模式的命令是什么?
  4. 《一天聊一个设计模式》 抽象工厂
  5. 语音识别入门:从菜鸟到大佬
  6. Feign-手动创建FeignClient
  7. 游戏玩家的图形显示设置指南(11)(The Gamer's Graphics Display Settings Guide)
  8. springboot通过maven管理mysql驱动加载失败
  9. 页面开发配色选择神器
  10. java 区分鼠标左键单击和双击
  11. 迅为STM32MP157开发板手册更新记录
  12. 真无线蓝牙耳机哪个品牌好?2023年真无线降噪耳机盘点
  13. 期末复习【计算机组成原理】
  14. 什么软件测试鞋子真假,教你5招辨别真假Yeezy Boost鞋,真真假假你图啥?
  15. 计算机基础模拟试卷1,大学计算机基础模拟试卷1—5
  16. 恢复被流氓病毒隐藏为系统文件的常规文件
  17. 苹果Mac系统快捷键 mac新手必看
  18. 嵌入式常用的算法 - 二阶IIR低通滤波器
  19. 支付宝支付功能(使用支付宝sdk)
  20. Predicting Sharp and Accurate Occlusion Boundaries in Monocular Depth Estimation Using Displacement

热门文章

  1. SAP UI5 SimpleForm 里在水平方向显示多组 Form 元素的实现方法试读版
  2. 如何在Axure中使用Iconfont图标字体
  3. HTML+CSS+JS实现 ❤️ 立方体旋转图片切换特效❤️
  4. 推荐系统 -- NFM
  5. 腾讯员工的1则匿名帖子,让我细思极恐:不要低估人性的恶
  6. 0 – 30 V稳压电源电路
  7. iphone 11显示连接服务器出现错误,iPhone11投屏方法有哪些?iPhone投屏失败的原因及解决方法...
  8. 闫令琪:Games101 现代计算机图形学-光线追踪(三):渲染方程和路径追踪path ray tracing 作业Assignment07解析
  9. 超微服务器查型号,超微 云服务器
  10. 【算法与数据结构】—— 博弈论(高阶篇之SG博弈)