iTextSharp,将多张图片合并生成PDF文件
首先添加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文件相关推荐
- 多张图片合并成PDF文件,还在下载合并软件,PS就能帮你搞定
我们知道pdf格式是我们在工作和学习中常用的一种文件格式,pdf是一种通用的文档格式.很多阅读器都支持pdf格式,比如小编就非常喜欢用kindle来进行阅读,kindle可以打开pdf格式的电子书,可 ...
- 用Python将多张图片合并成一PDF文件
先前条件 需要安装两模块:fpdf.PIL pip install fpdf pip install PIL 放码过来 from fpdf import FPDF from PIL import Im ...
- 生成PDF文件方案--学习中
PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段"暴力"破解 ...
- java 图片合成pdf_java将多张图片合并转为PDF
所需jar包:com.lowagie.text package weaver.gy.util; import java.awt.image.BufferedImage; import java.io. ...
- 记-ItextPDF+freemaker 生成PDF文件---导致服务宕机
摘要:已经上线的项目,出现服务挂掉的情况. 介绍:该服务是专门做打印的,业务需求是生成PDF文件进行页面预览,主要是使用ItextPDF+freemaker技术生成一系列PDF文件,其中生成流程有:解 ...
- Java 批量导出PPT为图片,并合并生成PDF
Java 批量导出PPT为图片,并合并生成PDF 最近有小伙伴需要把PPT打印,但苦于PPT太多,浪费纸张,所以特别写了这个合并多张PPT到一张A4纸上并生成PDF方便打印的程序: 前期准备 把PPT ...
- Itext生成pdf文件,itext+Freemarker生成pdf,(中文空白解决)
来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...
- Java生成PDF文件(Itext篇)
在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...
- SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作)
SpringBoot+Vue+mybatis生成pdf文件(表头跟页码,适应上传linux服务器后的操作) 为什么使用后端去生成 说明 依赖 后端目录 控制器代码 模板代码 前端代碼 最終效果 为什么 ...
最新文章
- YOTO来了!你只需训练一次,谷歌大脑提出调参新trick
- The project cannot be built until build path errors are resolved的解决方法
- 我的世界java版gamemode指令_我的世界切换生存和创造模式的命令是什么?
- 《一天聊一个设计模式》 抽象工厂
- 语音识别入门:从菜鸟到大佬
- Feign-手动创建FeignClient
- 游戏玩家的图形显示设置指南(11)(The Gamer's Graphics Display Settings Guide)
- springboot通过maven管理mysql驱动加载失败
- 页面开发配色选择神器
- java 区分鼠标左键单击和双击
- 迅为STM32MP157开发板手册更新记录
- 真无线蓝牙耳机哪个品牌好?2023年真无线降噪耳机盘点
- 期末复习【计算机组成原理】
- 什么软件测试鞋子真假,教你5招辨别真假Yeezy Boost鞋,真真假假你图啥?
- 计算机基础模拟试卷1,大学计算机基础模拟试卷1—5
- 恢复被流氓病毒隐藏为系统文件的常规文件
- 苹果Mac系统快捷键 mac新手必看
- 嵌入式常用的算法 - 二阶IIR低通滤波器
- 支付宝支付功能(使用支付宝sdk)
- Predicting Sharp and Accurate Occlusion Boundaries in Monocular Depth Estimation Using Displacement
热门文章
- SAP UI5 SimpleForm 里在水平方向显示多组 Form 元素的实现方法试读版
- 如何在Axure中使用Iconfont图标字体
- HTML+CSS+JS实现 ❤️ 立方体旋转图片切换特效❤️
- 推荐系统 -- NFM
- 腾讯员工的1则匿名帖子,让我细思极恐:不要低估人性的恶
- 0 – 30 V稳压电源电路
- iphone 11显示连接服务器出现错误,iPhone11投屏方法有哪些?iPhone投屏失败的原因及解决方法...
- 闫令琪:Games101 现代计算机图形学-光线追踪(三):渲染方程和路径追踪path ray tracing 作业Assignment07解析
- 超微服务器查型号,超微 云服务器
- 【算法与数据结构】—— 博弈论(高阶篇之SG博弈)